本文主要是介绍QT Qimage转Iplimage,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
分两步:先 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);
这篇关于QT Qimage转Iplimage的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!