频域空域.docx
《频域空域.docx》由会员分享,可在线阅读,更多相关《频域空域.docx(14页珍藏版)》请在冰豆网上搜索。
![频域空域.docx](https://file1.bdocx.com/fileroot1/2023-6/14/c9834375-c0fc-4dd2-889a-6dfe575d7819/c9834375-c0fc-4dd2-889a-6dfe575d78191.gif)
频域空域
频域
一实验目的
1了解图像变换的意义和手段;
2熟悉傅里叶变换的基本性质;
3热练掌握FFT方法及应用;
4通过实验了解二维频谱的分布特点;
5通过本实验掌握利用MATLAB编程实现数字图像的傅立叶变换及滤波锐化和复原处理;
二实验原理
1应用傅立叶变换进行图像处理
傅里叶变换是线性系统分析的一个有力工具,它能够定量地分析诸如数字化系统、采样点、电子放大器、卷积滤波器、噪音和显示点等的作用。
通过实验培养这项技能,将有助于解决大多数图像处理问题。
对任何想在工作中有效应用数字图像处理技术的人来说,把时间用在学习和掌握博里叶变换上是很有必要的。
2傅立叶(Fourier)变换的定义
对于二维信号,二维Fourier变换定义为:
二维离散傅立叶变换为:
图像的傅立叶变换与一维信号的傅立叶变换变换一样,有快速算法,具体参见参考书目,有关傅立叶变换的快速算法的程序不难找到。
实际上,现在有实现傅立叶变换的芯片,可以实时实现傅立叶变换。
3利用MATLAB软件实现数字图像傅立叶变换的程序:
I=imread('f:
\11.jpg');;%读入原图像文件
imshow(I);%显示原图像
fftI=fft2(I);%二维离散傅立叶变换
sfftI=fftshift(fftI);%直流分量移到频谱中心
RR=real(sfftI);%取傅立叶变换的实部
II=imag(sfftI);%取傅立叶变换的虚部
A=sqrt(RR.^2+II.^2);%计算频谱幅值
A=(A-min(min(A)))/(max(max(A))-min(min(A)))*225;
%归一化
figure;%设定窗口
imshow(A);%显示原图像的频谱
程序运行结果图及其频谱
三实验步骤
1打开计算机,安装和启动MATLAB程序;程序组中“work”文件夹中应有待处理的图像文件;
2利用MatLab工具箱中的函数编制FFT频谱显示的函数;
3a).调入、显示“实验一”获得的图像;图像存储格式应为“.gif”;
b)对这三幅图像做FFT并利用自编的函数显示其频谱;
c)讨论不同的图像内容与FFT频谱之间的对应关系。
4对频谱分别进行巴特沃兹和理想低通滤波,比较效果。
5记录和整理实验报告。
四实验仪器
1计算机;2MATLAB程序;3移动式存储器。
4记录用的笔、纸。
五实验报告内容
1叙述实验过程;
2提交实验的原始图像和结果图像,并对结果进行比较。
实验过程:
对三幅图像做FFT并利用自编的函数显示其频谱
figure
(1);
a=imread('F:
\11.jpg');
imshow(a);
figure
(2);
s=fftshift(fft2(a));
imshow(log(abs(s)),[]);
程序运行结果图及其频谱
由以上二幅图像各自做傅里叶变化之前之后的图像进行比较可知:
原图像中若出现较多急剧变化的内容则其傅里叶变换后高频成分较多,反之若原图像中变化比较平缓则其傅里叶变换后低频成分较多,介于二者之间的图像,频率分量较分散。
对频谱分别进行巴特沃兹和理想低通滤波
理想低通滤波
J=imread('F:
\11.jpg');
subplot(331);imshow(J);
J=double(J);
f=fft2(J);
g=fftshift(f);
subplot(332);imshow(log(abs(g)),[]),color(jet(64));
[M,N]=size(f);
n1=floor(M/2);
n2=floor(N/2);
d0=5;
fori=1:
M
forj=1:
N
d=sqrt((i-n1)^2+(j-n2)^2);
ifd<=d0
h=1;
else
h=0;
end
g(i,j)=h*g(i,j);
end
end
g=ifftshift(g);
g=uint8(real(ifft2(g)));
subplot(333);
imshow(g);
巴特沃兹滤波
I=imread('F:
\11.jpg');
J=imnoise(I,'salt&pepper',0.02);
subplot(121);imshow(J);
title('含有椒盐噪声的图像')
J=double(J);
f=fft2(J);
g=fftshift(f);
[M,N]=size(f);
n=3;
d0=20;
n1=floor(M/2);
n2=floor(N/2);
fori=1:
M
forj=1:
N
d=sqrt((i-n1)^2+(j-n2)^2)
h=1/(1+(d/d0)^(2*n));
g(i,j)=h*g(i,j);
end
end
g=ifftshift(g);
g=uint8(real(ifft2(g)));
subplot(122);
imshow(g);
由以上理想低通滤波及巴特沃兹滤波所得图像比较可知:
滤波后所得图像与原图像相比都不理想,但毕竟可以起到一定作用,在不同的情况下可以根据情况采用不同的滤波方法得到所需的图像和结果
空域
一实验目的
1结合实例学习如何在视频显示程序中增加图像处理算法;
2理解和掌握图像的线性变换和直方图均衡化的原理和应用;
3了解平滑处理的算法和用途,学习使用均值滤波、中值滤波和拉普拉斯锐化进行图像增强处理的程序设计方法;
二实验原理
1灰度线性变换就是将图像中所有点的灰度按照线性灰度变换函数进行变换。
2直方图均衡化通过点运算将输入图像转换为在每一级上都有相等像素点数的输出图像。
按照图像概率密度函数PDF的定义:
通过转换公式获得:
3均值(中值)滤波是指在图像上,对待处理的像素给定一个模板,该模板包括了其周围的临近像素。
将模板中的全体像素的均值(中值)来代替原来像素值的方法。
4拉普拉斯算子如下:
拉普拉斯算子首先将自身与周围的8个像素相减,表示自身与周围像素的差异,再将这个差异加上自身作为新像素的灰度。
三实验步骤
1启动MATLAB程序,对图像文件分别进行灰度线性变换、直方图均衡化、均值滤波、中值滤波和梯度锐化操作。
添加噪声,重复上述过程观察处理结果。
2记录和整理实验报告
四实验仪器
1计算机;
2MATLAB程序;
3记录用的笔、纸。
五实验报告内容
1叙述实验过程;
2提交实验的原始图像和结果图像。
实验过程:
对图像文件进行灰度线性变换
I=('F:
\11.jpg');
imshow(I);
I=double(I);
[M,N]=size(I);
fori=1:
M
forj=1:
N
ifI(i,j)<=30
I(i,j)=I(i,j);
elseifI(i,j)<=150
I(i,j)=(200-30)/(150-30)*(I(i,j)-30)+30;
else
I(i,j)=(255-200)/(255-150)*(I(i,j)-150)+200;
end
end
end
end
figure
(2);imshow(uint8(I));
直方图均衡化
I=imread('F:
\11.jpg');
figure
subplot(221);imshow(I);
subplot(222);imhist(I)
I1=histeq(I);
figure;
subplot(221);imshow(I1)
subplot(222);imhist(I1)
均值滤波
I=imread('F:
\11.jpg');
[M,N]=size(I);
II1=zeros(M,N);
fori=1:
16
II(:
:
i)=imnoise(I,'gaussian',0,0.01);
II1=II1+double(II(:
:
i));
ifor(or(i==1,i==4),or(i==8,i==16));
figure;
imshow(uint8(II1/i));
end
end
中值滤波
I=imread('F:
\11.jpg');
J=imnoise(I,'salt&pepper',0.02);
subplot(231),imshow(I);title('原始图像');
subplot(232),imshow(J);title('添加椒盐噪声图像')
k1=medfilt2(J);
k2=medfilt2(J,[5,5]);
k3=medfilt2(J,[7,7]);
k4=medfilt2(J,[9,9]);
subplot(233),imshow(k1);title('3x3模板中值滤波')
subplot(234),imshow(k2);title('5x5模板中值滤波')
subplot(235),imshow(k3);title('7x7模板中值滤波')
subplot(236),imshow(k4);title('9x9模板中值滤波')
梯度锐化操作
I=imread('F:
\11.jpg');
subplot(131);imshow(I)
H=fspecial('Sobel');
H=H';
TH=filter2(H,I);
subplot(132),imshow(TH,[]);
H=H';
TH=filter2(H,I);
subplot(133),imshow(TH,[])