Qt QImage与OpenCV Mat转换
2016-04-01 20:47
337 查看
本系列文章由 @yhl_leo 出品,转载请注明出处。
文章链接: http://blog.csdn.net/yhl_leo/article/details/51029382
应一个朋友的要求,整理总结一下,Qt中的图像类
编译环境:
运行结果如图:
一共有四个测试函数及其对应的转换结果:
另外,提供的常见的指针数组的访问方式(见函数
关于QImage的
文章链接: http://blog.csdn.net/yhl_leo/article/details/51029382
应一个朋友的要求,整理总结一下,Qt中的图像类
QImage与OpenCV库中
Mat的转换方法,测试工程已发布在GitHub:yhlleo/QImage2Mat
编译环境:
VS2010
CMake (version >= 2.8.3)
Qt (version 4.8.6)
运行结果如图:
一共有四个测试函数及其对应的转换结果:
qimageShow()->
QImage加载图像,并显示在
Graphic View中;
mat2qImageShow()->
Mat to QImage是OpenCV
Mat加载图像,转化为
QImage后在
Graphic View中显示;
qImage2MatShow()->
QImage to Mat 1是使用
QImage数据直接初始化
Mat后,使用OpenCV的gui显示方法;
qImage2MatPtrShow()->
QImage to Mat 2是使用常用的指针数组的方式遍历
QImage,然后为
Mat矩阵赋值,再使用OpenCV的gui显示方法;
mat2qImageShow()和
qImage2MatShow()函数中,转换源代码主要来自博客:QImage 与 cv::Mat 之间的相互转换,博主写得很巧妙,值得一看。
另外,提供的常见的指针数组的访问方式(见函数
qImage2MatPtr()),对于
QImage数据格式不同于
Mat,不能使用以往
(i*cols+j)*channels+k这种方式访问,而是
i*byterPerLine+j*imgChannels + k,其中
byterPerLine=(width*depth+31)/8,也就是说,其中含有4个字节的补齐问题,请参见提供的详细代码。
关于QImage的
format()类型,可以阅读help文档,解释的也比较清楚。
相关文章推荐
- Qt有限状态机简单介绍
- Qt操作SQLite数据库——创建、打开、关闭、增加、删除和修改操作
- Qt中序列化对象
- rabbitmq3.6.1 集群的安装(启用MQTT插件)
- 最近在用Qt Creator,把遇到的一点点小问题记在这里
- Qt4.8.7连接MySql数据库(windows环境)
- Qt带进度条的启动界面
- Qt程序只运行一个实例
- Qt生成随机数的方法
- 解决QT 编译后脱离编译器无法运行的问题
- qt 截获windows消息
- Qt获取鼠标位置(绝对位置、相对位置)
- qt程序启动画面
- [QT入门篇]4 QT的元对象系统
- qt中创建进程
- qt窗口的切换
- qt事件机制---事件范例
- qt中的事件机制
- qt的信号与槽函数
- qt中的udp编程