我在PyQt5中的pyqtgraph
内实现了QGraphicsView
。当我以下列方式显示图像时,它会伸展并以与屏幕相同的宽高比扩展。我该如何解决这个问题?
image = pg.ImageItem(asarray(Image.open('pic.png')) )
self.graphicsView.addItem(image)
image.rotate(270)
编辑:发现如何旋转图像,所以我用解决方案更新了问题。现在我只是想正确地扩展它。
答案 0 :(得分:1)
您可能需要以下内容:
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)
设置图像缩放/方向的重要部分是:
ImageItem(axisOrder='row-major')
因为图像文件按行主要顺序存储vb.invertY()
因为图像文件的+ y轴指向下方vb.setAspectLocked()
保持像素正方形答案 1 :(得分:0)
我改用np.rot90()
,它更快,更容易录音
image = pg.ImageItem(np.rot90(np.asarray(Image.open('pic.png'))))