OpenCV中Hough transform(霍夫变换)
2014-02-27 09:13
204 查看
霍夫变换所基于的公式:
P = X * COS(θ) + Y *SIN(θ)
首先,明确图像坐标,在图像中横轴是从左向右增加,纵轴是从上向下增加,原点在左上角,在使用霍夫变换检测图像中的直线时,P是原点到直线的距离,θ是原点到直线垂线和X轴正方向在顺时针方向的夹角。
霍夫变换思想:
我们建立一个累积数组acc[][],对于每一个给定的图像上的点(X0 , Y0)有一组对应的(p , θ)表示通过这个点的所有直线,我们累计acc[p][θ]++;依次计算图像中的每一个点。最后检查acc[][]他们他们最后的值就是图像上以p , θ 为参数的直线在图像中通过的点数。检查acc[]][]若其值大于等于threshold则被认为是一条直线。
OpenCV中基本霍夫变换的函数:
void HoughLines( InputArray image, OutputArray lines,
double rho, double theta, int threshold,
double srn=0, double stn=0 );
参数:
lines:存放检测到的直线
rho:是P的步长
theta:是θ的步长
threshold:是设定的最小投票数,也即acc[p][θ]>=threshold时才认定其为一条直线
函数HoughLines()只能得到直线的参数P ,θ并不知道检测到的直线的端点
霍夫变换的变形HoughLinesP()可以检测到直线的两个端点。
P = X * COS(θ) + Y *SIN(θ)
首先,明确图像坐标,在图像中横轴是从左向右增加,纵轴是从上向下增加,原点在左上角,在使用霍夫变换检测图像中的直线时,P是原点到直线的距离,θ是原点到直线垂线和X轴正方向在顺时针方向的夹角。
霍夫变换思想:
我们建立一个累积数组acc[][],对于每一个给定的图像上的点(X0 , Y0)有一组对应的(p , θ)表示通过这个点的所有直线,我们累计acc[p][θ]++;依次计算图像中的每一个点。最后检查acc[][]他们他们最后的值就是图像上以p , θ 为参数的直线在图像中通过的点数。检查acc[]][]若其值大于等于threshold则被认为是一条直线。
OpenCV中基本霍夫变换的函数:
void HoughLines( InputArray image, OutputArray lines,
double rho, double theta, int threshold,
double srn=0, double stn=0 );
参数:
lines:存放检测到的直线
rho:是P的步长
theta:是θ的步长
threshold:是设定的最小投票数,也即acc[p][θ]>=threshold时才认定其为一条直线
函数HoughLines()只能得到直线的参数P ,θ并不知道检测到的直线的端点
霍夫变换的变形HoughLinesP()可以检测到直线的两个端点。
相关文章推荐
- OpenCV的霍夫变换(Hough Transform)直线检测
- OpenCV的霍夫变换(Hough Transform)圆检测
- 霍夫变换检测直线的公式推导以及基于opencv的源代码分析并实例实现
- Hough Transform(霍夫变换)
- 关于Opencv3在使用霍夫变换(houghlines)时一直出问题的解决
- 【OpenCV入门教程之十四】OpenCV霍夫变换:霍夫线变换,霍夫圆变换合辑
- openCV—霍夫变换原理(直白易懂)
- opencv-霍夫变换 检测直线
- 霍夫变换直线检测houghlines及opencv的实现分析
- Hough transform(这篇文字比较形象地阐述了霍夫变换的基本原理,简单易懂)
- opencv3标准霍夫变换-HoughLines函数
- opencv之7.3霍夫变换
- OpenCv霍夫变换检测圆形
- 霍夫变换(hough transform)原理
- 灰度图像--图像分割 霍夫变换(Hough Transform)--直线
- 【OpenCV入门教程之十四】OpenCV霍夫变换:霍夫线变换,霍夫圆变换合辑
- 霍夫变换概述霍夫变换(Hough Transform)是图像处理中的一种特征提取技术
- 图像的直线检测——霍夫变换(Hough transform)
- OpenCV之霍夫变换
- Hough Transform(霍夫变换)检测Circle(圆)的几种方法