霍夫线变换---检测直线(线段)
霍夫圆变换---检测圆
HoughLines()---标准霍夫变换、多尺度霍夫变换
HoughLinesP()---累计概率霍夫变换
HoughCricles()---霍夫圆变换
1)霍夫线变换
霍夫线变换是一种寻找直线的方法,一般在使用霍夫变换前首先将图像进行边缘检测处理, 一般霍夫变换的输入为边缘二值图。OpenCV支持三种不同的霍夫线变换,包括:
使用函数对应关系:
标准霍夫变换(SHT)------HoughLines()函数
多尺度霍夫变换(MSHT)------HoughLines()函数
累计概率霍夫变换(PPHT)------HoughLinesP()函数
霍夫线变换原理简介:
霍夫线变换原理简介:
标准霍夫变换---HoughLines()
src: 输入原图像(一般为8位单通道二值图像)
lines: 经过霍夫变换后检测线条的输出矢量,每一条线由两个元素的矢量(ρ,Θ)表示, 其中ρ是离坐标原点的距离,Θ是弧度线条旋转角度(0表示垂直线,π/2度表示水平线)
rho: 以像素为单位的距离精度,另一种表述方式是直线搜索时的进步尺寸的单位半径
theta: 以弧度为单位的角度精度,另一种表述方式是直线搜索时的进步尺寸的角度单位
threshold: 累加平面的阈值参数,即识别某部分为一条直线时它在累加平面中必须达到的值,大于阈值threshold的线段才可以被检测通过并返回到结果中
srn: 默认值0,对于多尺度的霍夫变换,这是第三个参数进步尺寸rho的除数距离
stn:默认值0,对于多尺度霍夫变换,表示单位角度theta
累计概率霍夫变换---HoughLinesP()
src: 输入原图像(一般为8位单通道二值图像)
lines: 经过霍夫变换后检测线条的输出矢量,每一条线由4个元素矢量(x_1,y_1,x_2,y_2)表示,其中(x_1,y_1)和(x_2,y_2)是检测到线段的结束点
rho: 以像素为单位的距离精度,另一种表述方式是直线搜索时的进步尺寸的单位半径
theta: 以弧度为单位的角度精度,另一种表述方式是直线搜索时的进步尺寸的角度单位
threshold: 累加平面的阈值参数,即识别某部分为一条直线时它在累加平面中必须达到的值,大于阈值threshold的线段才可以被检测通过并返回到结果中
minLineLength:默认值0,表示最低线段的长度,小于则不显示
maxLineGap: 默认值0,允许将同一行点与点之间连接起来的最大距离
霍夫圆变换
霍夫圆变换的基本原理和霍夫线变换大体上类似,只是点对应的二维极径极角空间被三维的圆心点x,y和半径r空间取代,如果用完全一样的方法运算量较大,运行速度较慢,所以采用“霍夫梯度法”来做圆变换。