图像处理作业hough变换的边缘提取.docx

上传人:b****7 文档编号:23722429 上传时间:2023-05-20 格式:DOCX 页数:8 大小:85KB
下载 相关 举报
图像处理作业hough变换的边缘提取.docx_第1页
第1页 / 共8页
图像处理作业hough变换的边缘提取.docx_第2页
第2页 / 共8页
图像处理作业hough变换的边缘提取.docx_第3页
第3页 / 共8页
图像处理作业hough变换的边缘提取.docx_第4页
第4页 / 共8页
图像处理作业hough变换的边缘提取.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

图像处理作业hough变换的边缘提取.docx

《图像处理作业hough变换的边缘提取.docx》由会员分享,可在线阅读,更多相关《图像处理作业hough变换的边缘提取.docx(8页珍藏版)》请在冰豆网上搜索。

图像处理作业hough变换的边缘提取.docx

图像处理作业hough变换的边缘提取

图像处理期末作业

姓名:

学号:

97

院系:

信自院通信系

专业:

信号与信息处理

用Hough变换提取边界直线

Hough变换是1962年山PaulHough提出来的。

它所实现的是一种从图像空间到参数空间的映射关系。

它具有一系列的优点。

例如,山于根据局部度量来计算全面描述参数,因而对于区域边界被噪声干扰或者其他LI标遮盖而引起边界发生瞬间间断的情况,它具有很好的容错性和鲁棒性。

•原理

Hough变换是图像处理中从图像中识别儿何形状的基本方法之一。

Hough变换是一种利用表决原理的参数佔计技术。

其基本原理在于利用图像空间和Hough参数空间的点与线的对偶性,把图像空间中的检测问题转换到参数空间。

通过在参数空间里进行简单的累加统计,然后在Hough参数空间寻找累加器峰值的方法检测直线cHough变换的实质是将图像空间内具有一定关系的像元进行聚类,寻找能把这些像元用某一解析形势联系起来的参数空间累讣对应点。

在参数空间不超过二维的情况下,这种变换效果理想。

将原始图像空间的给定的曲线表达形式变为参数空间的一个点,这样就把原始图像中给定曲线的检测问题转化为寻找参数空间的峰值问题,也即是把检测整体特性转化为检测局部特性。

比如直线、椭圆、圆、弧线等。

简而言之,Hough变换思想是:

在原始图像坐标系下的一个点对应了参数坐标系中的一条直线,同样参数坐标系的一条直线对应了原始坐标系下的一个点,然后,原始坐标系下呈现直线的所有点,它们的斜率和截距是相同的,所以它们在参数坐标系下对应于同一个点。

这样在原始坐标系下的各个点的投影到参数坐标系下之后,看参数坐标系下没有聚集点,这样的聚集点就对应了原始坐标系下的直线。

如果参数空间中使用直线方程,当图像空间直线斜率为无穷大时,会使累加器尺寸和变很大,从而是计算复杂程度过大,为解决这一问题,釆用极坐标方程,变换方程如图1所示。

p=xcos&+ysinO

根据这个方程,原图像空间中的点对应新参数空间中的一条正弦曲线,即点-正弦曲线对偶。

检测直线的具体过程就是让。

取遍可能的值,然后计算。

值,再根据。

和P的值对累加数组累加,从而得到共线点的个数。

下面介绍一下关于8和。

取值范圉的确定。

设被检测的直线在笫一象限,右上角坐标为("”),则第一象限中直线的位

置情况如图1所示

图1检测位置图

曲图可见,当直线从与X轴重合处逆时针旋转时,&的值开始山0°增大,直到180°,所以&的取值范围为0°-180°。

由直线极坐标方程可知p=Jx,+于sin(&+0),其中^=si«_1(x/+y2),所以当且仅当x和y都达到最大且8+0=±90°时(根据。

来调整&的值),忧=血=硏刁,即。

的取值范围是(-//+,,*用2+席)。

由&和°的取值范围和它们的分辨率可以确定累加器的大小,从而检测直线。

利用Hough变换,不仅可以检测直线,也可以检测曲线,实际上,只要是能够写得出方程的图像,都可以用Hough变换检测,以圆周的检测为例,圆的一般方程是:

(x-a)2+(y-h)2=r2

式中有三个参数a,b和r,所以需要在参数空间建立一个三维累加数组A。

其元素可以写为让a和b依次变化而根据圆的一般方程计算r,并对

A(aJ^r)累加,可见这个过程与检测直线上的点相同,只是空间多了一维,复杂

性也随之增加。

•Hough变换的实现流程

利用Hough变换检测图像中直线的一般步骤应该首先对图像二值化,然后进行边缘检测,接着对边缘检测的结果做Hough变换,最后得到直线检测的结果。

具体流程如下:

图2Hough变换流程图

 

•实验结果

腿LoG算子提取團像边缰

均值勰器外理后二觥处理后hough变贱竝界直线

也鹼超腮后二訛处理后ho峥麴鞠边界戢

图3图像的Hough变换提取边缘直线(同一副图像不同阈值对比)

 

•结果分析

Hough变换是一种利用图像的全局特征将特定形状的边缘连接起来,形成连接平滑边缘的一种方法,它将源于图像上的点映射到用于累加的参数空间,实现对已知解析式曲线的识别。

这里先对边缘图像进行二值化处理,然后用Hough变换提取直线,最后用红色标记出来。

因为处理过程中需要使用灰度图像,但最后无法给灰度图像赋颜色,所以最初输入要求为彩色图像。

山实验结果可知,Hough可提取图像的边缘曲线。

在这里需要说明的有三点:

1,二值化图像的细节多少可以通过对二值化的阈值调节来控制,阈值越大,细节越少。

2,最后提取直线的阈值越小,可被赋红色的直线越多,但更多无关的细节也可能被提取出来,阈值越大,可被赋红色的直线越少,同时无关细节也减少。

3,通过对着两个参数的适当调节可使提取直线的效果更好。

•附录

程序代码:

clc

clear

fTmread(“);%读入彩色图像,注意不能使用灰度图像

o=f;%保留彩色原图

f=rgb2gray(f);%将彩色图像转换为灰度图像,

f=im2double(f);

figure。

subplot(231);imshow(o);title(,原图');

[m,n]二size(f);%得到图像矩阵行数m,列数n

fori=3:

m-2

forj=3:

n-2%处理领域较大,所以从图像(3,3)开始,在(m-2,n-2)结束l(i,j)=-f(i-2,j)-f(i-l,j-l)-2*f(i-l,j)-f(i-1,j+l)-f(i,j-2)-2*f(ij-1)+16*f(i,j)-2*f(i,j+1)-

f(i,j+2)・f(i+1,j-l)-2*f(i+1,j)-f(i+1,j+l)-f(i+2,j);%LoG算子

end

end

subplot(232);

imshow(l);

title('LoG算子提取图像边缘);

%均值化滤波处理

[m,n]=size(l);

fori=2:

m・1

forj=2:

n・1

y(i,j)=l(i-1,j-1)+l(i-l,j)+l(i-1,j+l)+l(i,j-1)+l(i,j)+l(i,j+1)+I(i+1,j-1)+I(i+1,j)+l(i+1

,j+l);

y(i,j)=y(i,j)/9;%LoG算子提取边缘后,对结果进行均值滤波以去除噪

声,为下一步hough变换提取直线作准备

end

end

subplot(233);imshow(y);title(均值滤波器处理后')

%二值化处理

q=im2uint8(y);

[m,n]=size(q);

fori=l:

ni

forj=l:

n

ifq(i,j)>80;%设置二值化的阈值为80

q(i,j)=255;%对图像进行二值化处理,使图像边缘更加突出清晰

else

q(ij)=o;

subplot(234);imshow(q);title(*值化处理后');

%Hough变换检测直线,使用(a,p)参数空间,ae[0,180],pe[0,2d])a=180;%角度的值为0到180度

d=round(sqrt(mA2+nA2));%图像对角线长度为p的最大值

s=zeros(a,2*d);%存储每个(a,p)个数

z=cell(a,2*d);%用元胞存储每个被检测的点的坐标

fori=l:

m

forj=l:

n%遍历图像每个点

if(q(i,j)==255)%只检测图像边缘的白点,其余点不检测

fork=l:

a

p=round(i*cos(pi*k/180)+j*sin(pi*k/180));%对每个点从1

到180度遍历一遍,取得经过该点的所有直线的卩值(取整)

if(p>0)%若p大于0,则将点存储在(d,2d)空间

s(k,d+p)=s(k,d+p)+l;%(a,p)相应的累加器单元加1z{k,d+p}=[z{k,d+p},[i,j]];%存储点坐标

else

ap=abs(p)+l;%若p小于0,则将点存储在(0,d)空间s(k,ap)二s(k,ap)+l;%(a,p)相应的累加器单元加一z{k,ap}=[z{k,ap),[i,j]'];%存储点坐标

fori=l:

a

forj=l:

d*2%检查每个累加器单元中存储数量

if(s(i,j)>35)%将提取直线的阈值设为35

lp=z{i,j);%提取对应点坐标

fork=l:

s(i,j)%对满足阈值条件的累加器单元中(a,p)对应的所有点进行操作

o(lp(l,k),lp(2,k),1)=255;%每个点R分量=255,G分量=0,

B分量=0

o(lp(l,k),lp(2,k),2)=0;

o(lp(l,k)Jp(2,k),3)=0;%结果为在原图上对满足阈值要求

的直线上的点赋红色

subplot(235)

imshow(o);title(*hough变换提取边界直线);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1