1.前言
Halcon中的边缘提取,可拟合直线。通过两条直线的交点,可实现工件定位。
2.效果
*关窗
dev_close_window ()
*开窗
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
*清理窗口
dev_clear_window ()
*读取图片
read_image (Image, 'C:/Users/Administrator/Desktop/图片/电池1.jpg')
*灰度化
rgb1_to_gray (Image, GrayImage)
*阈值化
threshold (GrayImage, Regions, 32, 161)
*裁剪
reduce_domain (GrayImage, Regions, MyImageReduced)
**********第一条直线**********
*画矩形
draw_rectangle1 (WindowHandle, Row1, Column1, Row2, Column2)
*生成矩形
gen_rectangle1 (Rectangle, Row1, Column1, Row2, Column2)
*裁剪
reduce_domain (MyImageReduced, Rectangle, ImageReduced)
*轮廓
edges_sub_pix (ImageReduced, Edges, 'canny', 1, 20, 40)
*分割轮廓
segment_contours_xld (Edges, ContoursSplit, 'lines_circles', 5, 4, 2)
*选择轮廓
select_contours_xld (ContoursSplit, SelectedContours, 'contour_length', 100, 20000, -0.5, 0.5)
*拟合直线
fit_line_contour_xld (SelectedContours, 'tukey', -1, 0, 5, 2, RowBegin, ColBegin, RowEnd, ColEnd, Nr, Nc, Dist)
*生成直线
gen_contour_polygon_xld (Contour, [RowBegin,RowEnd], [ColBegin,ColEnd])
**********第二条直线**********
*画矩形
draw_rectangle1 (WindowHandle, Row11, Column11, Row21, Column21)
*生成矩形
gen_rectangle1 (Rectangle1, Row11, Column11, Row21, Column21)
*裁剪
reduce_domain (MyImageReduced, Rectangle1, ImageReduced1)
*轮廓
edges_sub_pix (ImageReduced1, Edges1, 'canny', 1, 20, 40)
*分割轮廓
segment_contours_xld (Edges1, ContoursSplit1, 'lines_circles', 5, 4, 2)
*选择轮廓
select_contours_xld (ContoursSplit1, SelectedContours1, 'contour_length', 100, 20000, -0.5, 0.5)
*拟合直线
fit_line_contour_xld (SelectedContours1, 'tukey', -1, 0, 5, 2, RowBegin1, ColBegin1, RowEnd1, ColEnd1, Nr1, Nc1, Dist1)
*生成直线
gen_contour_polygon_xld (Contour1, [RowBegin1,RowEnd1], [ColBegin1,ColEnd1])
**********计算两条直线的交点**********
*直线交点
intersection_lines (RowBegin, ColBegin, RowEnd, ColEnd, RowBegin1, ColBegin1, RowEnd1, ColEnd1, MyRow, MyColumn, IsOverlapping)
*生成交叉点
gen_cross_contour_xld (Cross, MyRow, MyColumn, 30, 0.785398)
*显示坐标信息
disp_message (WindowHandle, '交点坐标( '+MyRow+' ,'+MyColumn+' )', 'window', 50, 50, 'red', 'true')
Halcon的定位功能,广泛应用于工业。使制造业智能化。
原文链接:https://blog.csdn.net/NickStudent/article/details/123734444 |