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