Qt使用OpenCV库加载、处理并用QPixmap显示图片过程中颜色空间的转换思路
问题:Qt使用OpenCV库加载、处理并用QPixmap显示图片过程中颜色空间的转换思路。
注意:OpenCV中加载24位3通道图片默认使用BGR的颜色空间模型,而Qt中的QImage默认使用RGB的颜色空间模型,因此需要找转换颜色空间模型。
1、调用OpenCV的imread()函数加载图像,获得图像矩阵Mat型对象mat1;
2、调用OpenCV的其他处理函数对图像进行处理,得到mat2;
3、将处理结果mat2矩调用cvtColor()函数将BGR的颜色空间模型转换为QImage的RGB的颜色空间模型;
4、再调用QPixmap::fromImage()函数将QImage转换为QPixmap。
基本过程如下:Mat ==>QImage ==>QPixmap
Mat img = imread("E:\\Databases\\picdata\\girls.jpeg", 1);
//调用OpenCV的其他处理函数对图像进行处理...... cvtColor(img, img, CV_BGR2RGB); //不处理的话有些图片就显示不正常 QImage qImage = (QImage((uchar*)img.data, img.cols, img.rows, img.cols*img.channels(), QImage::Format_RGB888)); QPixmap qPixmap = QPixmap::fromImage(qImage);

浙公网安备 33010602011771号