数字图像处理Hough变换直线检测matlab实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数字图像处理—Hough 变换直线检测,matlab 实现实验八Hough 变换直线检测

一、实验目的

理解Hough变换的原理,了解其应用;掌握利用Hough变换进行直线检测的处理过程

及编程方法。

二、实验内容

利用Hough变换检测直线通常先进行边缘检测,得到只包含边缘的二值图像。再通过

Hough变换,在参数空间检测图像共线点的数量得到直线参数,从而实现直线检测。

1、读入图像(图像需有直线或直线性边缘) 2 、进行图像边缘,得到二值图像

3、实现Hough变换,检测出图像中的直线方程

4、输出结果

三、实验要求

1、编写代码,完成各项实验内容

2、总结实验中遇到问题及解决方案,书写实验报告

%Hougl变换

clc;clear;close all f=imread('l in e.bmp'); % 若是彩色图片转灰度化if len gth(size (f) )>2

f=rgb2gray(f);

end

%

figure(1)

subplot(121);imshow(f); % 利用edge函数进行边缘检测

j=edge(f,'Sobel');

subplot(122);imshow(j); [row,col]=size(j);

pi nfan g=ro un d((row*row+col*colF0.5);

A=zeros(2*pinfang,180);

for m=1:row

for n=1:col

if j(m,n)>0

for thera=1:180

r=thera/180*pi; % 角度转弧度

rho=round(m*cos(r)+n*sin(r));% p =cos 0 +sin 0

rho=rho+pinfang+1;%-l:l 转换到1:2l+1

A(rho,thera)=A(rho,thera)+1;

end

end

end

end

[rho,the⑻二仙d(A>40);% 交点超过60条线的点,ma,na为参数空间的坐标点nma=length(rho);

for i=1:nma

hold on

m=1:row;

%rho=ma(i)-1;

r=thera(i)/180*pi;

n=(rho(i)-pinfang-m*cos(r))/(0.00001+sin(r));

end

相关文档
最新文档