Qt中使用OpenCV显示图片时,Mat结构转换为QImage结构的问题
2013-04-21 18:43
731 查看
Qt中利用OpenCV显示图片和视频时,需要将OpenCV中的Mat或IplImage结构转换为Qt中QImage结构,转换时需要注意的地方是OpenCV中和Qt中关于三原色的排列的不同:OpenCV中是以BGR的顺序排列,Qt中是以RGB的顺序排列,两种格式在转换时如果没注意到这点,就会出现问题,如下图:上图是读取的美剧《总统一家》中的一集,mkv格式的(OpenCV2中增加了对更多视频格式的支持),右边的色彩还原是正确的。可以看到,由于OpenCV中是BGR排列,Qt中是RGB排列,如果没有经过转换,直接构造QImage对象的话,红色通道和蓝色通道会发生对调:最直观的,上图中第一夫人的红裙在左边成了蓝色的。转换 的方法就是调用OpenCV中的cvCvtColor函数,如下形式
cvCvtColor(&img,&img,CV_BGR2RGB); //img是IplImage类型
这里还有个更好的方法,是网上一个大神写的专门将Mat结构转换为QImage结构的函数,下载地址如下:
http://download.csdn.net/detail/masikkk/5284161
调用方式也很简单:
QImage image = MatToQImage(img); //img是Mat类型参考OpenCV中Mat结构和Qt中QImage结构RGB排列顺序不同
相关文章推荐
- 转换排列Qt中使用OpenCV显示图片时,Mat结构转换为QImage结构的问题
- Qt + opencv mat转换成qimage后无法使用qpainter显示
- qt中使用opencv处理图片 QImage 和 IplImage 相互之间转换问题
- qt中使用opencv处理图片 QImage 和 IplImage 相互之间转换问题
- OpenCV图像MAT格式转换为QT中QImage并显示
- 在ios中使用opencv将彩色图片转换成为灰度图,uiimageview无法显示问题
- QT5.2 + VS2012 给QWidget 对象使用setStyleSheet()设置背景图片运行不显示的问题
- 矩阵图片使用Qt显示openCV矩阵图片
- QT的QImage 与 Opencv的Mat 之间的转换
- python︱matplotlib使用(读入、显示、写出、opencv混用、格式转换...)
- opencv的图片显示到控件上坐标转换问题
- Zedboardwebcam设计问题篇(三)-OpenCV+QT配置显示图片
- android 使用NDK进行图像处理(openCV)时的图像转换问题(灰度图显示)
- 关于使用了QtWebKit的PyQt程序打包后无法显示网页图片的问题(Mac0S和windows)
- OpenCV的cv::Mat转换为Qt的QImage是歪斜失真
- OpenCV for Python [2]使用Matplotlib显示图片
- OpenCV【2】---读取png图片显示到QT label上的问题
- OPENCV使用Mat方式遍历图片的边界问题
- OpenCV 中的图像结构IPLImage 和 Qt中QImage之间的转换源代码【z】
- QT GUI界面的使用 opencv选择并显示图片于label中