遥感图像处理实验报告_图像的频率域滤波处理

  • 格式:docx
  • 大小:3.05 MB
  • 文档页数:9

遥感图像处理

实验报告

(2013 —2014 学年第1学期)

实验名称: 图像的频率域滤波处理

实验时间:

实验地点:

指导教师:

专业班级:

姓 名:

学 号:

一:实验目的

1:掌握滤波器在程序语言中的定义算法

2:理解图像的频率域与空间域之间的区别与联系

3:在频率域对图像进行处理,达到平滑(低通滤波)与锐化(高通滤波)的目的

二:实验内容

1:在Matlab中定义滤波器

2:对图像进行频率域处理

3:对频率域的处理结果,结合第3次实验(空间域处理)结果进行对比,给出评价

三:实验代码及Matlab使用心得(注释中)

%清屏,清除工作空间,关闭所有绘图窗口

clc;

clear all;

close all;

%读取图像,并建立一个窗口,显示原始图像

I = imread('C:\Users\浮生\Desktop\大三\Matlab\data\lena.png', 'png')

figure(1)

imshow(I)

title('原始图像')

%图像傅立叶变换

%fft(X)函数的作用是,返回矩阵X的【二维离散傅立叶变换】结果

%fft()函数采用快速傅立叶变换算法,运算结果的行列数与被变换矩阵的规格相同

F = fft2(I);

%fftshift()函数的功能则是把FFT的DC分量移动到频谱矩阵的中心

%在直观上,就是把低频信息移到矩阵中心,便于直观观看图像的频谱

F = fftshift(F);

%由于FFT的运算结果的数值跨幅过大

%直接显示的话只能看到一个小亮点

%为了显示的直观,我们需要自行定义灰度显示幅度

%在本例中,我们定义显示幅度为0-50000

figure(2);

imshow(abs(real(F)), [0 50000]);

title('频率域图像')

%%%%%%定义滤波器之前的准备工作%%%%% [m n] = size(I); %读取图像的规格

p = m/2; %定义两个计数器p和q

q = n/2; %用以控制滤波器的遍历过程

image = zeros(m,n);

%%%%%%截止频率为50的理想低通滤波器%%%%%%

%低通滤波器,即让频率高于阈值的信号值为0,而在阈值之下的所有信号保持原样

%反映在图像操作中,将去除高频信息,达到平滑的效果

lowpass_50 = F;

for u = 1:m

for v = 1:n

if sqrt((u-p)^2 + (v-q)^2) < 50

%什么也不做;

else

lowpass_50(u, v) = 0;

end

end

end

%显示频率域图像

figure(3);

imshow(abs(real(lowpass_50)), [0 50000]);

title('频率域图像 截止频率为50的理想低通滤波器');

%傅立叶逆运算反算图像

image = ifftshift(lowpass_50); %还原矩阵

image = ifft2(image); %傅立叶逆运算

image = abs(real(image)); %复数取实部

%显示处理结果图像

figure(4);

imshow(image, []);

title('处理结果 截止频率为50的理想低通滤波器')

%%%%%%截止频率为100的理想低通滤波器%%%%%%

lowpass_100 = F;

for u = 1:m

for v = 1:n

if sqrt((u-p)^2 + (v-q)^2) < 100

%什么也不做;

else

lowpass_100(u, v) = 0;

end

end

end

%显示频率域图像 figure(5);

imshow(abs(real(lowpass_100)), [0 50000]);

title('频率域图像 截止频率为100的理想低通滤波器');

%傅立叶逆运算反算图像

image = ifftshift(lowpass_100); %还原矩阵

image = ifft2(image); %傅立叶逆运算

image = abs(real(image)); %复数取实部

%显示处理结果图像

figure(6);

imshow(image, []);

title('处理结果 截止频率为100的理想低通滤波器')

%%%%%%截止频率为50的理想高通滤波器%%%%%%

highpass_50 = F;

for u = 1:m

for v = 1:n

if sqrt((u-p)^2 + (v-q)^2) < 50

highpass_50(u, v) = 0;

else

%什么也不做;

end

end

end

%显示频率域图像

figure(7);

imshow(abs(real(highpass_50)), [0 50000]);

title('频率域图像 截止频率为50的理想高通滤波器');

%傅立叶逆运算反算图像

image = ifftshift(highpass_50); %还原矩阵

image = ifft2(image); %傅立叶逆运算

image = abs(real(image)); %复数取实部

%显示处理结果图像

figure(8);

imshow(image, []);

title('处理结果 截止频率为50的理想高通滤波器')

%%%%%%截止频率为100的理想高通滤波器%%%%%%

highpass_100 = F;

for u = 1:m

for v = 1:n

if sqrt((u-p)^2 + (v-q)^2) < 100

highpass_100(u, v) = 0;

else %什么也不做;

end

end

end

%显示频率域图像

figure(9);

imshow(abs(real(highpass_100)), [0 50000]);

title('频率域图像 截止频率为100的理想高通滤波器');

%傅立叶逆运算反算图像

image = ifftshift(highpass_100); %还原矩阵

image = ifft2(image); %傅立叶逆运算

image = abs(real(image)); %复数取实部

%显示处理结果图像

figure(10);

imshow(image, []);

title('处理结果 截止频率为100的理想高通滤波器')

%%%%%%截止频率为50的巴特沃斯低通滤波器%%%%%%

for u = 1:m,

for v = 1:n

D=sqrt((u-p)^2 + (v-q)^2);

Butterworth(u,v)=1/(1+D/50)^(2*2);

end

end

%显示频率域图像

figure(11);

imshow(abs(real(Butterworth)), []);

title('频率域图像 截止频率为50的巴特沃斯低通滤波器');

%傅立叶逆运算反算图像

image = F.*Butterworth;

image = ifftshift(image);

image = abs(ifft2(image));

%显示处理结果图像

figure(12);

imshow(image, []);

title('处理结果 截止频率为50的巴特沃斯低通滤波器')

%%%%%%截止频率为50的高斯低通滤波器%%%%%%

for u=1:m,

for v=1:n

D=sqrt((u-p)^2 + (v-q)^2);

Gaussian(u,v)=exp(-D^2/(2*50^2));

end

end %显示频率域图像

figure(13);

imshow(abs(real(Gaussian)), []);

title('频率域图像 截止频率为50的高斯低通滤波器');

%傅立叶逆运算反算图像

image = F.*Gaussian;

image = ifftshift(image);

image = abs(ifft2(image));

%显示处理结果图像

figure(14);

imshow(image, []);

title('处理结果 截止频率为50的高斯低通滤波器');

四:实验结果(仅列一例)