OpenCV学习之路(十五) 霍夫变换

本文详细介绍了OpenCV中的霍夫变换,包括霍夫线变换和霍夫圆变换的基本概念、实现原理以及函数参数解释,并提供了简单的示例代码。
摘要由CSDN通过智能技术生成

 

目录

霍夫线变换

霍夫圆变换

简单示例代码:


 

霍夫线变换

霍夫圆变换

 

霍夫变换是图像处理中从图像中识别几何形状的基本方法之一,应用很广泛,也有很多改进算法。主要用来从图像中分离出具有某种相同特征的几何形状。最基本的霍夫变换是从黑白图像中检测直线。在图像处理中可以通过霍夫变换可以快速的检测出直线或圆。

霍夫线变换

OpenCV 提供三种不同的霍夫线变换分别是:标准霍夫变换(Standard Hough Transform, SHT)、多尺度霍夫变换(Multi-Scale Hough Transform, MSHT)和累计概率霍夫变换(Progressive Probabilistic Hough Transform, PPHT)。其中多尺度霍夫变换(MSHT)为经典霍夫变换(SHT)在多尺度下的一个变种。而累计概率霍夫变换(PPHT)算法是标准霍夫变换(SHT)算法的一个改进,它在一定的范围内进行霍夫变换,计算单独线段的方向以及范围,从而减少计算量,缩短计算时间。之所以称 PPHT 为概率的事因为并不将累加器平面内的所有可能的点累加,而只是累加其中的一部分,想法是如果峰值足够高,只用一小部分时间去寻找它就够了。

在 OpenCV 中可以用 HoughLines 函数来调用标准霍夫变换(SHT)和多尺度霍夫变换(MSHT).而 HoughLinesP 函数用于调用累计概率霍夫变换 PPHT。累计概率霍夫变换执行效率很高。 
霍夫线变换是用来寻找直线的方法,在使用霍夫线变换之前首先要对图像进行边缘检测的处理,也即霍夫线变换的直接输入只能是边缘二值图像

霍夫线变换实现原理如下: 
(1). 众所周知,一条直线在图像二维空间可由两个变量表示。如:

  • a.在笛卡尔坐标系:可由参数(m, b)斜率和截距表示。
  • b.在极坐标系:可由参数(r, θ)极径和极角表示 
    这里写图片描述 
    对于霍夫变换,我们将用极坐标系来表示直线。因此直线的表达式可为: 
    这里写图片描述 
    化简的:r=xcosθ+ysinθ 
    (2). 一般来说对于点这里写图片描述,我们可以将通过这个点的一簇直线同一定义为:

这里写图片描述 
这就意味着对于每一对这里写图片描述代表一条通过点这里写图片描述的直线。 
(3). 如果对于一个给定点这里写图片描述,我们在极坐标对极径极角平面绘出所有通过它的直线,将得到一条正弦曲线。例如对于给定点这里写图片描述这里写图片描述我们可以绘出下图: 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值