QImage和QPixmap图像显示不正确

时间:2012-04-16 10:57:29

标签: qt opencv qpixmap

我在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

任何反馈都将不胜感激。

0 个答案:

没有答案