Halcon提取中心线的一般流程:
read_image (Image, 'C:/Users/Administrator/Desktop/china.png') *计算提线参数 MaxLineWidth := 5 Contrast := 10 calculate_lines_gauss_parameters (MaxLineWidth, [Contrast,0], Sigma, Low, High) *提取中心线 lines_gauss (Image, Lines, Sigma, Low, High, 'light', 'true', 'parabolic', 'true') *合并共直线线段 union_collinear_contours_xld (Lines, UnionContours, 10, 1, 10, rad(30), 'attr_keep') *按长度筛选线段 select_contours_xld (UnionContours, SelectedContours, 'contour_length', 20, 999999, -0.5, 0.5) *显示结果 dev_display (Image) dev_set_color ('red') dev_display (SelectedContours)
MaxLineWidth = 5,Contract = 10,由于最大线宽太小,较宽线区域会生成多条中心线:
MaxLineWidth = 20,Contract = 10,线宽设置合理,生成的中心线比较居中:
MaxLineWidth = 40,Contract = 10,最大线宽过大,部分不够亮的区域未生成中心线:
MaxLineWidth = 40,Contract = 255,最大对比度时,不够亮的区域不会生成中心线: