我在Ubuntu上运行带有QT的OpenCV,并且遇到了使用QLabel显示图像的问题。 如果我使用代码:(其中'image'是由dcraw创建的Mat):
Mat img_display;
cv::cvtColor(image,img_display,CV_BGR2RGB);
imwrite("test.jpg",img_display);
QImage img=QImage("test.jpg"); // QImage assignment
QPixmap pixmap(QPixmap::fromImage(img));
widget.image_label->setPixmap(pixmap);
图像以彩色输出,完全符合我的预期。
但是,当我将QImage分配替换为使用'img_display'而不是.jpg文件时,我的图像显示从原点的右侧开始,并且在所显示图像的右下方有一个三角形覆盖。这个三角形看起来像是图像LHS中缺失位的一半。我试图使用的分配代码是:
QImage img=QImage(
(uchar*)(img_display.data),
img_display.cols,
img_display.rows,
QImage::Format_RGB888);
图像来自原始的18.2mb cr2文件,它是由dcraw创建的。 test.jpg是3.1mb
任何反馈都将不胜感激。