您的位置:首页 > 运维架构

opencv图片格式转换

2015-08-21 11:12 357 查看
关于QImage和Mat两种格式转换,网上已有一些解决方案,如:
http://blog.sina.com.cn/s/blog_7559ce850100ydvy.html http://blog.csdn.net/zengweion/article/details/7625897 http://blog.csdn.net/yang_xian521/article/details/6968012 http://hi.baidu.com/windroc/item/5c4b4a13725c11433a176eca
这里再做一些归纳总结。

其实,格式转换无非就是找到格式间参数的对应关系:

QImage Mat

数据指针 uchar* bits() uchar* data

宽度 int width() int cols

高度 int height() int rows

步长 int bytesPerLine() cols * elemeSize()

格式 Format_Indexed8 8UC1, GRAY,灰度图

Format_RGB888 8UC3, BGR, 需要通过mixChannels进行顺序调换

Format_ARGB32 8UC4, BGRA,需要通过mixChannels进行顺序调换

以此类推,只要保证通道数以及排列顺序一致即可。

在转换的过程中一定要先判断图像的格式,QImage用QImage::format(), Mat中用Mat::channels(),然后再设置相应的转换参数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: