从 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
Big Sur 上的 2019 Macbook Pro + 最新版 Spyder 上的 Pandas 导入错误
配备 M1 Max 芯片的新 MacBook Pro 上的 Android Studio?