Hough Transform(霍夫变换)¶
霍夫变换(Hough Transform)是一种经典的计算机视觉与图像处理技术,用于在图像中检测几何形状(尤其是直线、圆、椭圆等参数化曲线)。
🌟 一句话理解:¶
霍夫变换是将“图像空间中的点”转换为“参数空间中的曲线”,从而在参数空间中寻找形状的累积证据(投票)来检测图像中的几何形状。
📐 最经典应用:检测直线¶
在图像中一条直线通常由多个像素点构成。但这些点不一定连在一起,可能被噪声破坏。霍夫变换通过投票机制在参数空间中找出所有可能组成直线的点,从而鲁棒地检测图像中的直线。
🔢 直线的参数形式¶
在图像空间中,一条直线可以表示为:
y = mx + b (斜截式,但m→∞不适用于垂直线)
为了避免这种不稳定性,霍夫变换采用极坐标表示法:
ρ = x·cosθ + y·sinθ
ρ:直线到原点的最短距离
θ:直线与 x 轴的夹角
🔁 基本原理¶
对图像进行边缘检测(如 Canny 边缘检测),得到一系列边缘像素点。
每个边缘点 (x, y) 在参数空间中“变成一条曲线”(ρ-θ 空间)。
多个边缘点的曲线在参数空间中“交汇”的地方(即投票数最多的点)表示可能存在一条真实直线。
最后在图像中绘制这些检测到的直线。
🌀 霍夫变换也可以检测其他形状¶
除了直线,霍夫变换还可以用于检测:
圆(参数:x₀, y₀, r)
椭圆
任意参数可描述的形状
不过维度越高,计算越复杂(称为高维霍夫空间),因此会采用优化版:
累加器优化
随机霍夫变换(Randomized Hough Transform)
梯度导向霍夫变换(Gradient-based Hough)
📦 应用场景¶
检测图像中的道路边缘、车道线
检测建筑结构的边缘(如墙角、地板线)
检测圆形物体(如交通标志、细胞)
🧠 总结一句话:¶
霍夫变换就是在“参数空间里投票找规律”,哪条线、哪个圆在图像中出现的证据最多,它就出现了。