Qt中使用OpenCV显示图片时,Mat结构转换为QImage结构的问题
来源:互联网 发布:名侦探柯南主线知乎 编辑:程序博客网 时间:2024/06/11 23:29
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类型
- Qt中使用OpenCV显示图片时,Mat结构转换为QImage结构的问题
- OpenCV图像MAT格式转换为QT中QImage并显示
- 将opencv的Mat转换为qt的QImage
- OpenCV 中的图像结构IPLImage 和 Qt中QImage之间的转换源代码【z】
- OpenCV 中的图像结构IPLImage 和 Qt中QImage之间的转换源代码
- qt中使用opencv处理图片 QImage 和 IplImage 相互之间转换问题
- Qt + opencv mat转换成qimage后无法使用qpainter显示
- OpenCV的cv::Mat转换为Qt的QImage是歪斜失真
- QT的QImage 与 Opencv的Mat 之间的转换
- OpenCv:IplImage,Mat和Qt:QImage之间的快速转换
- opencv Mat 与 Qt QImage之间的转换
- Qt QImage与OpenCV Mat转换
- Mat转换为QImage
- cv::mat转换成QImage的问题
- part based model 模型 mat结构模型转换为opencv中的xml的格式
- 【Qt5】OpenCV中Mat类与QImage类转换
- 【OpenCv】QImage 与 cv::Mat 之间的相互转换
- linux系统下opencv中IplImage转换成QT中QImage并在label上显示
- uva 10730 - Antiarithmetic?
- 你不懂我,我不怪你 余秋雨
- 视频通话最新谍报
- Arctic Network
- 移植mjpg
- Qt中使用OpenCV显示图片时,Mat结构转换为QImage结构的问题
- V4L2驱动编写篇——介绍
- Arctic Network
- 一个字符串查找的函数
- spirntf 和 memcpy
- C# Datagirdview 用法集
- [心情]祈愿平安
- Java的GC是什么? 为什么要有GC?
- 杭电1020