整理图像增强、图像滤波、边缘检测的MATLAB实现_第1页
整理图像增强、图像滤波、边缘检测的MATLAB实现_第2页
整理图像增强、图像滤波、边缘检测的MATLAB实现_第3页
整理图像增强、图像滤波、边缘检测的MATLAB实现_第4页
整理图像增强、图像滤波、边缘检测的MATLAB实现_第5页
免费预览已结束,剩余6页可下载查看

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、图像增强、图像滤波及图像边缘检测MATLAB实现程序图像增强图像增强是指按特定的需要突出一幅图像中的某些信息,同时,消弱或去除某些不需要的信息的处理方法。其主要目的是使处理后的图像对某些特定的应用比原 来的图像更加有效。图像增强技术主要包含直方图修改处理、图像平滑化处理、图像尖锐化处理、和彩色处理技术 等。图像增强有 图像对比度增强、亮度增强, 轮廓增强等等。下面利用直方图统计算法对灰度图像 进行增强:程序代码:I=imread(cameraman.tif);subplot(121)imshow(I);title(原始图像);subplot(122)imhist(I,64)%绘制图像的直方图,

2、n=64为灰度图像灰度级,若I为灰度图像,默认n=256;若I为二值图像,默认n=20title(图像的直方图);(请自己运行查看)n=256 时:(请自己运行查看)卜面利用直方图均衡化增强图像的对比度:I=imread(cameraman.tif);J=histeq(I);%将灰度图像转换成具有64 (默认)个离散灰度级的灰度图像imshow(I)title(原始图像)figure,imshow(J)title(直方图均衡化后的图像)figure(1)subplot(121);imhist(I,64)title(原始图像的直方图)subplot(122);imhist(J,64)title(

3、均衡化的直方图)(请自己运行查看)分析:从上图中可以看出,用直方图均衡化后,图像的直方图的灰度间隔被拉 大了,均衡化的图像的一些细节显示了出来,这有利于图像的分析和识别。直 方图均衡化就是通过变换函数 histeq将原图的直方图调整为具有平坦”倾向的直方图,然后用均衡直方图校正图像。下面利用直方图规定化对图像进行增强:I=imread(cameraman.tif);figure,imshow(I);title(原始图像);hgram=50:2:250;% 规定化函数J=histeq(I,hgram);figure,imshow(J);t田e(直方图规定化后的图像);figure,imhist(

4、I,64);title(原始图像的直方图,);figure,imhist(J,64);title(直方图规定化后的直方图,);运行结果:变换灰度间隔后的图像和直方图:hgram=50:1:250;hgram=50:5:250;3图像滤波的Matlab实现3.1 conv2 函数功能:计算二维卷积格式:C=conv2(A,B)C=conv2(Hcol,Hrow,A)C=conv2(.,shape)说明:对于 C=conv2(A,B) , conv2的算矩阵 A和B的卷积,若Ma,Na=size(A), Mb,Nb=size(B),贝U size(C)=Ma+Mb-1,Na+Nb-1;C=conv

5、2(Hcol,Hrow,A)中,矩阵 A 分别与 Hcol向量在列方向和 Hrow 向量 在行方向上进行卷积;C=conv2(.,shape)用来指定conv2 返回二维卷积结果部分,参数shape可取值如下: full为缺省值,返回二维卷积的全部结果; same返回二维卷积结果中与 A大小相同的中间部分;valid返回在卷积过程中,未使用边缘补0部分进行计算的卷积结果部分,当 size(A)size(B)时,size(C)=Ma-Mb+1,Na-Nb+1。1.2 conv 函数功能:计算多维卷积格式:与conv2函数相同1.3 filter2 函数功能:计算二维线型数字滤波,它与函数 fsp

6、ecial连用格式:Y=filter2(B,X)Y=filter2(B,X,shape)说明:对于Y=filter2(B,X) , filter2使用矩阵B中的二维FIR滤波器对数据X进行滤波,结果 Y是通过二维互相关计算出来的,其大小与 X 一样;对于 Y=filter2(B,X,shape) , filter2返回的 Y是通过二维互相 关计算出来的,具大小由参数shape确定,其取值如下 full返回二维相关白全部结果,size(Y)size(X); same返回二维互相关结果的中间部分,Y与X大小相同0部分进行计算的结果 valid返回在二维互相关过程中,未使用边缘补部分,有 size(

7、Y)3 邻域窗 口法figure,imshow(K1)title(3 3窗的邻域平土滤波图像)K2=filter2(fspecial(average,7),J)/255; %应用 7 M 邻域窗口法figure,imshow(K2)title(7 7窗的邻域平土滤波图像)K3=filter2(fspecial(average,9),J)/255; %应用 9 9 邻域窗 口法figure,imshow(K3)title(9 9窗的邻域平土滤波图像)K4=filter2(fspecial(average,11),J)/255; % 应用 11 M1 邻域窗口法figure,imshow(K4)t

8、itle(11 11窗的邻域平均滤波图像)4.3.2 中值滤波中值滤波可以保留目标边缘,这是中值滤波器相对于均值滤波器的最大优 势。中值滤波具有去噪的性能,可以消除孤立的噪声点,可以用来减弱随机干 扰和脉冲干扰,但是边缘不模糊。程序代码:I=imread(cameraman.tif);imshow(I)title(原始图像)J=imnoise(I,salt & pepper,0.02); %添加盐椒噪声,噪声密度为 0.02figure,imshow(J)title(添加盐椒噪声后的图像)K1=medfilt2(J);%在默认的3刈的邻域窗中进行中值滤波figure,imshow(K1)tit

9、le(默认的3刈的邻域窗的中值滤波图像)K2=medfilt2(J,5 5);%在5X5的邻域窗中进行中值滤波figure,imshow(K2)title(5 5除邻域窗的中值滤波图像)从上可见,中值滤波的效果要比邻域平均的低通滤波效果好,中值滤波以后的 图像的轮廓比较清晰,而且使用较小的模板得到的视觉效果反而好一些。4.3.3 锐化滤波图像锐化处理的目的是使模糊图像变得清晰,锐化滤波器减弱或消除了傅立叶空间的低频分量,保留高频分量,从而加强了图像的轮廓,使图像看起来比 较清晰。下面应用Laplacian算子对图像进行锐化处理:Laplacian算子是线性二次微分算子,其格式为:h = fsp

10、ecial(laplacian,alpha),返回一个33的滤波器来近似二维 Laplacian算子的形状,参数alpha 决定了 Laplacian算子的形状,alpha的取值范围为0.01.0,默认白4Kt为0.2。 程序代码:%应用Laplacian算子对图像进行锐化I=imread(cameraman.tif);imshow(I)title(原始图像)H=fspecial(laplacian);%应用laplacian算子滤波锐化图像 laplacianH=filter2(H,I);figure,imshow(laplacianH)title(laplacian算子锐化后的图像)分析:

11、由图可以看出,应用了 Laplacian算子对图像锐化以后,将图像区域的边缘轮廓勾划了出来,因此Laplacian算子对于边缘检测也具有很好的功效。5 .边缘检测下面利用sobel算子对图像进行边缘检测:使用edge函数实现图像的边缘检测,其调用格式为:BW=edge(I,sobel,thresh,direction)根据指定的敏感阈值 thresh 用 Sobel 算子对图像进行边缘检测,edge函数忽略了所有小于阈值的边缘,如果没有指 定阈值thresh或为空,函数自动选择参数值,direction指定Sobel算子边缘检 测的方向,其参数值为horizontal, vertical或bo

12、th(默认)。 程序代码:I=imread(cameraman.tif);imshow(I)title(原始图像)BW=edge(I,sobel);%以自动域值选择法对图像进行Sobel算子边缘检测figure,imshow(BW);title(自动域值的Sobel算子边缘检测) BW,thresh=edge(I,sobel);%返回当前Sobel算子边缘检测的阈值disp(sobel算子自动选择的阈值为:)disp(thresh)BW1=edge(I,sobel,0.02,horizontal);%以域值为0.02水平方向对图像进行Sobel算子边缘检测 figure,imshow(BW1)

13、title(域值为0.02的水平方向的sobel算子检测)BW2=edge(I,sobel,0.02,vertical);%以域值为0.02垂直方向对图像进行Sobel算子边缘检测figure,imshow(BW2)title(域值为0.02的垂直方向的sobel算子检测)BW3=edge(I,sobel,0.05,horizontal);%以域值为0.05水平方向对图像进行Sobel算子边缘检测figure,imshow(BW3)title(域值为0.05的水平方向的sobel算子检测)BW4=edge(I,sobel,0.05,vertical);%以域值为0.05垂直方向对图像进行Sob

14、el算子边缘检测figure,imshow(BW4)title(域值为0.05的垂直方向的sobel算子检测)测试结果图:sobel算子自动选择的阈值为:0.1433由图可以看出,在采用水平和垂直方向的Sobel算子对图像进行边缘检测时,分 别对应的水平和垂直方向上的边缘有较强的响应,阈值越小,检测的图像的边 缘细节数越多,而增大阈值时,有些轮廓则未能检测出。其用法和Sobel算子类似。其调用格式为:BW=edge(I,prewitt,thresh,direction)根据指定的敏感阈值 thresh 用 Prewitt 算 子对图像进行边缘检测。程序代码:I=imread(cameraman

15、.tif);imshow(I)title(原始图像)BW=edge(I,prewitt);%以自动域值选择法对图像进行Prewitt算子边缘检测figure,imshow(BW);title(自动域值的prewitt算子边缘检测) BW,thresh=edge(I,prewitt);%返回当前Prewitt算子边缘检测的阈值disp(prewitt算子自动选择的阈值为:)disp(thresh)BW1=edge(I,prewitt,0.02,horizontal);%以域值为0.02水平方向对图像进行Prewitt算子边缘检测figure,imshow(BW1)title(域值为0.02的水平方向的prewitt算子检测)BW2=edge(I,prewitt,0.02,vertical);%以域值为0.02垂直方向对图像进行Prewitt算子边缘检测figure,imshow(BW2)title(域值为0.02的垂直方向的prewitt算子检测)BW3=edge(I,p

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论