Hough变换目录•Hough变换简介及其原理•Hough变换检测曲线基本步骤•Hough变换检测直线•Hough变换检测圆•总结引入•什么参数以及参数空间?参数,也叫参变量,是一个变量。我们在研究当前问题的时候,关心某几个变量的变化以及它们之间的相互关系,其中有一个或一些叫自变量,另一个或另一些叫因变量。如果我们引入一个或一些另外的变量来描述自变量与因变量的变化,引入的变量本来并不是当前问题必须研究的变量,我们把这样的变量叫做参变量或参数。参数空间是由参数构成的空间。Hough变换简介•Hough变换于1962年由PaulHough提出,并在美国作为专利被发表。它所实现的是一种从图像空间到参数空间的映射关系。由于其根据局部度量来计算全面描述参数,因而对于区域边界被噪声干扰或被其他目标遮盖而引起边界发生某些间断的情况,它具有很好的容错性和鲁棒性。Hough变换原理•Hough变换算法主要应用于二值图像(即边缘图像),因此在对灰度图像进行Hough变换前需要对其进行预处理(包括图像的滤波与边缘检测)。Hough变换是一种使用表决原理的参数估计技术。其原理是利用图像空间和Hough参数空间的点-线对偶性,把图像空间中的检测问题转换到参数空间。通过在参数空间里进行简单的累加统计,然后在Hough参数空间寻找累加器峰值的方法检测直线。Hough变换的实质是将图像空间内具有一定关系的像元进行聚类,寻找能把这些像元用某一解析形式联系起来的参数空间累积对应点。Hough变换原理•在图像空间X-Y中,所有共线的点(x,y)都可以用直线方程描述为:bxay11其中a1为斜率,b1为截距(定值)。将其转换打参数空间的方程可以得到yaxb11由于a1和b1是定值,所以在图像空间的一条直线,hough变换到参数空间中就变成一个点。图像空间直线参数空间点Hough变换检测步骤对图像进行预处理图像灰度化,图像滤波,图像分割,边缘检测Hough变换1)在参数合适的最大值和最小值之间一个零散的参数空间;2)建立一个累加器,并置每一个元素为0;3)对图像空间中的每一点作Hough变换,即算出该点在参数空间上的对应曲线,并在相应的累加器加1;4)把累加器中超过所设阈值的参数空间点进行Hough逆变换,在图像空间进行显示。Hough变换检测直线•Hough变换检测直线方法1)点-线对偶2)点-正弦线对偶点-线对偶图像空间点的直线方程baxy参数空间点的直线方程yxab缺点:如果直线的斜率无限大(比如x=a形式的直线),采用点-线对偶方法是无法完成检测的。在图像空间中a,b为参数。点-正弦线对偶图像空间的直线方程xycotsin参数空间的弦函数方程sincosyx其中为参数,为图像空间坐标原点到直线的距离,为图像空间直线的法线与x轴的夹角图像空间直线参数空间弦函数检测步骤1.确定和的取值范围设图像位于直角坐标系的第一象限,长度分别为x0,y0。那么的最大值应为,所以通常(每一度为一个点,分成180段)2.建立一个累加数组(参数变量为2个,数组为二维数组)yx22])(,0[22yx],0[检测步骤3.对图像空间中的点进行hough变换,即算出该点在参数空间上的对应曲线,并在相应的累加器加1;(图片大小为614*768)累加器检测步骤4.把累加器中超过所设阈值的参数空间点进行Hough逆变换,在图像空间进行显示。(本次所设阈值为130),逆变换后的结果如下图。Hough变换检测圆直线的Hough变换是一个两参数的参数空间,推而广之,其它常见曲线也存在对应的参数空间。在坐标平面上确定一个圆需要三个参数——圆的半径、圆心的x轴坐标和y轴坐标,因此圆的Hough变换是一个以圆的半径和圆心坐标为参数的三维空间。Hough变换检测圆1.经典Hough变换检测圆方法2.一种快速Hough变换检测圆的方法经典的Hough圆检测已知圆的一般方程为:式中:ab--圆心,r—圆的半径。如果我们将式(4.2)的未知数反转,y,x是常量,而a,b,r变作未知数,那么显然上式就是一个圆锥的方程。rbyax222)()(经典的Hough圆检测参数空间方程1.参数b,a,r,参数的取值范围2.累加器是由b,a,r三个元素组成的三维数组3.进行hough变换,累加4.设阈值,进行hough逆变换rxayb222)()(]2),min(,0[],0[],0[maxmaxmaxmaxxyrxayb经典的Hough圆检测缺点:由于参数的累加器是三维数组,所以上述方法的算法复杂度太高,资源需求大,处理时间长。在大噪声和具有复杂图像背景的情况下,大量的无用的点也会参与投票,使算法性能大大降低,甚至影响到检测结果。一种快速Hough变换检测圆的方法原理:未知圆上的三个点可以确定该圆的方程,即可以得到a,b,r。那么在图像中的三个点可以确定一组参数,即确定一个圆。本方法应用此原理,在图像空间中随机取三个点,确定一组参数,然后再取三个点,再确定一组参数,后者与前者相比较,若相同,则此参数的累加器加一,若不同则将其作为一个新的参数源,放入参数表中,以此类推,直到有一个参数组的累加器达到我们设定的阈值,或者达到我们设定的循环次数上限,检测停止。一种快速Hough变换检测圆的方法算法的流程图一种快速Hough变换检测圆的方法累加器一种快速Hough变换检测圆的方法一种快速Hough变换检测圆的方法优点:1.并没有取遍图像中的全部的点,计算量少;2.累加器是一个一维的数组(参数表),相比于经典算法的三维数组简单了很多;总结Hough变换有着广泛的关注程度以及良好的应用前景。在计算机视觉和自动目标识别系统中,Hough变换是一个用于边缘线条特征提取的强有力工具。但其不足也不容忽视,检测速度太慢,无法做到实时控制;精度不够高,期望的信息检测不到反而做出错误判断,进而产生大量的冗余数据。