Halcon宽度测量

宽 度 测 量 宽度测量

需求:计算白色矩形的平均宽度。

1.读取图像

read_image (Image1, '1.bmp')

2.三通道转单通道

count_channels (Image1, Channels)
if (Channels==3)
    rgb1_to_gray (Image1, Image1)
endif
threshold (Image1, Region, 128, 255)
connection (Region, ConnectedRegions)
*形状选择
select_shape (ConnectedRegions, SelectedRegions, ['rect2_len1','rect2_len2'], 'and', [100,50], [150,80])
select_shape (SelectedRegions, SelectedRegions1, 'convexity', 'and', 0.8, 1)

count_obj (SelectedRegions1, Number)

if (Number!=7)
    stop ()
endif
union1 (SelectedRegions1, RegionUnion)
smallest_rectangle1 (RegionUnion, Row1, Column1, Row2, Column2)
gen_rectangle1 (Rectangle, Row1+30, Column1-10, Row2-30, Column2+10)

reduce_domain (Image1, Rectangle, ImageReduced)
edges_sub_pix (ImageReduced, Edges, 'canny', 1, 20, 40)

union_adjacent_contours_xld (Edges, UnionContours, 10, 1, 'attr_keep')

select_shape_xld (UnionContours, SelectedXLD, 'contlength', 'and', 150, 99999)
Halcon中,获取区域宽度可以使用`region_features`函数和`get_region_contour`函数。 1. 使用`region_features`函数获取区域的宽度: ``` gen_rectangle1(RectangleRow, RectangleColumn, RectanglePhi, RectangleLength1, RectangleLength2) gen_region_contour_xld(Rectangle, RectangleRow, RectangleColumn, RectanglePhi, RectangleLength1, RectangleLength2) gen_region(RectangleRegion, 'contour', Rectangle) Width := region_features(RectangleRegion, 'width') ``` 在上述代码中,我们首先使用`gen_rectangle1`函数生成一个矩形区域,然后使用`gen_region_contour_xld`函数获取矩形的轮廓,并将轮廓转换为区域。最后,使用`region_features`函数获取区域的宽度并赋值给变`Width`。 2. 使用`get_region_contour`函数获取区域的宽度: ``` gen_rectangle1(RectangleRow, RectangleColumn, RectanglePhi, RectangleLength1, RectangleLength2) gen_region_contour_xld(Rectangle, RectangleRow, RectangleColumn, RectanglePhi, RectangleLength1, RectangleLength2) Width := get_region_contour(Rectangle, 'width') ``` 在上述代码中,我们同样使用`gen_rectangle1`函数生成一个矩形区域,然后使用`gen_region_contour_xld`函数获取矩形的轮廓,并将轮廓转换为区域。最后,使用`get_region_contour`函数获取区域的宽度并赋值给变`Width`。 无论是使用`region_features`函数还是`get_region_contour`函数,都需要先将轮廓转换为区域。如果已经有了区域,则可以直接使用`region_features`函数获取区域的宽度
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值