QGraphicsScene,PyQt中的图像显示不正确

时间:2015-02-22 09:11:59

标签: python qt opencv pyqt qgraphicsscene

我想面对一个奇怪的问题,而我想在QGraphicsScene的{​​{1}}内显示QGraphicsView的图片。

对于某些图像文件,效果很好,

image1 display of image1

但对其他人来说似乎不对,

image2 display of image2

我想也许它与图像的格式有关?如果是这样,我该怎么办?

相关部分代码如下,感谢您的帮助:D

PyQt

1 个答案:

答案 0 :(得分:0)

我有完全相同的问题,但它是C++项目,所以我认为我的解决方案也适合你。考虑下一个代码:

   QString sss = "path";
   cv::Mat img = cv::imread(sss.toStdString());

   cv::cvtColor(img,img,CV_BGR2RGB);//in your code cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
   QImage image1((uchar*)img.data,img.cols,img.rows,QImage::Format_RGB888);
   //in your code QtGui.QImage(image.data, width, height, QtGui.QImage.Format_RGB888)
   //same problem
   QPixmap px1(QPixmap::fromImage(image1));
   ui->label_2->setPixmap(px1);

解决方案:

//...
QImage image1((uchar*)img.data,img.cols,img.rows,img.step,QImage::Format_RGB888);
//...

如您所见,我在img.step文档中添加了一个参数:( int bytesPerLine ) Qt。因此,请尝试在python应用中执行相同操作。