QT Qimage转Iplimage

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_33621733/article/details/78461977
分两步:
先 Qimage转到CV::Mat
cv::Mat QImage2cvMat(QImage image)
{
cv::Mat mat;
//qDebug() << image.format();
switch(image.format())
{
case QImage::Format_ARGB32:
case QImage::Format_RGB32:
case QImage::Format_ARGB32_Premultiplied:
mat = cv::Mat(image.height(), image.width(), CV_8UC4, (void*)image.constBits(), image.bytesPerLine());
break;
case QImage::Format_RGB888:
mat = cv::Mat(image.height(), image.width(), CV_8UC3, (void*)image.constBits(), image.bytesPerLine());
cv::cvtColor(mat, mat, CV_BGR2RGB);
break;
case QImage::Format_Indexed8:
mat = cv::Mat(image.height(), image.width(), CV_8UC1, (void*)image.constBits(), image.bytesPerLine());
break;
}
return mat;
}

第二步CV::Mat转Iplimage
IplImage* pSrc = &IplImage(mimage);

调用:

QImage showImage;
cv::Mat mimage=QImage2cvMat(showImage);
IplImage* pSrc = &IplImage(mimage);

猜你喜欢

转载自blog.csdn.net/sinat_33621733/article/details/78461977