halcon calculate_lines_gauss_parameters算子详解

本文介绍了一个用于计算线条检测算子参数的方法,通过指定线条的最大宽度和对比度,可以自动计算出用于线条检测的高斯核参数Sigma、Low和High值。此方法简化了线条检测算子的参数设置过程,使得在不同场景下进行线条检测更为便捷。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

calculate_lines_gauss_parameters

原型

calculate_lines_gauss_parameters( : : MaxLineWidth, Contrast : Sigma, Low, High)

功能

根据要提取线的最大宽度以及对比度计算出lines_gauss算子输入的Sigma、Low、High值。

参数列表

MaxLineWidth (input_control) : lines_gauss要提取线条的最大宽度
Contrast (input_control) :lines_gauss要提取线的对比度。Contrast 值不仅可以一个,也可以为两个。当值为两个时,数组中的第二个值是要提取线的最小对比度,并且其值不能大于第一个值。比如:[20,10]
Sigma (output_control) :获取用于lines_gauss输入的Sigma值
Low (output_control):获取用于lines_gauss输入的Low 值
High (output_control) :获取用于lines_gauss输入的High 值

详解

对于参数Contrast 需要说明的是,如果只选择一个值时,最小对比度将会默认为最大对比度的1/3,最小对比度越小,线条将会延伸到对比度较低的区域,即线条越长。反之,值越高,线条越短,但越突出。
lines_gauss算子用到的滞后阈值方法中的Low、High值是根据线的最大宽度以及对比度(两个高低对比度)计算得出的。

举例

read_image (Image, ‘mreut’)
*Contrast 值为60,事实上其值为[60,20],所以下面这行代码等同于
*calculate_lines_gauss_parameters (30, [60,20], Sigma, Low, High)
calculate_lines_gauss_parameters (30, 60, Sigma, Low, High)
将calculate_lines_gauss_parameters计算出的值作为lines_gauss的输入,避免调试lines_gauss参数困难
lines_gauss (Image, Lines, Sigma, Low, High, ‘light’, ‘true’, ‘bar-shaped’, ‘true’)
dev_display (Image)
dev_display (Lines)
在这里插入图片描述
搭配lines_gauss使用链接https://blog.youkuaiyun.com/qq_18620653/article/details/105446922

### Halcon 中 `gen_line` 函数的使用说明 #### 1. 功能概述 `gen_line` 是 HALCON 提供的一个基本几何绘图算子,用于生成一条直线。该算子通常与其他图形处理功能结合使用,例如绘制辅助线、标注边界或者作为其他算法的基础输入。 --- #### 2. 参数详解 以下是 `gen_line` 的参数及其含义: ```plaintext gen_line( : Line : RowBegin, ColBegin, RowEnd, ColEnd : ) ``` - **Line**: 输出参数,表示生成的直线对象句柄。 - **RowBegin**: 输入参数,指定直线起点的行坐标(y轴位置)。 - **ColBegin**: 输入参数,指定直线起点的列坐标(x轴位置)。 - **RowEnd**: 输入参数,指定直线终点的行坐标(y轴位置)。 - **ColEnd**: 输入参数,指定直线终点的列坐标(x轴位置)。 这些参数定义了一条从 `(RowBegin, ColBegin)` 到 `(RowEnd, ColEnd)` 的直线[^5]。 --- #### 3. 示例代码 以下是一个简单的示例,展示如何使用 `gen_line` 创建并显示一条直线: ```hdevelop * 定义直线的起始点和结束点 RowBegin := 50 ColBegin := 50 RowEnd := 150 ColEnd := 150 * 调用 gen_line 生成直线 gen_line (Line, RowBegin, ColBegin, RowEnd, ColEnd) * 显示直线到窗口中 dev_display(Line) ``` 上述代码会在当前活动窗口中绘制一条从 `(50, 50)` 到 `(150, 150)` 的直线[^6]。 --- #### 4. 应用场景 `gen_line` 可以应用于多种场合,包括但不限于: - 边缘检测后的可视化验证。 - 图像分割过程中辅助线的绘制。 - 结合 `gray_projections` 进行方向性特征分析时提供参考线[^1]。 - 在标定流程中绘制标定点之间的连接线[^4]。 --- #### 5. 注意事项 - 如果需要将直线保存为图像文件或其他格式,可以将其转换为 ROI 或者轮廓形式后再进一步操作。 - 当前版本支持浮点数类型的坐标值,因此可以直接传入精确的小数值而无需额外取整[^7]。 --- #### 6. 相关扩展 对于更复杂的需求,可以通过组合 `gen_contour_polygon_xld` 和其他算子来构建多边形或者其他形状的线条结构。例如,在某些情况下可能需要用高斯滤波器预处理图像再调用 `calculate_lines_gauss_parameters` 来优化线条提取效果[^3]。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值