博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
转换排列Qt中使用OpenCV显示图片时,Mat结构转换为QImage结构的问题
阅读量:4550 次
发布时间:2019-06-08

本文共 868 字,大约阅读时间需要 2 分钟。

这两天一直在研究转换排列之类的问题,现在正好有机会和大家讨论一下.

    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结构的数函,载下地址如下:
 
调用方法也很简单:
QImage

    image

    =

    MatToQImage(img); //img是Mat型类

 

    

    

    

文章结束给大家分享下程序员的一些笑话语录: 《诺基亚投资手机浏览器UCWEB,资金不详或控股》杯具了,好不容易养大的闺女嫁外国。(心疼是你养的吗?中国创业型公司创业初期哪个从国有银行贷到过钱?)

转载于:https://www.cnblogs.com/xinyuyuanm/archive/2013/04/21/3034370.html

你可能感兴趣的文章
有监督学习以及偏差和过拟合的概念
查看>>
MATLAB axis用法
查看>>
Android4.0图库Gallery2代码分析(二) 数据管理和数据加载
查看>>
ZOJ 1602 Multiplication Puzzle(动态规划)
查看>>
卫鞅成败
查看>>
Sql Server 2005中查询用分隔符分割的内容中是否包含其中一个内容
查看>>
员工离职原因,只有两点最真实,其他都是扯淡!
查看>>
Git命令篇
查看>>
adb 安装apk 报错:Failure [INSTALL_FAILED_CPU_ABI_INCOMPATIBLE]
查看>>
WinCE下多份BSP的维护技巧
查看>>
VMware不能完全卸载问题
查看>>
Linux环境变量总结 转
查看>>
正则表达式限制文本框只能输入数字,小数点,英文字母,汉字
查看>>
一个改变this指向bind的函数,vue源代码
查看>>
浅谈redux 中间件的原理
查看>>
01背包问题-动态规划算法
查看>>
我要成为前端工程师!给 JavaScript 新手的建议与学习资源整理
查看>>
ubuntu android
查看>>
一个叫<NameValuePair>的东西~~~
查看>>
ssh三大框架实现(一)---登陆功能
查看>>