2015-12-11 2 views
2

Я пытаюсь преобразовать изображение opencv python в QPixmap.Преобразование Python Opencv Image (numpy array) в PyQt QPixmap image

я следовать инструкции показывает Page Link и мой код прилагается ниже

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) 

код не имеет компиляции и выполнения ошибки, но преобразование не так, и я просто получить изображение с шумом. Я не уверен, в чем проблема. Может ли кто-нибудь помочь?

ответ

2
#image is the numpy array that you got from cv2.imread(example_image.jpg) 

image = QtGui.QImage(image, image.shape[1],\ 
          image.shape[0], image.shape[1] * 3,QtGui.QImage.Format_RGB888) 
pix = QtGui.QPixmap(image) 

self.scene.addPixmap(pix) 
11

Используется для преобразования cvImage в QImage, здесь cvImage оригинальна изображение

height, width, channel = cvImg.shape 
bytesPerLine = 3 * width 
qImg = QImage(cvImg.data, width, height, bytesPerLine, QImage.Format_RGB888) 

и установить этот QImage для Lable.setPixmap параметра из QImage. Оно работает!!!