数字图像处理matlab代码.doc
《数字图像处理matlab代码.doc》由会员分享,可在线阅读,更多相关《数字图像处理matlab代码.doc(88页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date数字图像处理matlab代码一、编写程序完成不同滤波器的图像频域降噪和边缘增强的算法并进行比较,得出结论。一、编写程序完成不同滤波器的图像频域降噪和边缘增强的算法并进行比较,得出结论。1、不同滤波器的频域降噪1.1 理想低通滤波器(ILPF)和二阶巴特沃斯低通滤波器(BLPF)clc;clear all;close all;I1=imread(me.jpg);I1=r
2、gb2gray(I1);subplot(2,2,1),imshow(I1),title(原始图像);I2=imnoise(I1,salt & pepper);subplot(2,2,2),imshow(I2),title(噪声图像);F=double(I2);g = fft2(F);g = fftshift(g);M, N=size(g);result1=zeros(M,N);result2=zeros(M,N);nn = 2;d0 =50;m = fix(M/2);n = fix(N/2);for i = 1:M for j = 2:N d = sqrt(i-m)2+(j-n)2); h =
3、 1/(1+0.414*(d/d0)(2*nn); result1(i,j) = h*g(i,j); if(g(i,j) 50) result2(i,j) = 0; else result2(i,j) =g(i,j); end endendresult1 = ifftshift(result1);result2 = ifftshift(result2);J2 = ifft2(result1);J3 = uint8(real(J2);subplot(2, 2, 3),imshow(J3,),title(巴特沃斯低通滤波结果);J4 = ifft2(result2);J5 = uint8(real
4、(J4);subplot(2, 2, 4),imshow(J5,),title(理想低通滤波结果);实验结果: 1.2 指数型低通滤波器(ELPF) clc;clear all;close all;I1=imread(me.jpg);I1=rgb2gray(I1);I2=im2double(I1);I3=imnoise(I2,gaussian,0.01);I4=imnoise(I3,salt & pepper,0.01);subplot(1,3,1),imshow(I2), title(原始图像); %显示原始图像subplot(1,3,2),imshow(I4),title(加入混合躁声后图
5、像 ); s=fftshift(fft2(I4);%将灰度图像的二维不连续Fourier 变换的零频率成分移到频谱的中心M,N=size(s); %分别返回s的行数到M中,列数到N中n1=floor(M/2); %对M/2进行取整n2=floor(N/2); %对N/2进行取整d0=40; for i=1:M for j=1:N d=sqrt(i-n1)2+(j-n2)2); %点(i,j)到傅立叶变换中心的距离 h=exp(log(1/sqrt(2)*(d/d0)2); s(i,j)=h*s(i,j); %ILPF滤波后的频域表示 end end s=ifftshift(s); %对s进行反
6、FFT移动 s=im2uint8(real(ifft2(s); subplot(1,3,3),imshow(s),title(ELPF滤波后的图像(d=40)); 运行结果: 1.3 梯形低通滤波器(TLPF)clc;clear all;close all;I1=imread(me.jpg);I1=rgb2gray(I1); %读取图像I2=im2double(I1);I3=imnoise(I2,gaussian,0.01);I4=imnoise(I3,salt & pepper,0.01);subplot(1,3,1),imshow(I2),title(原始图像); %显示原始图像 subp
7、lot(1,3,2),imshow(I4),title(加噪后的图像); s=fftshift(fft2(I4);%将灰度图像的二维不连续Fourier 变换的零频率成分移到频谱的中心M,N=size(s); %分别返回s的行数到M中,列数到N中n1=floor(M/2); %对M/2进行取整n2=floor(N/2); %对N/2进行取整d0=10;d1=160; for i=1:M for j=1:N d=sqrt(i-n1)2+(j-n2)2); %点(i,j)到傅立叶变换中心的距离 if (d=d0) h=1; else if (d0=d1) h=(d-d1)/(d0-d1); els
8、e h=0; end end s(i,j)=h*s(i,j); %ILPF滤波后的频域表示 end end s=ifftshift(s); %对s进行反FFT移动 s=im2uint8(real(ifft2(s); %对s进行二维反离散的Fourier变换后,取复数的实部转化为无符号8位整数subplot(1,3,3),imshow(s),title(TLPF滤波后的图像);运行结果:1.4 高斯低通滤波器(GLPF)clear all;clc;close all;I1=imread(me.jpg);I1=rgb2gray(I1);I2=im2double(I1);I3=imnoise(I2,
9、gaussian,0.01);I4=imnoise(I3,salt & pepper,0.01);subplot(1,3,1),imshow(I2),title(原始图像);subplot(1,3,2),imshow(I4),title(加噪后的图像);s=fftshift(fft2(I4);%将灰度图像的二维不连续Fourier 变换的零频率成分移到频谱的中心M,N=size(s); %分别返回s的行数到M中,列数到N中n1=floor(M/2); %对M/2进行取整n2=floor(N/2); %对N/2进行取整d0=40; for i=1:M for j=1:N d=sqrt(i-n1)
10、2+(j-n2)2); %点(i,j)到傅立叶变换中心的距离 h=1*exp(-1/2*(d2/d02); %GLPF滤波函数 s(i,j)=h*s(i,j); %ILPF滤波后的频域表示 end ends=ifftshift(s); %对s进行反FFT移动s=im2uint8(real(ifft2(s); %对s进行二维反离散的Fourier变换后,取复数的实部转化为无符号8位整数subplot(1,3,3),imshow(s),title(GLPF滤波后的图像(d=40));运行结果: 1.5 维纳滤波器clc;clear all;close all;I=imread(me.jpg); %
11、读取图像 I=rgb2gray(I); I1=im2double(I);I2=imnoise(I1,gaussian,0.01);I3=imnoise(I2,salt & pepper,0.01);I4=wiener2(I3);subplot(1,3,1),imshow(I1),title(原始图像); %显示原始图像 subplot(1,3,2),imshow(I3),title(加入混合躁声后图像); I4=wiener2(I3);subplot(1,3,3),imshow(I4),title(wiener滤波后的图像); 运行结果:结 论:理想低通滤波器,虽然有陡峭的截止频率,却不能产生
12、良好的效果,图像由于高频分量的滤除而变得模糊,同时还产生振铃效应。 巴特沃斯滤波器通频带内的频率响应曲线最大限度平坦,没有起伏,而在阻频带则逐渐下降为零。在振幅的对数对角频率的波得图上,从某一边界角频率开始,振幅随着角频率的增加而逐步减少,趋向负无穷大。由于转移特性曲线的尾部保留较多的高频,所以对噪声的平滑效果不如ILPE。 指数型低通滤波器具有较平滑的过滤带,经此平滑后的图像没有“振铃”现象,而与巴沃特斯滤波相比,它具有更快的衰减特性,处理图像稍微模糊一些。梯形低通滤波器的性能介于巴沃特斯与完全平滑滤波器之间,对图像具有一定的模糊和振铃效应。高斯低通滤波器其原理就是RC电路具有使低频信号较易
13、通过而抑制较高频率信号的作用,可以有效地去除服从正态分布的噪声。维纳滤波在处理光学传递函数在零点附近的噪声方法问题比较有效,通过选择适当参数,可以有效地消除或抑制噪声和“振铃效应”。2、边缘增强2.1 Robert 算子边缘检测clc;clear all;close all;I=imread(me.jpg);I=rgb2gray(I);subplot(1,3,1),imshow(I),title(原始图像); %显示原始图像 BW1 = edge(I,robert); subplot(1,3,2),imshow(BW1),title(robert算子检测结果(T默认)); BW2 = edge
14、(I,robert,0.04); %T取0.04subplot(1,3,3),imshow(BW2),title(robert算子检测结果(T=0.04)); 运行结果:2.2 Sobel 算子边缘检测clc;clear all;close all;I=imread(me.jpg);I=rgb2gray(I); %读取图像subplot(1,3,1),imshow(I),title(原始图像); %显示原始图像 BW1 = edge(I,sobel); %阈值默认subplot(1,3,2),imshow(BW1),title(sobel算子(T默认));BW2=edge(I,sobel,0.
15、04); %阈值取0.04subplot(1,3,3),imshow(BW2),title(sobel算子(T=0.04));运行结果:2.3 Prewitt算子边缘检测clc;clear all;close all;I=imread(me.jpg);I=rgb2gray(I);subplot(1,3,1),imshow(I),title(原始图像); %显示原始图像 BW1 = edge(I,Prewitt); %阈值默认subplot(1,3,2),imshow(BW1),title(Prewitt算子(T默认));BW2 = edge(I,Prewitt,0.04); %T取0.04su
16、bplot(1,3,3),imshow(BW2),title(Prewitt算子(T=0.04)); %阈值越小,检测出的边缘越丰富运行结果:2.4 LoG(laplacian of gaussian)算子边缘检测clc;clear all;close all;I=imread(me.jpg);I=rgb2gray(I);subplot(1,3,1),imshow(I),title(原始图像); %显示原始图像 BW1 = edge(I,log,0.003); %T=0.003,sigma默认2subplot(1,3,2),imshow(BW1),title( LoG 算子(sigma=2);
17、BW2 = edge(I,log,0.003,2.20); %T=0.003,sigma=2.20subplot(1,3,3),imshow(BW2),title( LoG 算子(sigma=2.20);运行结果:2.5 Canny算子边缘检测clc;clear all;close all;I=imread(me.jpg);I=rgb2gray(I);subplot(1,3,1),imshow(I),title(原始图像); %显示原始图像 BW1 = edge(I,canny); %sigma默认1subplot(1,3,2),imshow(BW1),title(canny算子(sigma=
18、1);BW2 = edge(I,canny,0.04 0.10,1.3); %T取0.04 0.10sigma=1.3subplot(1,3,3),imshow(BW2),title(canny算子(sigma=1.3);运行结果:结 论:Roberts算子定位比较精确,但由于不包括平滑,所以对噪声比较敏感。该算子对具有陡峭边缘且噪声低的图像效果较好。Prewitt算子和Sobel算子都是一阶的微分算子,而前者是平均滤波,后者是加权平均滤波且检测的图像边缘可能大于2个像素。这两者对灰度渐变低噪声的图像有较好的检测效果,但是对于混合多复杂噪声的图像,处理效果就不理想了。LOG滤波器中的正比于低通
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字图像 处理 matlab 代码
限制150内