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);

 

posted @ 2026-01-04 21:19  rainbow70626  阅读(4)  评论(0)    收藏  举报