霍夫变换(Hough Transfrom)于1962年首先由PaulHough提出,最开始是用来在图像中过检测直线的,后来扩展到检测圆、曲线等。
先来看看在图像空间(直角坐标系)下的直线方程:y=kx+b,也就相当于知道斜率k和截距b就可以唯一的确定一条直线。而将这个(k,b)映射到参数空间中就可通过一个点确定直角坐标系下的一条直线,即参数空间中的每一点都对应着直角坐标系下的唯一一条确定的直线。反过来也可以描述成在图像空间中的任一像素点p,对应于参数空间中有无数个点(因为过该像素点的直线有无数条),如图1所示。
-
文章图片
【图像处理算法|Hough变换检测直线的原理】但是对应斜率k不存在的直线(即和x轴垂直的直线),为了同样对应在参数空间中,引入极坐标系,则直线可以同样的表示为:y = r·sinθ, x = r·cosθ, 这样就以(r,θ)代替图像中的一条直线,如图2所示。Hough变换的思想就是基于此进行的,对于上面提到的图像中的一个像素点对应着参数空间中的无数条直线,将这无数条直线的点集画在参数坐标系中,则得到一条正弦曲线,而经过不同像素点的无数条直线在参数坐标系中对应着不同的正弦曲线(图3),越多曲线交于一点也就意味着这个焦点表示的直线在原图中由更多的像素点组成,这也就是在检测直线的时候需要设定一个阈值(相当于交点的个数)来确定该条直线是否存在。
文章图片
文章图片
推荐阅读
- python|python实现opencv学习十七(hough变换检测直线)
- python|Python+OpenCV 轻松实现人脸识别签到考勤系统
- 计算机视觉|nnU-Net: Self-Adapting Framework for U-Net-Based Medical Image Segmentation
- 带你读懂垃圾回收算法
- 模拟退火算法详细讲解以及实践应用
- 技术交流|Python图像处理丨图像缩放、旋转、翻转与图像平移
- 教你用OpenCV 和 Python给证件照换底色(蓝底 <-;红底-;白底)
- 记录读论文时遇到的一些算法|【记录读论文时遇到的一些算法8】—— 法向量
- 累加和校验算法(CheckSum算法)