这里再做一些归纳总结。
其实,格式转换无非就是找到格式间参数的对应关系:
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(),然后再设置相应的转换参数。
更多回帖