halcon学习笔记(9)——例子fin区域运算分割图像学习

本文介绍了一种图像处理方法,用于检测圆形结构上的额外部分(小尾巴)。通过一系列图像处理步骤,包括背景分割、圆形结构关闭及差异计算等,最终优化并突出显示这些额外结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        例子还是手册中的,例子叫fin.hdev;是检测一个圆形结构上出的“小尾巴”;步骤是,第一,分割出背景和目标物;第二,分割并关闭想要的圆形物体的后的背景图(a);第三,用背景(a)减去分割关闭圆结构的图(b),得到想多余的小尾巴(c);第四,优化小尾巴(c),去除干扰,得到优化后的小尾巴(d),下图即为a-b=c,c优化后得到d处理图:


      原图如下:


     下面是代码:

* fin.hdev: Detection of a fin
* 
dev_update_window ('off')
read_image (Fin, 'fin2')
*read_image (Fin, 'fin1')
*read_image (Fin, 'fin3')

get_image_size (Fin, Width, Height)
dev_close_window ()
dev_open_window (0, 0, Width, Height, 'black', WindowID)
dev_display (Fin)
set_display_font (WindowID, 14, 'mono', 'true', 'false')
disp_continue_message (WindowID, 'black', 'true')
stop ()
threshold (Fin, Regions, 0, 244)

bin_threshold (Fin, Dark)
*自动阈值分割,通过各种内部运算,分割值较低的一部分
difference (Fin, Dark, Background)
*比较图像的不同,比较fin和阈值后分割后图像Dark,目的是分割出背景

dev_set_color ('blue')
dev_set_draw ('margin')
dev_set_line_width (4)
dev_display (Background)
disp_continue_message (WindowID, 'black', 'true')
stop ()
closing_circle (Background, ClosedBackground, 250)
*关闭圆形结构图形,小于半径250的圆形圆形结构将被忽略,也就是去那个小尾巴

dev_set_color ('green')
dev_display (ClosedBackground)
disp_continue_message (WindowID, 'black', 'true')
stop ()

difference (ClosedBackground, Background, RegionDifference)
*还是比较,用灰度图像Background和去掉小尾巴的图像ClosedBackground进行求差运算

opening_circle (RegionDifference,FinRegion, 2.5)
*与关闭相反,打开这部分图像中半径大于参数的图像,并分割出来

*opening_rectangle1 (RegionDifference, FinRegion, 5, 5)
*打开矩形结构,效果和圆形差不多

dev_display (Fin)
dev_set_color ('red')
dev_display (FinRegion)
area_center (FinRegion, FinArea, Row, Column)
dev_set_draw ('fill')
dev_set_line_width (1)
dev_update_window ('on')
disp_continue_message (WindowID, 'black', 'true')
stop ()





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值