从 Macbook pro 上的 IplImage* 转换后,我的 QPixmap 分为 3 个部分

Posted

技术标签:

【中文标题】从 Macbook pro 上的 IplImage* 转换后,我的 QPixmap 分为 3 个部分【英文标题】:My QPixmap splits into 3 parts after conversion from IplImage* on Macbook pro with retina 【发布时间】:2013-10-08 12:52:26 【问题描述】:

我有一个使用 OpenCV 的 Qt 项目,并尝试将它移动到我的带有视网膜显示的 macbook。除 QPixmap 外,一切正常。当我尝试在 QLable 中显示图像时,它分为 3 个部分,分别为红色、绿色和蓝色。

在 Windows 上一切正常。

但是在我的 Macbook 上...

这是我将 IplImage* 转换为 QImage 的方法:

QImage CamStream::ToQImage(IplImage* image)

int height = image->height;
int width = image->width;

const uchar *qImageBuffer =(const uchar*)image->imageData;
QImage img(qImageBuffer, width, height, QImage::Format_RGB888);
return img.rgbSwapped();

这是我显示图像的方式:

void Main_window::ShowImage(QImage qimg)

QPixmap pxmap ( QPixmap::fromImage(qimg));
ui->lbl_video->setPixmap(pxmap);
ui_2->lbl_video->setPixmap(pxmap);

【问题讨论】:

【参考方案1】:

试试这个:

// IplImage* -> QImage
QImage CamStream::ToQImage(IplImage* src)

    IplImage* dst = cvCreateImage(cvGetSize(src), src->depth, 3);
    cvCvtColor(src, dst, CV_BGRA2BGR);
    QImage qimg( (unsigned char*)dst->imageData,
                                 dst->width,
                                 dst->height,
                                 QImage::Format_RGB888 );
    cvReleaseImage(&dst);
    return qimg.rgbSwapped();

【讨论】:

以上是关于从 Macbook pro 上的 IplImage* 转换后,我的 QPixmap 分为 3 个部分的主要内容,如果未能解决你的问题,请参考以下文章

text 在Macbook Pro 13 2017上的Freeze上重新启动Touchbar

冬天 苹果笔记 macbook pro 消除静电的方法

Big Sur 上的 2019 Macbook Pro + 最新版 Spyder 上的 Pandas 导入错误

配备 M1 Max 芯片的新 MacBook Pro 上的 Android Studio?

fadeTo 与 Jquery 在 Retina Macbook Pro 上的 Chrome 中不起作用

内核调试两个物理 MacBook Pro 设备