内容列表
1. 看一个实际案例
- 这是一块电池,右侧有两个极耳,极耳相对电池的位置固定。
力神的检测部门会对电池进行抽检,他们使用的工具是一个电木模具,类似于下面的图形,它可以有效的限制住电池的上限。(NG一般是电池尺寸超出标准,所以对电池尺寸的下限不需要限制)
如果电池能放入模具中,则认为合格,如果放不进去就是不合格,那么该如何来设计算法来判断电池是否合格呢
电池的极耳会漏在外面
2. 解决方案和代码
halcon代码
read_image (Image, '08-45-01-715_N491266H33967')
* 设置ROI
gen_rectangle1 (ROI_1, 2120.94, 4169.55, 2583.03, 4954.1)
gen_rectangle1 (ROI_2, 2751.07, 4152.49, 3192.16, 4954.1)
* 区域并集(加法)
union2 (ROI_1, ROI_2, ROI_3)
gen_rectangle1 (ROI_4, 1081.22, 1901.18, 3979.82, 5252.57)
* 区域差集(减法)
difference (ROI_4, ROI_3, RegionDifference)
* 抠图
reduce_domain (Image, RegionDifference, ImageReduced)
* 二值化
threshold (ImageReduced, Regions, 0, 100)
*dilation_circle (Regions, RegionDilation, 5.5)
* 分割
connection (Regions, ConnectedRegions)
* 筛选
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 3.22343e+006, 5e+006)
* 最小外接矩形
smallest_rectangle2 (SelectedRegions, Row, Column, Phi, Length1, Length2)
gen_rectangle2_contour_xld (Rectangle, Row, Column, Phi, Length1, Length2)
* 显示
dev_set_line_width (2)
dev_display (Image)
dev_display (Rectangle)
* 对比电池的尺寸和模具尺寸
set_display_font (3600, 16, 'mono', 'true', 'false')
disp_message (3600, 'L1:'+2*Length1, 'image', Row, Column-400, 'cyan', 'false')
disp_message (3600, 'L2:'+2*Length2, 'image', Row+400, Column-400, 'green', 'false')
3. 资源下载
https://download.csdn.net/download/weixin_38566632/35324003
————————————————
版权声明:本文为CSDN博主「MechMaster」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_38566632/article/details/121029374
评论(0)
您还未登录,请登录后发表或查看评论