
霍夫变换详解.ppt
16页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和BA,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 spacek = -xk+y无法确定图像空间中的垂线。
转化为极坐标下的参数方程:x1cosθ=ρcos2θy1sinθ=ρsin2θx1cosθ+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边缘检测霍夫变换直线检测谢谢!。












