您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 数字图像处理—Hough变换直线检测,matlab实现
实验八Hough变换直线检测一、实验目的理解Hough变换的原理,了解其应用;掌握利用Hough变换进行直线检测的处理过程及编程方法。二、实验内容利用Hough变换检测直线通常先进行边缘检测,得到只包含边缘的二值图像。再通过Hough变换,在参数空间检测图像共线点的数量得到直线参数,从而实现直线检测。1、读入图像(图像需有直线或直线性边缘)2、进行图像边缘,得到二值图像3、实现Hough变换,检测出图像中的直线方程4、输出结果三、实验要求1、编写代码,完成各项实验内容2、总结实验中遇到问题及解决方案,书写实验报告%Hough变换clc;clear;closeallf=imread('line.bmp');%若是彩色图片转灰度化iflength(size(f))2f=rgb2gray(f);end%figure(1)subplot(121);imshow(f);%利用edge函数进行边缘检测j=edge(f,'Sobel');subplot(122);imshow(j);[row,col]=size(j);pinfang=round((row*row+col*col)^0.5);A=zeros(2*pinfang,180);form=1:rowforn=1:colifj(m,n)0forthera=1:180r=thera/180*pi;%角度转弧度rho=round(m*cos(r)+n*sin(r));%ρ=cosθ+sinθrho=rho+pinfang+1;%-l:l转换到1:2l+1A(rho,thera)=A(rho,thera)+1;endendendend[rho,thera]=find(A40);%交点超过60条线的点,ma,na为参数空间的坐标点nma=length(rho);fori=1:nmaholdonm=1:row;%rho=ma(i)-1;r=thera(i)/180*pi;n=(rho(i)-pinfang-m*cos(r))/(0.00001+sin(r));plot(n,m,'r');end
本文标题:数字图像处理—Hough变换直线检测,matlab实现
链接地址:https://www.777doc.com/doc-6158396 .html