Halcon程序之区域分割和面积表示

* clip.hdev: Orientation of clips
*
*关闭动态显示窗口,这样只有在要显示的时候才打开,便于观察
dev_update_window ('off')
*读取图像到Clip
read_image (Clip, 'clip')
*获取Clip中图像的尺寸
get_image_size (Clip, Width, Height)
*关闭窗口
dev_close_window ()
*重新打开窗口,窗口尺寸设定
dev_open_window (0, 0, Width/2, Height/2, 'black', WindowID)
*在窗口中显示Clip中的图像
dev_display (Clip)

set_display_font (WindowID, 14, 'mono', 'true', 'false')
disp_continue_message (WindowID, 'black', 'true')
stop ()

*自动阈值处理,二值化,输出的是一个区域
bin_threshold (Clip, Dark)

*求连域操作,得到各个闭合的Region
connection (Dark, Single)
*基于面积的特征来选出我们所需要的区域
select_shape (Single, Selected, 'area', 'and', 5000, 10000)

dev_set_draw ('fill')

dev_set_colored (12)
dev_display (Selected)
disp_continue_message (WindowID, 'black', 'true')
stop ()
dev_display (Clip)
dev_set_color ('green')
dev_display (Selected)
*求出方向,角度值存入Phi
orientation_region (Selected, Phi)
*求图像中心
area_center (Selected, Area, Row, Column)
dev_set_line_width (3)

*设置划线的类型为轮廓
dev_set_draw ('margin')

Length := 80
*|Phi|指Phi的长度
for i := 0 to |Phi|-1 by 1
    dev_set_color ('blue')
    *显示箭头,
    disp_arrow (WindowID, Row[i], Column[i], Row[i]-Length*sin(Phi[i]), Column[i]+Length*cos(Phi[i]), 4)
    disp_message (WindowID, deg(Phi[i])$'3.1f'+' deg', 'image', Row[i], Column[i]-100, 'black', 'false')
endfor
dev_update_window ('on')

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值