Halcon的提取中心线算法

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,最大对比度时,不够亮的区域不会生成中心线:

 

posted @   广阔之海  阅读(1422)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下
点击右上角即可分享
微信分享提示