基于MATLAB的数字图像锐化.docx
《基于MATLAB的数字图像锐化.docx》由会员分享,可在线阅读,更多相关《基于MATLAB的数字图像锐化.docx(24页珍藏版)》请在冰豆网上搜索。
基于MATLAB的数字图像锐化
专业综合设计任务书
一.设计题目:
基于Matlab的图像锐化设计
二.适用专业
电子信息工程专业
三.设计目的
1.熟悉Matlab软件的使用;
2.掌握图像处理的基本步骤;
3.掌握图像锐化基本原理。
四.设计任务及要求
使用Matlab软件对传统空域锐化和频域锐化算法进行研究和仿真。
通过仿真结果的对比和分析。
1.应用Matlab实现传统的图像锐化算法;
2.通过编程对一张实际图片进行试验对比;
3.撰写专业综合设计报告。
五.设计内容
1.应用Matlab实现Roberts、Prewitt、Sobel和Laplacian算法中的任意两种。
2.利用Matlab对高通滤波法中的理想高通滤波法、巴特沃斯滤波法、梯度高通滤波、指数高通滤波方法中任意两种进行实验测试;
3.对一张实际图片不同方法进行试验对比;
4.撰写专业综合设计报告。
六.设计时间及进度安排
设计时间共三周(2015.09.07~2015.09.27),具体安排如下表:
周安排
设计内容
设计时间
第一周
依任务书要求,查阅相关资料了解图像锐化的原理
2015.09.07~2015.09.13
第二周
应用Matlab实现传统的图像锐化算法。
2015.09.14~2015.09.20
第三周
分析不同算子的优缺点,总结撰写设计报告,准备答辩。
2015.09.21~2015.09.27
七、指导教师评语及学生成绩
指导教师评语:
成绩
指导教师(签字):
第1章概述
1.1专业综合设计的目的
专业综合设计是学生理论联系实际的重要实践教学环节,是对学生进行的一次综合性专业设计训练。
通过专业综合设计使学生获得以下几方面能力,为毕业设计(论文)奠定基础。
1.进一步巩固和加深学生所学一门或几门相关专业课(或专业基础课)理论知识,培养学生设计、计算、绘图、计算机应用、文献查阅、报告撰写等基本技能;
2.培养学生实践动手能力及独立分析和解决工程实际问题的能力;
3.培养学生的团队协作精神、创新意识、严肃认真的治学态度和严谨求实的工作作风。
1.2图像锐化的研究背景
随着计算机技术的迅速发展,数字图像处理技术逐渐成熟,如图像平滑,图像锐化等等,本文将主要从图像锐化的各种方法及其实践应用进行阐述。
由于人们常常无法事先确定轮廓的取向,因而在选择轮廓增强的微分算子时,必须选择那些不具备空间方向性和周旋不变的线性微分算子使图像的边缘或线条变得清晰。
实现图像的锐化。
因此。
从图像增强的目的看,它是与图像平滑相反的一类处理。
目前,图像锐化是数字图像处理的最基本的方法之一,它是为了突出图像总的细节或者增强被模糊地细节,这种模糊不是由于错误操作,就是特殊获取方法的固有影响。
图像锐化处理的方法多种多样,其也包括多种应用,从电子印象和医学成像到工业检测和军事系统的的制导,等等。
1.3图象锐化的目的
图像模糊的主要原因是图像中高频成分低于低频成分,它对图像质量的影响体现在两个不同均匀灰度区域的边界部分。
因此图像锐化是一种补偿轮廓,突出边缘信息以使图像更为清晰的处理方法。
锐化的目标实质上是要增强原始图像的高频部分。
图象锐化突出图像中的细节或者增强被模糊了的细节,主要用于增强图像边缘及灰度改变部分。
需要注意的是,能够进行锐化处理的图像必须具有较高的信噪比,否则锐化之后,信噪比会进一步降低。
因此,在对图像处理之前,一般要先去除或者减轻干扰噪声。
第2章图像锐化基本原理
2.1图像锐化
在图像增强过程中,通常利用各类图像平滑算法消除噪声,图像的常见噪声主要有加性噪声、乘性噪声和量化噪声等。
一般来说,图像的能量主要集中在其低频部分,噪声所在的频段主要在高频段,同时图像边缘信息也主要集中在其高频部分。
这将导致原始图像在平滑处理之后,图像边缘和图像轮廓模糊的情况出现。
为了减少这类不利效果的影响,就需要利用图像锐化技术,使图像的边缘变得清晰。
图像锐化处理的目的是为了使图像的边缘、轮廓线以及图像的细节变得清晰,经过平滑的图像变得模糊的根本原因是因为图像受到了平均或积分运算,因此可以对其进行逆运算(如微分运算)就可以使图像变得清晰。
从频率域来考虑,图像模糊的实质是因为其高频分量被衰减,因此可以用高通滤波器来使图像清晰。
但要注意能够进行锐化处理的图像必须有较高的性噪比,否则锐化后图像性噪比反而更低,从而使得噪声增加的比信号还要多,因此一般是先去除或减轻噪声后再进行锐化处理。
2.1.1图像锐化基本概况
图像锐化是图像增强的一个重要手段,图像锐化主要是用于增强图像中的轮廓边缘、细节及灰度跳变部分,形成完整的物体边界,达到将物体从图像中分离出来或将表示同一物体表面的区域检测出来的目的。
图像的细节、边缘和轮廓一般位于灰度突变的地方,即图像的高频部分,图像锐化的实质是增强原图像的高频分量。
2.1.2图像锐化算法
图像锐化算法包括空域锐化和频域锐化。
空域锐化的传统算法有Roberts算法、Prewitt算法、Sobel算法、Laplacian算法等。
频域锐化包括理想滤波、巴特沃斯滤波、指数滤波、梯形滤波等。
利用MATLAB软件对这些锐化算法进行研究和仿真。
在计算图像的梯度时,除了用梯度算子和Sobel算子,也可用Roberts算子。
Roberts算子又可称为梯度交叉算子,Robert算子通常会在图像边缘附近的区域内产生较宽的响应,用此算子可以很准确的定位边缘,但是它对噪声的敏感程度也相对较强。
所以如果要用此算法进行锐化处理时,尤其要考虑到噪声的影响。
Roberts算子对应的模板为
(2-1)
式中,
为x方向Roberts算子,
为y方向Roberts算子。
在用Roberts算法计算梯度幅值时可用近似计算方法为
(2-2)
用卷积模板表示为
(2-3)
用上面的式子计算出梯度幅值后,就可以设定一合适的门限T,当某点梯度值大于或等于某一门限T时,规定该点的灰度值为一个特定L。
锐化后图像
或
算子对图像边缘的检测是通过计算两个相邻的、对角线方向的像素差来实现,在水平边缘方向和垂直边缘方向均优于斜向边缘,定位精度高但是对噪声很敏感。
2.2.1Prewitt锐化算法
Prewitt算子模板具体如下式所示。
(2-4)
式中,
为x方向Prewitt算子,
为y方向Prewitt算子。
Prewitt算子是利用像素点上、下、左、右邻点灰度差,在边缘处达到极值检测边缘,对噪声有平滑作用。
它可以减少噪声的影响,但定位精度却不高。
2.2.2Sobel锐化算法
Sobel锐化算法也是图像微分锐化算法之一。
一幅图像进行Sobel算子锐化后,图像的灰度变化的幅度会有所增加。
Sobel算子表达式为
(2-5)
式中,
为x方向Sobel算子,
为y方向Sobel算子。
2.2.3Laplacian算法
Laplacian算子是线性二阶微分算子。
拉普拉斯算子是一种在图像锐化处理中很重要的算法。
一个连续的二元函数
,其拉普拉斯运算即
(2-6)
对离散的数字图像而言,二阶偏导数用二阶差分近似,由此可以推导出Laplacian算子表达式为
(2-7)
其对应的模板为
(2-8)
2.3频域锐化算法
2.3.1理想高通滤波器
理想高通滤波器(IHPF)的传递函数定义如下:
(2-9)
式中,
是一个非负整数,即理想高通滤波器的截止频率,
是从点
到频域原点的距离,即
(2-10)
图2-1给出了IHPF特性曲线。
与低通滤波器相对,IHPF将以
为半径的圆周内的所有频率置为0,而毫不衰减地通过圆周外的任何频率。
IHPF也是物理不可实现的,只能通过计算机实现。
图2-1理想高通滤波器图2-2巴特沃思滤波器
2.3.2巴特沃斯高通滤波器
阶巴特沃斯高通滤波器(BHPF)的传递函数定义如下:
(2-11)
式中,
为滤波器的截止频率,
为滤波器的阶次。
巴特沃斯高通滤波器性能曲线如图2-2所示。
2.3.3指数高通滤波器
指数高通滤波器的传递函数为
(2-12)
增长率由
来控制。
其特性曲线如图2-3所示。
2.3.4梯形高通滤波器
梯形高通滤波器的定义如下:
(2-13)
梯形高通滤波性能曲线如图2-4所示。
图2-3指数高通滤波器图2-4梯形高通滤波器
第3章基于MATLAB的数字图像锐化设计
利用MATLAB软件我们可以实现图像的锐化,通过程序的编写,运行达到锐化目的。
下面我们通过sobel算法,laplacian算法,理想高通滤波算法及巴特沃斯算法的锐化设计加以说明。
3.1sobel算法锐化
3.1.1程序设计流程
图3-1sobel算子流程图
1.通过imread读取原始图像并做灰度处理,显示原始灰度图像。
2..利用sobel算子得出x,y两方向锐化后的图像。
3.最后通过imadd指令将锐化图像加到原始图像中并显示出来。
3.1.2运行结果与分析
运行程序我们得出原始(灰度)图像如图3-2所示,锐化图像如图3-3所示,锐化相加图像及结果图像如图3-4所示。
图3-2原始图像
图3-3锐化图像
图3-4锐化相加图像
通过比较我们可以发现sobel算子检测的边缘点较宽,能进一步抑制噪声的影响对于像素位置的影响作了加权,因此效果更好,同时对噪声具有平滑作用,提供了较为精确的边缘方向信息。
当然我们最终得出的图像边缘得到了加强但是美中不足的是,sobel算子并没有将图像的主题与背景严格的区分开来,由于sobel算子美誉严格的模拟人视觉生理特征,所以提取的图像轮廓并不能令人满意。
sobel算子具有平滑作用,能滤除一些噪声,去掉部分伪边缘,但同时也可能平滑了真正的边缘,边缘定位精度不高。
3.2Laplacian算法锐化
3.2.1程序设计流程
图3-5laplacian算子流程图
1.通过imread指令读取原始图像并做灰度处理,显示原始灰度图像。
2.然后经过拉普拉斯imfilter指令实现拉普拉斯锐化处理,显示锐化图像。
3.最后通过imadd指令将锐化图像加到原始图像上,并显示出锐化相加图像。
3.2.2运行结果与分析
laplacian算子是与方向无关的各向同性边缘检测算子,若只关心边缘点的位置而不顾其周围的实际灰度差时,一般选择该算子。
各同向性,线性和位移是不变的,对线性和孤立点检测效果好,但边缘方向信息丢失,长产生双像素的边缘,对噪声有双倍的加强效果。
如下图,图3-6,3-7,3-8所示。
图3-6原始图像
图3-7锐化图像
图3-8锐化相加图像
经过laplacian算法处理后,我们可以发现图像模糊近乎成虚像的形式,边缘信息大量丢失。
但是增强了图像灰度突变处的对比度,使得图像小的细节部分得到增强,并保留了图像的背景色调。
3.3理想高通滤波器
3.3.1程序设计流程
1.读取原始图像通过灰度处理并显示出来,利用s=fftshift()等指令实现傅里叶变换得出频谱图像。
2.然后求出图像傅里叶变换取对数所得频谱。
3.最后通过MATLAB实现理想高通滤波过程。
图3-9理想高通滤波器算法流程图
3.3.2运行结果与分析
理想的高通滤波器把半径为
的园内的所有频率完全率减掉,却使圆外的所有的频率无损的通过。
图像整体变得模糊,边缘和细节比较清晰,如下图3-10所示。
图3-10原始及处理图像
图3-11锐化相加图像
较小时振铃现象比较明显,随着
的增大,振铃现象得以消弱。
通过理想高通滤波器实现对图像的锐化,突出了图像的边缘信息,加强了其图像的轮廓特征,一边于人眼和机器的识别。
3.4巴特沃斯高通滤波器
3.4.1程序设计流程
图3-12巴特沃斯高通滤波器算法流程
1.读入原始图像做灰度处理,然后通过数据转换,傅里叶变换等利用二阶巴特沃斯高通滤波器进行锐化,并显示出锐化后的图像。
2.最后将锐化图像加到原始图像上即可。
3.4.2运行结果与分析
巴特沃斯高通滤波器的传递函数由于变化比较平滑,在阶数较低时的时候所得到的高频图像中只有轻微的振铃现象,图像较为清晰,如图3-14所示。
随着
的增大,振铃现象也变得不明显。
图3-13原始及处理图像
图3-14锐化相加图像
第四章结论
在这次软件数字图像锐化设计中,我学会了很多,也懂得了很多。
以前在上图像处理课时,只知道图象锐化就是数学公式来计算的,通过这次的实践才明白那些微分子算法后面隐藏着好多知识,这次课程设计不仅锻炼了我动手的能力,并且加深了我对书本上的知识的深入了解。
在这三个周的软件设计实习里,我对图像锐化有了新的了解。
各锐化算法公式都明白,但是应用起来需要逐个研究,需要查阅大量的资料,最后才能编写出程序。
对于程序的修改同样需要细心,耐心,不断地测试,参考,比较。
最后才能顺利的实现我们要求的数字图像锐化。
在这段软件实习的时间里,我对整个软件实习也有了新的理解。
在以前的理解中,软件设计无非就是一个人或者几个人或一个团队集中在一起编写程序的工作,以实现开发或完成所需要的软件过程。
现在我明白了,软件工程的作用,就是要学会使用软件和管理软件。
当然,在这次设计中离不开老师的细心的指点和同学们一起研究的热情,感受到了团结协作的重要与快乐。
这次软件课程设计也使得我对数字图像产生了浓厚的兴趣,对于我们日常生活中用的一些相机,特殊图片处理等的原理也有了一定的了解,这次设计很有意义也很成功。
参考文献
[1]黄锋华,刘琪芳.基于Matlab数字图像边缘检测算子研究[J].机械工程与自动化.2011,(04):
13-14.
[2]王艳玲.一种改进的Sobel边缘检测和细化算法[J].桂林师范高等专科学校学报.2011,(02):
5-8.
[3]樊娜,李晋惠.图像边缘检测的Prewitt算子的改进算法[J].西安工业学院学报.2005,03(01):
9-15.
[4]卢允伟,陈友荣.基于拉普拉斯算法的图像锐化算法研究和实现[J].电脑知识与技术.2009,(06):
12-13.
[5]刘永勤,刘月月.基于Verilog的数字图像锐化研究和实现[J].科学技术与工程.2009,(10):
18-20.
[6]张永梅,张静.一种图像锐化改进算法[J].计算机光盘软件与应用.2014,(02):
10-13.
[7]朱虹.数字图像处理基础[M].北京:
科学出版社,2005:
7-10.
附录
附录一sobel算子锐化程序
%读取并显示原始(灰度)图像
I=imread('E:
666666.jpg');
I=rgb2gray(I);
imshow(I);
title('原始(灰度)图像');
%sobel锐化
h=fspecial('sobel');
%BW1=edge(I,'sobel',horizontal);
BW2=imfilter(I,h);imshow(I);
%figure,imshow(BW1);
figure,imshow(BW2);
title('锐化图像');
%锐化后的图像
K=imadd(I,BW2);
imshow(BW2,[]);
title('锐化相加图像');
附录二Laplacian算法锐化程序
%读取并显示原始(灰度)图像
I=imread('E:
666666.jpg');
I=rgb2gray(I);
imshow(I);
title('原始(灰度)图像');
%拉普拉斯锐化
H=[0 -1 0;-1 4 -1;0 -1 0];
J=imfilter(I,H);
figure, imshow(J);
title('锐化图像');
%锐化后的图像
K=imadd(I,J);
imshow(K,[]);
title('锐化相加图像');
附录三理想高通滤波器锐化程序
%理想高通滤波处理
I=imread('E:
666666.jpg');
I=rgb2gray(I);
subplot(221),imshow(I);
title('原始(灰度)图像');
s=fftshift(fft2(I));
subplot(223),
imshow(abs(s),[]);
title('图像傅里叶变换所得频谱');
subplot(224),
imshow(log(abs(s)),[]);
title('图像傅里叶变换取对数所得频谱');
[a,b]=size(s);
a0=round(a/2);
b0=round(b/2);
d=10;
p=0.2;q=0.5;
fori=1:
a
forj=1:
b
distance=sqrt((i-a0)^2+(j-b0)^2);
ifdistance<=dh=0;
elseh=1;
end;
s(i,j)=(p+q*h)*s(i,j);
end;
end;
s=uint8(real(ifft2(ifftshift(s))));
subplot(222),
imshow(s);title('高通滤波所得图像');
W=I+s
Subplot(133);imshow(W);
title(‘锐化相加图像’)
附录四巴特沃斯高通滤波器锐化程序
%巴特沃斯高通滤波处理
f1=imread('E:
666666.jpg');
F=double(f1);%数据类型转换,MATLAB不支持图像的无符号整型的计算
G=fft2(F);%傅立叶变换
G=fftshift(G);%转换数据矩阵
[M,N]=size(G);
nn=2;%二阶巴特沃斯(Butterworth)高通滤波器
d0=5;
m=fix(M/2);
n=fix(N/2);
fori=1:
M
forj=1:
N
d=sqrt((i-m)^2+(j-n)^2);
if(d==0)
h=0;
else
h=1/(1+0.414*(d0/d)^(2*nn));%计算传递函数
end;
result(i,j)=h*G(i,j);
end;
end;
result=ifftshift(result);
J2=ifft2(result);
J3=uint8(real(J2));
subplot(221);imshow(f1);
title('灰色图像');
subplot(222);imshow(J3);%滤波后图像显示
title('滤波后的图像');
W=f1+J3;
Subplot(133);imshow(W);
title(‘锐化相加图像’)