若该文为原创文章,转载请注明原文出处
本文章博客地址:https://hpzwl.blog.csdn.net/article/details/141996117
长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…)
Qt开发专栏:各种问题解决(点击传送门)
问题
环视算法,因为融合的时候由于方案商平台编译环境没有给opencv的库,用QI mage的原始data直接入,测试发现存在拼接是乱图的问题,需要定位并解决。
相关博客
《OpenCV开发笔记(三):OpenCV图像的概念和基本操作》
《OpenCV开发笔记(四):OpenCV图片和视频数据的读取与存储》
原理
传递rgb原始共享内存数据进行拼接,只有宽高和数据排列的问题。
解决方法:
方法一:添加opencv编译环境
直接加上opencv编译环境,因为固件不是我们弄得,怕存在问题,也不想编译那么麻烦。(固件是有opencv得,但是开发环境没有)
方法二:写程度对QImage与cv::Mat的原始数据格式对比
一个是数据格式问题,QImage加载默认rgba,cv::Mat为三通道;
一个是宽高问题,通过对比数据发现宽高没有不一致。(cv::Mat是先高度后宽度,这个对图像按照一行一行排列是没有影响的)
一个是rgb的问题,通过对比mat是存的bgr。
所以需要进行grb的原始数据转换,转换后对比如下:
通过以上方式,可以得到结论:
转为rgb,并且交换r和b,就能和三通道得mat原始数据格式一致了!
本文章博客地址:https://hpzwl.blog.csdn.net/article/details/141996117