matlab图像处理实验二.docx
《matlab图像处理实验二.docx》由会员分享,可在线阅读,更多相关《matlab图像处理实验二.docx(13页珍藏版)》请在冰豆网上搜索。
matlab图像处理实验二
实验项目名称:
实验2频域图像处理和图像恢复
(所属课程:
matlab图像和视频处理)
学院:
计算机科学与信息工程学院专业班级:
15计科姓名:
学号:
实验日期:
11/15实验地点:
409合作者:
指导教师:
本实验项目成绩:
教师签字:
日期:
一、实验目的
(1)掌握频域图像处理的基本方法。
(2)掌握图像的傅里叶变换。
(3)掌握空域和频域图像处理的联系与区别。
(4)掌握图像恢复的相关理论和方法。
二、实验要求
(1)预习实验相关知识,了解实验目的与内容。
(2)根据实验目的和内容,制定相关的实验方案并进行实施。
(3)实验结束后,对相关内容进行总结和反思。
三、实验内容和步骤
(1)显示图像’eight.tif’和’cameraman.tif’傅立叶变换的傅立叶谱图像。
I=imread('eight.tif');
Id=im2double(I);
ft=fft2(Id);
ft_shift=fftshift(ft);
figure,subplot(1,2,1),imshow(abs(ft_shift),[]),...
title('Directremap');
subplot(1,2,2),imshow(log(1+abs(ft_shift)),[]),...
title('Logremap');
效果图如下:
2.1
2.1-1图
I=imread('cameraman.tif');
Id=im2double(I);
ft=fft2(Id);
ft_shift=fftshift(ft);
figure,subplot(1,2,1),imshow(abs(ft_shift),[]),...
title('Direct2remap');
subplot(1,2,2),imshow(log(1+abs(ft_shift)),[]),...
title('Log2remap');
效果图如下:
2.2
2.1-2图
(2)对图像’eight.tif’采用理想低通滤波器和理想高通滤波器进行处理,分析不同的滤波器得到的结果;
采用不同的截断半径D1=20、D1=80进行处理,分析截断半径对结果的影响。
理想低通滤波器:
I=imread('eight.tif');
Id=im2double(I);
I_dft=fft2(Id);
figure,subplot(2,2,1),imshow(Id),title('OriginalImage');
subplot(2,2,2),imshow(log(1+abs(fftshift(I_dft))),[]),...
title('FToforiginalimage');
[M,N]=size(I);
dist=distmatrix(M,N);
subplot(2,2,3),mesh(fftshift(dist)),title('DistanceMatrix');
H=zeros(M,N);
radius=20;
ind=dist<=radius;
H(ind)=1;
Hd=double(H);
subplot(2,2,4),imshow(fftshift(H)),title('Ideallow-passfilter');
效果图如下:
2.2-1
2.2-1图(D1=20)
2.2-2图(D1=80)
理想高通滤波器:
I=im2double(imread('eight.tif'));
I_dft=fft2(I);
figure,subplot(2,3,1),title('OriginalImage');
subplot(2,3,2),imshow(log(1+abs(fftshift(I_dft))),[]),...
title('FToforiginalimage');
[M,N]=size(I);
dist=distmatrix(M,N);
H=ones(M,N);
radius=80;
ind=dist<=radius;
H(ind)=0;
a=1;b=1;
Hd=double(a+(b.*H));
DFT_filt=Hd.*I_dft;
I2=real(ifft2(DFT_filt));
subplot(2,3,3),imshow(log(1+abs(fftshift(DFT_filt))),[]),...
title('FilteredFT');
subplot(2,3,4),imshow(I2),title('FilteredImage');
subplot(2,3,5),imshow(fftshift(Hd),[]),title('Filterasanimage');
subplot(2,3,6),mesh(fftshift(Hd)),zlim([02]),title('Filterasamesh');
效果图如下:
2.2-3图(D1=20)
2.2-4图(D1=80)
(3)对图像’cameraman.tif’采用巴特沃斯高通滤波器进行处理,分析不同的截断频率和阶数对结果的影响。
(D1=20,D2=60;n1=2,n2=20)对图像的影响;
巴特沃斯高通滤波器:
I=im2double(imread('cameraman.tif'));
I_dft=fft2(I);
figure,subplot(2,2,1),imshow(I),title('OriginalImage');
[M,N]=size(I);
dist=distmatrix(M,N);
cutoff=60;order=20;
H_but=1./(1+(cutoff./dist).^(2*order));
H_but_hfe=a+(b.*H_but);
DFT_filt_but=H_but_hfe.*I_dft;
I4=real(ifft2(DFT_filt_but));
subplot(2,2,2),imshow(log(1+abs(fftshift(I_dft))),[]),...
title('FToforiginalimage');
subplot(2,2,3),imshow(log(1+abs(fftshift(DFT_filt_but))),[]),...
title('FilteredFT');
subplot(2,2,4),imshow(I4),title('FilteredImage');
效果图如下:
2.3-1图(D1=20,n1=2)
2.3-2图(D1=60,n1=20)
(4)对图像’eight.tif’采用高斯低通滤波器、高斯高通滤波器进行处理,显示其对图像处理的结果。
高斯低通滤波器:
I=imread('eight.tif');
Id=im2double(I);
I_dft=fft2(Id);
[M,N]=size(I);
dist=distmatrix(M,N);
sigma=30;
H_gau=exp(-(dist.^2)/(2*(sigma^2)));
figure,subplot(3,2,1),imshow(Id),title('OriginalImage');
subplot(3,2,2),imshow(log(1+abs(fftshift(I_dft))),[]),...
title('DFToforiginalimage');
subplot(3,2,3),mesh(fftshift(dist)),title('DistanceMatrix');
subplot(3,2,4),imshow(fftshift(H_gau)),title('Gaussianlow-pass');
DFT_filt_gau=H_gau.*I_dft;
I3=real(ifft2(DFT_filt_gau));
subplot(3,2,5),imshow(log(1+abs(fftshift(DFT_filt_gau))),[]),...
title('FilteredFT');
subplot(3,2,6),imshow(I3),title('FilteredImage');
效果图如下:
高斯高通滤波器:
I=im2double(imread('eight.tif'));
I_dft=fft2(I);
figure,subplot(2,2,1),imshow(I),title('OriginalImage');
subplot(2,2,2),imshow(log(1+abs(fftshift(I_dft))),[]),...
title('FToforiginalimage');
[M,N]=size(I);
dist=distmatrix(M,N);
sigma=30;
H_gau=1-exp(-(dist.^2)/(2*(sigma^2)));
H_gau_hfe=a+(b.*H_gau);
DFT_filt_gau=H_gau_hfe.*I_dft;
I3=real(ifft2(DFT_filt_gau));
subplot(2,2,3),imshow(log(1+abs(fftshift(DFT_filt_gau))),[]),...
title('FilteredFT');
subplot(2,2,4),imshow(I3),title('FilteredImage')
效果图如下:
2.4-2图
(5)对图像’cameraman.tif’添加高斯噪声,分别使用空域技术和频域技术实现噪声去除,恢复图像得到较好的效果。
代码如下:
I=imread('cameraman.tif');
Ig=imnoise(I,'gaussian',0,0.001);
fn=fspecial('average');
I1=imfilter(Ig,fn);
figure,
subplot(2,3,1),imshow(Ig),title('Ig');
subplot(2,3,2),imshow(I1,[]),title('I1');
Id=im2double(Ig);
I_dft=fft2(Id);
[M,N]=size(Ig);
dist=distmatrix(M,N);
sigma=30;
H_gau=exp(-(dist.^2)/(2*(sigma^2)));
subplot(2,3,4),imshow(fftshift(H_gau)),title('Gaussianlow-pass');
DFT_filt_gau=H_gau.*I_dft;
I3=real(ifft2(DFT_filt_gau));
subplot(2,3,5),imshow(log(1+abs(fftshift(DFT_filt_gau))),[]),...
title('FilteredFT');
subplot(2,3,6),imshow(I3),title('FilteredImage');
结果如图:
四、实验结果与分析