当前位置:文档之家› 频域空域

频域空域

频域空域频域一 实验目的1了解图像变换的意义和手段;2熟悉傅里叶变换的基本性质;3热练掌握FFT 方法及应用;4通过实验了解二维频谱的分布特点;5通过本实验掌握利用MATLAB 编程实现数字图像的傅立叶变换及滤波锐化和复原处理;二 实验原理1应用傅立叶变换进行图像处理傅里叶变换是线性系统分析的一个有力工具,它能够定量地分析诸如数字化系统、采样点、电子放大器、卷积滤波器、噪音和显示点等的作用。

通过实验培养这项技能,将有助于解决大多数图像处理问题。

对任何想在工作中有效应用数字图像处理技术的人来说,把时间用在学习和掌握博里叶变换上是很有必要的。

2傅立叶(Fourier )变换的定义对于二维信号,二维Fourier 变换定义为:⎰⎰∞∞-∞∞-+-=dy dx e y x f v u F vy ux j )(2),(),(π ⎰⎰∞∞-∞∞-+=dv du e v u F y x f vy ux j )(2),(),(π θθθsin cos j e j +=二维离散傅立叶变换为:1,...,2,1,0,1,...,2,1,0for ),(1),(1010)//(2 N v M u e y x f MN v u F M x N y N vy M ux j1,...,2,1,0,1,...,2,1,0for ),(),(1010)//(2 N y M x e v u F y x f M u N v N vy M ux j图像的傅立叶变换与一维信号的傅立叶变换变换一样,有快速算法,具体参见参考书目,有关傅立叶变换的快速算法的程序不难找到。

实际上,现在有实现傅立叶变换的芯片,可以实时实现傅立叶变换。

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频谱显示的函数;3 a).调入、显示“实验一”获得的图像;图像存储格式应为“.gif”;b)对这三幅图像做FFT并利用自编的函数显示其频谱;c)讨论不同的图像内容与FFT频谱之间的对应关系。

4 对频谱分别进行巴特沃兹和理想低通滤波,比较效果。

5 记录和整理实验报告。

四实验仪器1计算机;2 MATLAB程序;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;for i=1:Mfor j=1:Nd=sqrt((i-n1)^2+(j-n2)^2);if d<=d0h=1;elseh=0;endg(i,j)=h*g(i,j);endendg=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);for i=1:Mfor j=1:Nd=sqrt((i-n1)^2+(j-n2)^2) h=1/(1+(d/d0)^(2*n));g(i,j)=h*g(i,j);endendg=ifftshift(g);g=uint8(real(ifft2(g)));subplot(122);imshow(g);由以上理想低通滤波及巴特沃兹滤波所得图像比较可知:滤波后所得图像与原图像相比都不理想,但毕竟可以起到一定作用,在不同的情况下可以根据情况采用不同的滤波方法得到所需的图像和结果空域一 实验目的1结合实例学习如何在视频显示程序中增加图像处理算法;2理解和掌握图像的线性变换和直方图均衡化的原理和应用;3了解平滑处理的算法和用途,学习使用均值滤波、中值滤波和拉普拉斯锐化进行图像增强处理的程序设计方法;二 实验原理1 灰度线性变换就是将图像中所有点的灰度按照线性灰度变换函数进行变换。

)],([),(y x f T y x g =⎪⎩⎪⎨⎧<≤+-<≤+-≤≤=255),(]),([),( ]),([),(0 ),(),(y x f b g b y x f b y x f a g a y x f ay x f y x f y x g b a γβαym x Λ,,,2,1=2 直方图均衡化通过点运算将输入图像转换为在每一级上都有相等像素点数的输出图像。

按照图像概率密度函数PDF 的定义:1,...,2,1,0 )(-==L k n n r p kk r通过转换公式获得:1,...,2,1,0)()(00-====∑∑==L k n n r p r T s k j kj j j r k k3 均值(中值)滤波是指在图像上,对待处理的像素给定一个模板,该模板包括了其周围的临近像素。

将模板中的全体像素的均值(中值)来代替原来像素值的方法。

4 拉普拉斯算子如下:⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--------111181111拉普拉斯算子首先将自身与周围的8个像素相减,表示自身与周围像素的差异,再将这个差异加上自身作为新像素的灰度。

三实验步骤1 启动MATLAB程序,对图像文件分别进行灰度线性变换、直方图均衡化、均值滤波、中值滤波和梯度锐化操作。

添加噪声,重复上述过程观察处理结果。

2记录和整理实验报告四实验仪器1计算机;2 MATLAB程序;3记录用的笔、纸。

五实验报告内容1叙述实验过程;2提交实验的原始图像和结果图像。

实验过程:对图像文件进行灰度线性变换I= ('F:\11.jpg');imshow(I);I=double(I);[M,N]=size(I);for i=1:Mfor j=1:Nif I(i,j)<=30I(i,j)=I(i,j);else if I(i,j)<=150I(i,j)=(200-30)/(150-30)*(I(i,j)-30)+30;elseI(i,j)=(255-200)/(255-150)*(I(i,j)-150)+200;endendendendfigure(2);imshow(uint8(I));直方图均衡化I=imread ('F:\11.jpg'); figuresubplot(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);for i=1:16II(:,:,i)=imnoise(I,'gaussian',0,0.01); II1=II1+double(II(:,:,i));if or(or(i==1,i==4),or(i==8,i==16));figure;imshow(uint8(II1/i));endend中值滤波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,[])。

相关主题