🟧 霍夫直线检测

功能描述

该算子采用霍夫变换算法,在输入的灰度图像中检测并提取直线段。

使用场景

检测物体的直线边缘。

输入输出

输入项

图像:输入的单通道灰度图像。图像中的直线边缘越清晰,检测效果越好。

输出项

检测结果:输出一个检测实例列表。

参数说明

阈值

参数说明

累加计数值的阈值,可以理解为"构成一条直线所需要的最少点数",即只有当多个点汇交于一点的计数值超过此阈值时,才认为在图像空间中存在一条直线。

调参说明

  • 增大此值:只有由大量像素点构成的、非常明显的长直线才会被检测到。

  • 减小此值:即使是由少量点构成的短的、不连续的线也可能被检测出来,但会增加噪声干扰。

参数范围

[1, 1000],默认值:500

线条宽度

参数说明

设置输出结果中代表检测直线的宽度。

调参说明

此参数不影响检测过程,仅用于控制输出结果对线宽的设置以及可视化效果。

参数范围

[1, 200],默认值:1

检测方法

参数说明

选择霍夫直线检测的具体算法:

  • 标准霍夫变换:将图像中符合条件的无限长的直线全部找出,而不是有限的线段。适用于需要分析直线方向而非长度的场景。

  • 概率霍夫变换:一种优化算法,可以直接返回检测到线段的起点和终点,运行速度更快,更加直观。

调参说明

标准霍夫变换

  • 最小/最大角度:设置要检测的直线的角度范围。如果目标是检测特定方向的直线(例如,只想检测水平线或垂直线),可以通过设置此范围来缩小搜索空间,提高效率和准确性。

概率霍夫变换

  • 最小直线长度:定义一条线段被识别出来的最小像素长度。增大此值可以有效过滤掉由噪声产生的许多短而不相关的线段。

  • 最大直线间隙:定义了在同一条直线上的两个点之间所允许的最大像素间隙。如果图像中的直线是虚线或者有部分断裂,可以适当增大此值,算法会尝试将这些断开的线段连接成一条完整的直线。

参数范围

最小/最大角度:[0,360],默认值:0/180,单位:°

最小直线长度:[0,1000],默认值:180,单位:像素

最大直线间隙:[0,1000],默认值:180,单位:像素