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

[C#] 用埃科相机回调后,halcon检测图片时间长导致图片显示问题

[复制链接]
wuyq80 发表于 2024-2-7 19:48:30 | 显示全部楼层 |阅读模式
本帖最后由 wuyq80 于 2024-2-7 21:03 编辑

各位大佬好,在用埃科相机SDK进行回调后,图片可在WPF的halcon控件显示。但每张图片都需要检测耗时400ms左右。
一个相机每秒5-6张图片,时间一长,图片就在控件上显示不出。
除了优化算法时间,还有其他方法吗。如果再优化算法,就要用到深度学习了。
我这里的检测结果有缺陷分类。位置。面积大小等。
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
新凉无处暑 发表于 2024-2-20 09:05:26 | 显示全部楼层
只是显示图像的话,使用复制的图像显示,显示完释放!HImage image=new HImage(原图),处理完后释放,image.Dispose()
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
 楼主| wuyq80 发表于 2024-2-20 20:29:02 | 显示全部楼层
显示在halcon没问题,图片进行处理就不行了
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
新凉无处暑 发表于 2024-2-21 09:06:55 | 显示全部楼层
wuyq80 发表于 2024-2-20 20:29
显示在halcon没问题,图片进行处理就不行了

可以尝试下并发处理,把不同检测类型分别封装成不同的方法,使用Task并发处理
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
 楼主| wuyq80 发表于 2024-2-27 19:51:37 | 显示全部楼层
新凉无处暑 发表于 2024-2-21 09:06
可以尝试下并发处理,把不同检测类型分别封装成不同的方法,使用Task并发处理 ...

在回调里通过Halcon生成HObject保存到队列,在其他进程Task里获取队列数据进程图片的处理。半小时一切显示正常,后面就会有相机的回调出错,获取不了图片了。
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
新凉无处暑 发表于 2024-2-28 09:09:47 | 显示全部楼层
wuyq80 发表于 2024-2-27 19:51
在回调里通过Halcon生成HObject保存到队列,在其他进程Task里获取队列数据进程图片的处理。半小时一切显 ...

相机SDK中一般有相机回调Demo,查看是否有内存泄漏。队列使用线程安全队列(ConcurrentQueue),具体问题自己写个log或打个断点逐步看下
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
 楼主| wuyq80 发表于 2024-3-3 21:07:52 | 显示全部楼层
新凉无处暑 发表于 2024-2-28 09:09
相机SDK中一般有相机回调Demo,查看是否有内存泄漏。队列使用线程安全队列(ConcurrentQueue),具体问题 ...

就是使用的ConcurrentQueue,在相机的回调中获取数据的。因为一秒只能处理队列中3张图片,而相机一秒长生6张图片加到队列中。
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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