Opencv2.4.9函数HoughLinesP分析
Opencv2.4.9函数HoughLinesP分析 Opencv2.4.9函数HoughLinesP是一种概率霍夫变换(Probabilistic Hough Transform),用于检测图像中的直线。它可以检测出图像中的直线,并且可以确定直线的两个端点。HoughLinesP函数的原型为: void HoughLinesP(InputArray image, OutputArray lines, double rho, double theta, int threshold, double minLineLength=0, double maxLineGap=0) 其中,image为输入图像,lines为输出的直线向量,rho和theta分别为距离和角度的分辨率,threshold为阈值,minLineLength为最小直线长度,maxLineGap为最大直线间隙。 HoughLinesP函数的工作过程可以分为以下几个步骤: 1. 随机抽取图像中的一个特征点,即边缘点,如果该点已经被标定为是某一条直线上的点,则继续在剩下的边缘点中随机抽取一个边缘点,直到所有边缘点都抽取完了为止; 2. 对该点进行霍夫变换,并进行累加和计算; 3. 选取在霍夫空间内值最大的点,如果该点大于阈值的,则进行步骤4,否则回到步骤1; 4. 根据霍夫变换得到的最大值,从该点出发,沿着直线的方向位移,从而找到直线的两个端点; 5. 计算直线的长度,如果大于某个阈值,则被认为是好的直线输出,回到步骤1。 HoughLinesP函数是在sources/modules/imgproc/src/hough.cpp文件中被定义的。它通过参数CV_HOUGH_PROBABILISTIC,最终调用了icvHoughLinesProbabilistic函数,该函数用于实现概率霍夫变换。 icvHoughLinesProbabilistic函数的实现过程可以分为以下几个步骤: 1. 初始化累加器矩阵accum和掩码矩阵mask; 2. 计算事先计算好的正弦和余弦值,并存储在trigtab向量中; 3. 开辟一段内存空间用于存储特征点坐标,即边缘像素的位置; 4. 按照霍夫变换的公式计算累加器矩阵accum和掩码矩阵mask; 5. 选取在霍夫空间内值最大的点,并计算直线的两个端点。 HoughLinesP函数是Opencv2.4.9中的一种重要函数,用于检测图像中的直线,并且可以确定直线的两个端点。它的实现过程基于概率霍夫变换,能够检测出图像中的直线,并且具有较高的检测准确率。
- 粉丝: 9
- 资源: 978
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 【岗位说明】金融风控部风险合规部职责及岗位职责细分.doc
- 低复杂度离散余弦变换近似算法用于图像和视频编码的研究
- commons-collections4-4.4.jar
- 【岗位说明】管理部部门职责描述.xls
- 【岗位说明】人事行政部部门职责.xls
- 【岗位说明】人事部门职责描述.xls
- 【岗位说明】计划运营经理岗位说明书.xlsx
- 【岗位说明】行政部部门职责及目标.xlsx
- 【岗位说明】人事专员岗位工作说明书.xls
- 【岗位说明】人力资源部目标与职责.xlsx
- 【岗位说明】计划运营中心岗位说明书.xlsx
- 【岗位说明】办公室岗位职责表.doc
- 【岗位说明】PMC科主管职责说明书.doc
- 永磁同步电机电机MARS(模型参考自适应)Matlab仿真模型 永磁同步电机的控制算法仿真模型Matlab,simulink: 永磁同步电机的MRAS无传感器矢量控制
- 【岗位说明】办公室主任岗位说明书参考.doc
- 【岗位说明】办公室职能与职责.doc