如何在 pyqtgraph 中正确缩放/旋转图像?

Jad*_*den 3 python qgraphicsview pyqtgraph pyqt5

我已经在PyQt5pyqtgraph里面实现了QGraphicsView。当我按以下方式显示图像时,它会以与屏幕相同的宽高比拉伸和扩展。我该如何解决?

image = pg.ImageItem(asarray(Image.open('pic.png')) )      
self.graphicsView.addItem(image)
image.rotate(270) 
Run Code Online (Sandbox Code Playgroud)

编辑:找到了如何旋转图像,所以我用解决方案更新了问题。现在我只是想适当地缩放它。

Luk*_*uke 6

你可能想要这样的东西:

import pyqtgraph as pg
from PIL import Image
from numpy import asarray

app = pg.mkQApp()

# Set up a window with ViewBox inside
gv = pg.GraphicsView()
vb = pg.ViewBox()
gv.setCentralItem(vb)
gv.show()

# configure view for images
vb.setAspectLocked()
vb.invertY()

# display image
img_data = asarray(Image.open('/home/luke/tmp/graph.png'))
image = pg.ImageItem(img_data, axisOrder='row-major')
vb.addItem(image)
Run Code Online (Sandbox Code Playgroud)

这里设置图像缩放/方向的重要部分是:

  • 使用ImageItem(axisOrder='row-major')因为图像文件按行优先顺序存储
  • vb.invertY()因为图像文件的 +y 轴向下
  • vb.setAspectLocked()保持像素正方形