数字图像处理大作业

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

1、下图是一用于干涉原理进行测试的干涉场图像,要求判读条纹的间距,请给

出图像处理的方案并说明每一步的作用及其对其它处理步骤可能产生的影响。

解:步骤与思路:

○1.进行模糊处理,消除噪声

○2.边缘检测,进行图像增强处理

○3.二值化图像,再进行边缘检测,能够得到很清晰的边界。

○4.采用横向标号法,根据值为1像素在标号中的相邻位置可以确定间距

I=imread('xz mjt.bmp');

I1=medfilt2(I); %对图像中值滤波

imshow(I1);

[m,n]=size(I1);

for i=1:m

for j=1:n

if(I1(i,j)<100) %阈值为100

I1(i,j)=255;

else

I1(i,j)=0; %进行二值化

end

end

end

figure;

imshow(I1);

Y1=zeros(1,25);

y2=y1;

c=y2;

i=100;

for j=1:1200

if (I1(i,j)==255&&I1(i,j+1)==0)

Y1=j+1;

end

if (I1(i,j)==0&&I1(i,j+1)==255)

Y2=j;

end

end

for i=1:25

c=Y2(i)-Y1(i)

end

c %找出每两个条纹之间的距离

2. 现有8个待编码的符号m0,……,m7,它们的概率分别为0.11,0.02,0.08,0.04,0.39,0.05,0.06,0.25,利用哈夫曼编码求出这一组符号的编码并画出哈夫曼树。

3. 请以图像分割方法为主题,结合具体处理实例,采用期刊论文格式,撰写一篇小论文。

各种算子对图像进行边缘检测效果的研究

图像分割是根据需要将图像划分为有意义的若干区域或部分的图像处理技术。通过边缘检测在Matlab 中实现方法,及用四叉数分解函数进行区域分割的方法,掌握了Matlab 区域操作函数的使用和图像分析和理解的基本方法,并学到了'roberts','sobel','prewitt','canny','log'算子对图像进行边缘检测的不同效果。

关键词:图像分割 Prewitt 算子 Sobel 算子 log 算子 canny 算子

一、前言

图像分割技术( 英文: image segmentation): 将图像分成互不重叠,具有各自特征的区域。这里的特性可以是灰度、颜色或纹理等。图像分割应满足:①分割后所得到的区域总和应覆盖整个图像;②各区域之间互不重叠;③同一区域的像元应具有某种共同特征,这些特征可以是像元值、颜色、纹理、形状等;④同一目标(类别)可以对应于一个区域,也可以对应于多个区域。图像分割方法主要有基于边界的分割技术和基于区域的分割方法。

图像分割(image segmentation ):根据需要将图像划分为有意义的若干区域或部分的图像处理技术。

图像的边缘是图像最基本的特征,它是灰度不连续的结果。通过计算一阶导数或二阶导数可以方便地检测出图像中每个像素在其邻域内的灰度变化,从而检测出边缘。图像中具有不同灰度的相邻区域之间总存在边缘。边缘检测可借助微分算子(包括梯度算子和拉普拉斯算子)在空间域通过模板卷积来实现。

二、梯度算子

1 . Prewitt 和Sobel 算子

常用的梯度算子如表4-3所示(星号代表模板中心)。梯度算子一般由两个模板组成,分别对应梯度的两个偏导数,用于计算两个相互垂直方向上的边缘响应。在计算梯度幅度时,可使用式(4-25)或式(4-26),在适当的阈值下,对得到梯度图像二值化即可检测出有意义的边缘。

Krisch 算子由8个模板组成,其它模板可以由其中一个模板绕其中心旋转得到,每个模板都对特定的边缘方向作出最大响应。当把最大响应的模板的序号输出时,就构成了边缘方向的编码。Prewitt 算子和Sobel 算子也可以像Krisch 算子那样,扩展到两个对角方向,使其在对角方向上作出最大响应。Prewitt 和Sobel 算子在两个对角方向上的模板如图1所示。

⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡*---110101011⎥⎥⎥⎦

⎤⎢⎢⎢⎣⎡--*-011101110

(a) Prewitt 算子45度和-45度方向模板

(b) Sobel 算子45度和-45度方向模板

图1 Prewitt 算子和Sobel 算子检测对角方向边缘的模板

图2(b)为用Sobel 水平模板对图2(a)进行卷积运算得到的水平梯度图,它对垂直边缘有较强的响应。图2(c)为用Sobel 垂直模板对图2(a)进行卷积运算得到的垂直梯度图,它对水平边缘有较强的响应。图5-13(d)为Sobel 算子梯度图。

图2 Sobel 算子边缘检测

2. 高斯-拉普拉斯(LOG)算子

常用的两个拉普拉斯模板见图3(a)和(b)。其中,第一个模板在水平和垂直4个方向上具有各向同性,而第二个模板在水平、垂直和对角8个方向上具有各向同性。然而,拉普拉斯算子一般不直接用于边缘检测,因为它作为一种二阶微分算子对噪声相当敏感,常产生双边缘,且不能检测边缘方向。主要利用拉普拉斯算子的过零点性质确定边缘位置,以及根据其值的正负来确定边缘像素位于边缘的暗区还是明区。

⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡*---210101012⎥⎥⎥⎦

⎤⎢⎢⎢⎣⎡--*-012101210

图3 LOG 算子剖面及其常用的5×5模板

高斯-拉普拉斯(LOG)算子把高斯平滑滤波器和拉普拉斯锐化滤波器结合起来实现边缘检测,即先通过高斯平滑抑制噪声,以减轻噪声对拉普拉斯算子的影响,再进行拉普拉斯运算,通过检测其过零点来确定边缘位置。因此,高斯-拉普拉斯算子是一种性能较好的边缘检测器。二维高斯平滑函数表示如下:

其中,σ是高斯分布的均方差,图像被模糊的程度与其成正比。令r 2=x 2+y 2,上式对r 求二阶导数来计算其拉普拉斯值,则有

3. Canny 边缘检测

Canny 边缘检测算子是一个非常普遍和有效的算子。Canny 算子首先对灰度图像用均方差为σ的高斯滤波器进行平滑,然后对平滑后图像的每个像素计算梯度幅值和梯度方向。梯度方向用于细化边缘,如果当前像素的梯度幅值不高于梯度方向上两个邻点的梯度幅值,则抑制该像素响应,从而使得边缘细化,这种方法称之为非最大抑制(Nonmaximum Suppression)。该方法也可以结合其它边缘检测算子来细化边缘。

三、实验内容

1.边缘检测

(a)使用edge 函数对图像‘trees.tif ’进行边缘检测。

I=imread('trees.tif');

⎪⎪⎭

⎫ ⎝⎛+--=2222exp ),(σy x y x h ⎪⎪⎭⎫ ⎝⎛-⎪⎪⎭⎫ ⎝⎛--=∇2242222exp )(σσσr r r h

相关文档
最新文档