OpenCV第十讲:图像几何形状识别之霍夫变换
作者:互联网
霍夫变换是从图像中识别几何形状的基本方法之一, 主要检测
直线或圆
。
1.霍夫变换概述
霍夫变换是图像处理中一种特征提取技术
, 该过程在一个参数空间中通过计算累计结果的局部最大值得到一个符合该特定形状的集合作为霍夫变换的结果
;
目前霍夫变换扩展到任意形状物体的识别, 多为圆和椭圆
;
霍夫变换就是利用两个坐标空间的变换将在一个空间具有相同形状的曲线/直线映射到另一个坐标空间的一个点上形成峰值
, 从而把检测任意形状的问题转化为统计峰值问题
。
在OpenCV中,主要有"霍夫线变换"和"霍夫圆变换"。
2. 霍夫线变换
-
原理简述
-
一条直线在极坐标下的表示形式为:
y=(−sinθcosθ)x+(sinθr)
化简得:r=xcosθ+ysinθ
-
由上式可以看出, 图像上的每一个点都会在(r-theta)平面上的得到一条正弦曲线, 如果两个不同点得到的曲线在(r-theta)平面相交, 说明他们通过同一条直线;
-
检测(r-theta)平面交于一点的曲线数量,通过设置阈值,定义多少条曲线交于一点,这样就可以认为检测到了一条直线;
-
-
OpenCV函数
霍夫线变换是一种用来寻找直线的方法, 所以在使用该变换之前, 首先要对图像进行边缘检测
(即该变换的输入为单通道边缘图像
)。
/*
"HoughLines"
`标准霍夫变换`:(SHT)
`多尺度霍夫变换`:(MSHT)
"HoughLinesP"
`累计概率霍夫变换`(PPHT) 更为倾向使用。
*/
3. 霍夫圆变换
它与霍夫线变换的原理答题类似,只是由二维的点(x, theta) --> 三维的圆心(x, y, r)
其他方面讲述暂略(ps: 由于时间原因,一些在很长时间内不会用到的知识就不去阐述了。。)
标签:cos,第十,变换,霍夫,OpenCV,霍夫线,theta,sin 来源: https://blog.csdn.net/qq_29797957/article/details/100156155