Halcon 图像预处理案例(检测表面划痕、毛刺边缘提取)

1、检测表面划痕

read_image (Image, 'D:/Halcon/检测表面划痕.png')
get_image_size (Image, Width, Height)
dev_open_window (0, 0, Width/2, Height/2, 'black', WindowHandle)
dev_display (Image)
dev_set_draw ('margin')
dev_set_line_width (4)

* 均值滤波
mean_image (Image, ImageMean, 7, 7)
* 局部阈值分割
dyn_threshold (Image, ImageMean, RegionDynThresh, 5, 'dark')
* 连通性
connection (RegionDynThresh, ConnectedRegions)
* 处理区域
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 10, 99999)
* 合并
union1 (SelectedRegions, RegionUnion)
* 膨胀
dilation_circle (RegionUnion, RegionDilation, 3.5)
* 求膨胀区域的骨架(指图像中目标的中轴线或主要特征线,它可以帮助提取目标的形状、结构以及其他信息)
skeleton (RegionDilation, Skeleton)
connection (Skeleton, ConnectedRegions1)
* 筛选
select_shape (ConnectedRegions1, SelectedRegions1, 'area', 'and', 40, 500)
select_shape (ConnectedRegions1, SelectedRegions2, 'area', 'and', 10, 40)

dev_display (Image)
dev_set_color ('red')
dev_display (SelectedRegions1)

dev_set_color ('blue')
dev_display (SelectedRegions2)

在这里插入图片描述

2、毛刺边缘检测

read_image (Image, 'fin'+[1:3])
get_image_size (Image, Width, Height) //这里返回的是数组,注意下面使用的时候也要用数组的格式
dev_open_window (0, 0, Width[0], Height[0], 'black', WindowHandle)

for Index:=1 to 3 by 1
    * 选择图像中数组指定索引的图像
    select_obj (Image, Fin, Index)
    dev_display (Fin)
    
    * 全自动阈值分割
    binary_threshold (Fin, Region, 'max_separability', 'light', UsedThreshold)
    dev_set_color ('green')
    dev_set_draw ('margin')
    dev_set_line_width (4)
    
    * 腐蚀
    closing_circle (Region, RegionClosing, 260)
    
    * 闭运算(计算两个区的差值)
    difference (RegionClosing, Region, RegionDifference)
    * 开运算(消除物体边缘的毛边)
    opening_circle (RegionDifference, RegionOpening, 3.5)
    dev_display (Fin)
    dev_display (RegionOpening)
    
    area_center (RegionOpening, Area, Row, Column)
    if(Index<3)
        disp_continue_message (WindowHandle, 'black', 'true')
        stop ()
    endif
endfor

在这里插入图片描述

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值