设为首页收藏本站
授权版本:2024_07
开启左侧

OpenCV和Qt Image之间的转换,有没有高效一点的方法

[复制链接]
751073629 发表于 2023-9-24 23:21:21 | 显示全部楼层 |阅读模式
需求:检测海康相机采集的灰度图像,并使用Halcon算子进行缺陷检测,最后将原始图像和检测结果显示在QT界面
设计方法:
1、使用OpenCV的Mat 保存海康采集到的数据(Mono),格式为8UC1
2、将Mat转换为QImage,显示在QT界面,为原始图像;
3、同时经Mat传入halcon进行识别,返回值通过QImage在图像上进行painter,最后在QT界面上进行显示
问题:
在上述设计方法中,需要转换多种格式,有没有更高效一点的处理方法?
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
halcon2016 发表于 2023-9-25 08:50:36 | 显示全部楼层
本帖最后由 halcon2016 于 2023-9-25 08:52 编辑

你这转换确实有点复杂了,直接自己new buffer接收相机采集到的原始数据,再用这个buffer往QImage,opencv,halcon转,QImage对象可以直接从buffer创建,halcon的HObject也可以直接从buffer创建,opencv没用过,应该也有从buffer创建对象的接口的,三者都可以直接共享同一个buffer,不仅节约内存,直接从原始buffer转过去效率也是最高的
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
 楼主| 751073629 发表于 2023-9-26 00:02:41 | 显示全部楼层
halcon2016 发表于 2023-9-25 08:50
你这转换确实有点复杂了,直接自己new buffer接收相机采集到的原始数据,再用这个buffer往QImage,opencv, ...

确实,在转换过程中会浪费很多内存。因为不确定直接将buffer转为QImage和HObject会不会有格式上的问题(例如RGB => BGR),所以添加了一步Mat处理。
明天可以做个测试,直接将buffer数据创建QImage、HObject,省去生成Mat的过程。看看能否正常显示
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
halcon2016 发表于 2023-9-26 08:52:54 | 显示全部楼层
QImage和HObject确定不会有问题,我早就用过
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表