图像锐化的方法及比较-

图像锐化的方法及比较-
图像锐化的方法及比较-

深圳大学研究生课程论文

题目图像的锐化算法比较分析成绩

专业信息与通信工程

课程名称、代码数字图像处理(142013020003)

年级 2013级姓名

学号时间 2014.07 任课教师张力

图像的锐化算法比较分析

摘要:图像平滑往往使图像中的轮廓变得模糊,为了减少这类不利影响,这就需要利用图像锐化技术,使图像的边缘变的清晰。本文分析了图像锐化方法中的梯度算子法和二阶导数算子法的各自特点,其中梯度算子法主要是Roberts 梯度

2.图像锐化的方法

2.1.梯度算子法

在图像处理中,一阶导数通过梯度来实现,因此利用一阶导数检测边缘点的方法就称为梯度算子法。梯度值正比于像素之差。对于一幅图像中突出的边缘区,其梯度值较大;在平滑区域梯度值小;对于灰度级为常数的区域,梯度为零。

2.1.1.Roberts 梯度算子法

Roberts 梯度就是采用对角方向相邻两像素之差,故也称为四点差分法。对应的水平和垂直方向的模板为:

的是当前像素的位置(i,j)为当前像素的位置,其计算公式如下:

特点:用4点进行差分,以求得梯度,方法简单。其缺点是对噪声较敏感,常用于不含噪声的图像边缘点检测。梯度算子类边缘检测方法的效果类似于高通滤波,有增强高频分量,抑制低频分量的作用。这类算子对噪声较敏感,而我们希望检测算法同时具有噪声抑制作用。所以,本实验给出的平滑梯度算子法具有噪声抑制作用。

2.1.2.Sobel 算子法(加权平均差分法)

Sobel 算子就是对当前行或列对应的值加权后,再进行平均和差分,也称为加权平均差分。水平和垂直梯度模板分别为:

Sobel 算子和Prewitt 算子一样,都在检测边缘点的同时具有抑制噪声的能力,检测出的边缘宽度至少为二像素。由于它们都是先平均后差分,平均时会丢失一些细节信息,使边缘有一定的模糊。但由于Sobel 算子的加权作用,其使边缘的模糊程度要稍低于程度要稍低于Prewitt 算子。

2.2.二阶导数算子法

)

1,(),1()1,1(),(),(+-++++-=j i f j i f j i f j i f j i G ?

对于阶跃状边缘,其二阶导数在边缘点处出现过零交叉,即边缘点两旁的二阶导数取异号,据此可以通过二阶导数来检测边缘点。

2.2.1.Laplacian 算子法

对数字图像 f (m ,n ),用差分代替二阶偏导,则Laplacian 算子为:

写成检测模板为:

Laplacian 检测模板的特点是各向同性,对孤立点及线端的检测效果好,但边缘方向信息丢失,对噪声敏感,整体检测效果不如梯度算子。

按下面要求编写程序并运行结果。

3.实验结果与分析

图3.1为利用Roberts 梯度算子法对灰度数字图像lena.bmp 进行图像锐化的效果图,从图中可以看到使用该算法锐化后效果不是很理想,边缘相对模糊。

图3.1 Roberts 算子法处理结果

图3.2为利用Sobel 梯度算子法对灰度数字图像lena.bmp 进行图像锐化的效果图,从图中可以看到使用该算法锐化后效果相对Roberts 算子法效果更差,边缘不够清晰。

)1,()1,(),1(),1(),(4),(--+---+-=j i f j i f j i f j i f j i f j i G

图3.2 Sobel算子法处理结果

图3.3为利用Laplacian算子法对灰度数字图像lena.bmp 进行图像锐化的效果图,从图中可以看到该算法较Roberts算子法和Sobel算子法效果最好,边缘较为明显。

图3.3 Laplacian算子法处理结果

4.实验总结

锐化的实质是:锐化图像g(m,n) = 原图像f(m,n) + 加重的边缘(α*微分)由实验效果对比图可以看出Sobel算子处理图像后使边缘有一定的模糊。但其边缘的模糊程度要稍低于程度要稍低于Prewitt算子。Laplacian检测模板的特点是各向同性,对孤立点及线端的检测效果好,但边缘方向信息丢失,对噪声敏感,整体检测效果不如梯度算子。

参考文献:

[1] MATLAB7.X图像处理M.何兴华,周媛媛.人民邮电出版社:北京,2006,72-73.

[2] 数字图像处理M.阮秋琦.电子工业出版社:北京,2005,12-14.

[3] MATLAB函数速查手册M.邓微.人民邮电出版社:北京,2008,23-24.

附录:源程序

Roberts 梯度算子法代码:

I=imread('lena.bmp');

[H,W]=size(I);

M=double(I);

J=M;

for i=1:H-1

for j=1:W-1

J(i,j)=abs(M(i,j)-M(i+1,j+1))+abs(M(i+1,j)-M(i,j+1));

end;

end;

subplot(1,2,1);imshow(I);title('原图');

subplot(1,2,2);imshow(uint8(J));title('Roberts处理后');

Sobel算子法代码:

I=imread('lena.bmp');

[H,W]=size(I);

M=double(I);

J=M;

for i=2:H-1

forj=2:W-1

J(i,j)=abs(M(i-1,j+1)-M(i-1,j-1)+2*M(i,j+1)-2*M(i,j-1)+M(i+1,j+1)-M(i+1,j-1))+a bs(M(i-1,j-1)-M(i+1,j-1)+2*M(i-1,j)-2*M(i+1,j)+M(i-1,j+1)-M(i+1,j+1));

end;

end;

subplot(1,2,1);imshow(I);title('原图');

subplot(1,2,2);imshow(uint8(J));title('Sobel 处理后');

Laplacian算子代码:

I=imread('lena.bmp');

[H,W]=size(I);

M=double(I);

J=M;

for i=2:H-1

for j=2:W-1

J(i,j)=4*M(i,j)-[M(i+1,j)+M(i-1,j)+M(i,j+1)+M(i,j-1)];

end;

end;

subplot(1,2,1);imshow(I);title('原图');

subplot(1,2,2);imshow(uint8(J));title('锐化处理后的图');

(注:可编辑下载,若有不当之处,请指正,谢谢!)

相关主题
相关文档
最新文档