繁体   English   中英

从具有视网膜的Macbook Pro上的IplImage *转换后,我的QPixmap分为3部分

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM