[英]My QPixmap splits into 3 parts after conversion from IplImage* on Macbook pro with retina
我有一个Qt项目,它使用OpenCV,并尝试将其移动到具有视网膜显示功能的Macbook上。 除QPixmap之外,其他所有功能均正常。 当我尝试在QLable中显示图像时,它分为红色,绿色和蓝色三个部分。
在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);
}
尝试这个:
// 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();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.