read_image (Image,'die_pads')
*获取图像大小
get_image_size (Image, Width, Height)
*打开新窗口
dev_open_window (0, 0, Width*2, Height*2, 'black', WindowHandle)
dev_display (Image)
fast_threshold (Image, Region, 128, 255, 20)
*将区域分割
connection (Region, ConnectedRegions)
*形状筛选中为什么要使用'anisometry' ,因为单纯的以形状区分不能够筛选出索要区域,因此需要其他维度的区分因素
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 200, 99999)
select_shape (ConnectedRegions, SelectedRegions1, ['area','anisometry'], 'and', [200,1], [99999,2])
*因为筛选出的形状存在 “毛刺”,因此,直接获取边界会导致存在许多小区域,因此使用fill_up填满这些区域
fill_up (SelectedRegions1, RegionFillUp)
*填充后的图像存在小缺口,因此不能直接寻找边界,通过转化为凸型可以填补缺口
shape_trans (RegionFillUp, RegionTrans, 'convex')
boundary (RegionTrans, RegionBorder, 'inner')
union1 (RegionBorder, RegionUnion)
*将区域转化为图像 从而仅对
reduce_domain (Image, RegionUnion, ImageReduced)
*进行边缘提取 输入对象应为图像 而不是区域
edges_sub_pi
halcon学习笔记(1)焊盘识别
最新推荐文章于 2024-06-29 09:55:26 发布