【Halcon视觉】图像拟合直线

        在机器视觉领域,常见的应用场景是工业。如:手机制造,汽车制造,等等。在这些零部件生产加工时,需要对工件进行定位。通过工件的边缘,拟合直线,可实现获取工件的坐标位置。

        XLD分割:在获取亚像素轮廓后,需要将轮廓进行分割,各个线条的折点,一般为分割点。

        算子: segment_contours_xld ()   轮廓分割

        XLD的拟合:根据线条的预先模型,对线条进行重新生成。

        算子:fit_line_contour_xld ()   拟合直线

        XLD的拟合原理:最小二乘法拟合,权重拟合。

*关闭窗口
dev_close_window ()

*打开窗口
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)

*读取图像
read_image (Image, 'printer_chip/printer_chip_01')

*画矩形区域
draw_rectangle1 (WindowHandle, Row1, Column1, Row2, Column2)

*生成矩形区域
gen_rectangle1 (Rectangle, Row1, Column1, Row2, Column2)

*裁剪区域
reduce_domain (Image,Rectangle, ImageReduced)

*显示
dev_display (ImageReduced)

*亚像素轮廓提取
edges_sub_pix (ImageReduced, Edges, 'canny', 1, 20, 40)

*选择特定形态的轮廓
select_shape_xld (Edges, SelectedXLD, 'area', 'and', 5000, 99999)

*分割轮廓
segment_contours_xld (SelectedXLD, ContoursSplit, 'lines_circles', 5, 4, 2)

*选择特定形态的轮廓
select_shape_xld (ContoursSplit, SelectedXLD1, 'phi', 'and', -0.01, 0)

*拟合直线
fit_line_contour_xld (SelectedXLD1, 'huber', -1, 0, 5, 2, RowBegin, ColBegin, RowEnd, ColEnd, Nr, Nc, Dist)

*生成直线
gen_contour_polygon_xld (Result, [RowBegin,RowEnd], [ColBegin-500,ColEnd+500])

*显示区域
dev_display (ImageReduced)

*显示轮廓
dev_display (Edges)

*显示结果
dev_display (Result)









  • 11
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值