halcon学习之一维测量基础

目录

创建测量矩形,获取测量句柄

gen_measure_rectangle2()

使用句柄进行测量

measure_pos()

修改参数Threshold

修改参数Transition

修改参数select

参数RowEdge,ColumnEdge,Distance

measure_pairs()

修改参数Transition

修改参数Select

intraDistance与interDistance 

清除句柄

close_measure()


创建测量矩形,获取测量句柄

gen_measure_rectangle2()

gen_measure_arc()


使用句柄进行测量

measure_pos()


代码

read_image (Image, 'C:/Users/Public/Documents/MVTec/HALCON-19.05-Progress/examples/images/gasket/gasket_01.png')
dev_close_window ()

get_image_size (Image, Width, Height)
dev_open_window (0, 0, Width, Height, 'black', WindowHandle)
dev_display (Image)
dev_set_draw ('margin')
dev_set_line_width (2)

draw_rectangle2 (WindowHandle, Row, Column, Phi, Length1, Length2)
gen_measure_rectangle2 (Row, Column, Phi, Length1, Length2, Width, Height, 'nearest_neighbor', MeasureHandle)
measure_pos (Image, MeasureHandle, 1, 30, 'all', 'all', RowEdge, ColumnEdge, Amplitude, Distance)
disp_rectangle2 (WindowHandle, Row, Column, Phi, Length1, Length2)
disp_cross (WindowHandle, RowEdge, ColumnEdge, 20, 45)

修改参数Threshold

可以看到,当threshold大于黑色与灰色的灰度值差,那么将获取不了边沿点。


修改参数Transition

可以理解为positive为增加,就是灰度从小到大的点将被选择。


修改参数select


参数RowEdge,ColumnEdge,Distance


measure_pairs()

代码

read_image (Image, 'C:/Users/Public/Documents/MVTec/HALCON-19.05-Progress/examples/images/gasket/gasket_01.png')
dev_close_window ()

get_image_size (Image, Width, Height)
dev_open_window (0, 0, Width, Height, 'black', WindowHandle)
dev_display (Image)
dev_set_draw ('margin')
dev_set_line_width (2)

draw_rectangle2 (WindowHandle, Row, Column, Phi, Length1, Length2)
gen_measure_rectangle2 (Row, Column, Phi, Length1, Length2, Width, Height, 'nearest_neighbor', MeasureHandle)

measure_pairs (Image, MeasureHandle, 1, 30, 'all', 'all', RowEdgeFirst, ColumnEdgeFirst, AmplitudeFirst, RowEdgeSecond, ColumnEdgeSecond, AmplitudeSecond, IntraDistance, InterDistance)

使用disp_cross()绘制得出的结果。

可见,此指令是以一对点为对象进行返回。


修改参数Transition

positive表示从黑到白的过度,而这过度,是指第一个点两边的灰度值变化,所以当第一个点为positive,那么点对中的第二点就必然是neagtive。


修改参数Select


intraDistance与interDistance 

intraDistance表示点对之间的距离,而interDistance表示点对中的第二个点与另一组点对的第一个点之间的距离,也就是说点对间的距离。


清除句柄

close_measure()

当测量完成后,使用该算子可以清除内存中的测量句柄。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值