《霍夫变换详解》PPT课件.ppt
hough translation霍夫变换检测直线基本原理霍夫变换利用点和线之间的对偶性,将图像空间中直线上离散的 像素点 通过参数方程映射为霍夫空间中的 曲线,并将霍夫空间中多条曲线的 交点 作为直线方程的参数 映射为图像空间中的 直线。给定直线的参数方程,可以利用霍夫变换来检测图像中的直线。平面上的直线可以用y=kx+q表示,(a)image space (b)hough space图像空间中,同一直线上的点的斜率和截距相同,满足 yi=kxi+q 参数方程 q=-xk+y 直线对应于霍夫空间中的点(k,q)。(k,q)一个点的情况:图像空间中,一个点对应霍夫空间中的一条直线。(a)image space (b)hough space过同一点的直线,在霍夫空间中所对应的点在一条直线上。(x1,y1)(a)image space (b)hough space两个点的情况:霍夫空间中的交点,确定了一组参数(k,q)。将(k,q)代入直线方程 y=kx+q,可以描述图像空间中过A,B两点的直线。y=kx+q(k,q)给定具体的三个点:图像空间中共线的点,在霍夫空间对应的直线相交于一点。(a)image space (b)hough space(1,-1)y=x-1点和线的对偶性(1)图像空间中的点,对应霍夫空间中的直线。(2)图像中的直线,对应霍夫空间中的点。(3)共点的直线,在霍夫空间中对应的点在一条直线上。(4)共线的点,在霍夫空间中对应的直线交与一点。给定具体的五个点:(a)image space (b)hough space选择由尽可能多直线汇成的点,如A和B。A,B确定了两组参数(k,q),代入直线方程y=kx+q,可以描述图像空间中对应的直线。(a)image space (b)hough translation y=x-1y=1特殊情况,(a)Image spaceq=-2k+4q=-2k+3q=-2k+1(b)hough spacekqq=-xk+y无法确定图像空间中的垂线。转化为极坐标下的参数方程:x1cos=cos2y1sin=sin2x1cos+y1sin=图像空间中的点,对应了霍夫空间中的曲线。曲线的交点确定了一组参数,能够描述图像空间中的特定直线。(1)给定参数方程,可以利用霍夫变换检测图像中的任何图形。(2)霍夫空间中,曲线的交点次数越多,所代表的参数越确定,画出的图形越饱满。matlab实现BW=imread(chepai.jpg);/1.二二值化化BW=im2bw(BW);/2.canny边缘检测thresh=0.01,0.17;sigma=2;%定义高斯参数 f=edge(double(BW),canny,thresh,sigma);/3.霍夫霍夫变换 H,theta,rho=hough(f,RhoResolution,1);peak=houghpeaks(H,2);hold on/4.直线检测直线检测 lines=houghlines(f,theta,rho,peak);figure,imshow(f,),title(Hough Transform Detect Result),hold on for k=1:length(lines)xy=lines(k).point1;lines(k).point2;plot(xy(:,1),xy(:,2),LineWidth,4,Color,1 0 0);end 原图二值化canny边缘检测霍夫变换直线检测谢谢!