您好、欢迎来到现金彩票网!
当前位置:刘伯温论坛 > 图像几何学 >

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

发布时间:2019-08-12 04:03 来源:未知 编辑:admin

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

  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)第一个参数,InputArray 类型的 image,输入图像。8 位单通道二进制图像,可以载入任意图像通过函数修改成此格式。

  (2)第二个参数,OutputArray 类型的 lines,输出矢量。存储的是函数运算后检测到的直线的输出矢量,每条直线由(ρ , θ)表示,ρ 表示离坐标原点(即图像的左上角)的距离,θ 是弧度线度表示垂直线度表示水平线)第三个参数,double 类型的 rho,以像素为单位的距离精度。另一种表述是直线搜索时的进步尺寸的单位半径。

  (4)第四个参数,double 类型的 theta,以弧度为单位的角度精度。另一种表述是直线搜索时的进步尺寸的单位角度。

  (2)第二个参数,OutputArray 类型的 lines,输出矢量。存储的是函数运算后检测到的直线的输出矢量,每条直线, y1)和(x2, y2)分别是检测到直线线)第三个参数,double 类型的 rho,以像素为单位的距离精度。另一种表述是直线搜索时的进步尺寸的单位半径。

  (4)第四个参数,double 类型的 theta,以弧度为单位的角度精度。另一种表述是直线搜索时的进步尺寸的单位角度。

  (5)第五个参数,int 类型的 threshold,累加平面的阈值参数,即识别某部分为图中的一条直线时它在累加平面中必须达到的值。大于阈值threshold的直线才可以被检测通过并返回到结果中。

  霍夫圆变换的基本原理和霍夫线变换类似,只是点对应的二维极径极角空间被三维的圆心点x、 y及半径r空间取代。对直线来说,一条直线能由参数极径极角(r, θ),而对圆来说,我们需要三个参数来表示一个圆,现在原图像的边缘图像的任意点对应的经过这个点的所有可能圆是在三维空间由下面这三个参数来表示了,对应一条三维空间的曲线)表示圆心的位置,r表示半径 。

  与二维的霍夫线变换同样的道理,对于多个边缘点越多这些点对应的三维空间曲线相交于一点那么他们经过共同圆的点就越多,类似的我们也就可以用同样的阈值的方法来判断一个圆是否被检测到,这就是标准霍夫圆变换的原理,但也正是在三维空间计算梁大大增加的原因,标准霍夫圆变化很难被应用到实际中。

  (1)第一个参数,InputArray 类型的 image,输入图像。8 位单通道图像。

  (4)第四个参数,double 类型的 dp,用来检测圆心的累加器图像的分辨率与输入图像之比的倒数,且此参数允许创建一个比输入图像分辨率低的累加器。例如,如果dp=1,累加器和输入图像具有相同的分辨率,如果dp=2累加器便有输入图像一半那么大的宽度和高度。

  (5)第五个参数,double 类型的 minDisy,霍夫检测到的圆的圆心之间的最小距离,即让算法能明显区分的两个不同圆之间的最小距离。这个参数如果太小的话,除了正确的那个圆之外,可能错误地检测到了更多相邻的圆。反之这个参数设置太大,某些圆就不能被检测出来了。

  (6)第六个参数,double 类型的 param1, 指定检测方法(method)的第一个参数,当前可用方法是HOUGH_GRADIENT,它表示传递给Canny边缘检测算子的高阈值(低阈值是高阈值的一半),默认值为 100。

  利用霍夫变换实现了在一小段的足球视频中对足球的识别和跟踪,并将追踪到的足球画面截屏按帧保存。里面包含了可以实现的完整的代码和视频文件,运行环境是VS2010和OpenCV2.4.9(VS2012也能运下载

  (python版,含示例代码)11-14OpenCV 3计算机视觉 Python语言实现(第二版)(含示例代码)下载

  07-24大概思路是先进行加权平均灰度,然后中通去噪,canny算法边缘检测,最后在进行霍夫变换检测直线,目前已知,到最后一步imshow霍夫变换的图片时出现问题,去掉imshow(【霍夫变换】,huofu论坛

  04-13阅读数 1098转自:霍夫变换(HoughTransform)是图像处理中的一种特征提取技术,它通过一...

  霍夫变换直线检测前提条件:边缘检测已经完成(单通道8位灰度图像,经过二值化变为黑白图像)平面空间转到极坐标空间通过上式子可以把像素点转化成极坐标,如下图所示。上面的曲线相交与一点,说明了什么信息呢?说...博文

http://airgomusic.com/tuxiangjihexue/707.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有