我正尝试将Python OpenCV图像转换为QPixmap。
我按照页面链接中的说明进行操作,我的代码附在下面。
img = cv2.imread('test.png')[:,:,::1]/255.
imgDown = cv2.pyrDown(img)
imgDown = np.float32(imgDown)
cvRGBImg = cv2.cvtColor(imgDown, cv2.cv.CV_BGR2RGB)
qimg = QtGui.QImage(cvRGBImg.data,cvRGBImg.shape[1], cvRGBImg.shape[0], QtGui.QImage.Format_RGB888)
pixmap01 = QtGui.QPixmap.fromImage(qimg)
self.image01TopTxt = QtGui.QLabel('window',self)
self.imageLable01 = QtGui.QLabel(self)
self.imageLable01.setPixmap(pixmap01)
代码没有编译和运行时错误,但转换是错误的,我只得到了一些噪点图像。我不确定问题在哪里。有人能帮忙吗?
QPixmap
:self.imageLable01.setPixmap(QPixmap(qImg))
并传递bytesPerLine + 1
。 - jfsQImage.Format_BGR888
,因为OpenCV使用BGR而不是RGB。 - fferriFormat_BGR888
时,出现了错误type object 'QImage' has no attribute 'Format_BGR888'
。但是使用Format_RGB888
就可以正常工作。为什么? - s.paszkoQImage.Format_BGR888
在Qt 5.14中被添加,请升级。 - fferri