实验五频域变换
1.实验目的及要求
1•利用MATLAB研究数字图像的傅立叶变换、离散余弦变换等频域变换 算法;
2•掌握MATLAB频域变换函数的使用方法;
3•了频域变换的基本应用
二、    实验内容
(一)研究以下程序,分析程序功能;输入执行各命令行,认真观察命令执 行的结果。熟悉程序中所使用函数的调用方法,改变有关参数,观察试验结果。
1 •傅立叶变换
(1)简单人工二值图像
clear all, close all
f = zeros(50,50);
f(15:35,23:28) = 1;
figure(1), imshow(f,' no truesize')
F = fft2(f,128,128);
F1 = fftshift(F);
figure(2), imshow(log(abs(F1)), [-1 5]); colormap(gray); colorbar
figure(3), mesh(1:128,1:128, abs(F1)); colormap(gray); colorbar
F2 = fft2(imrotate(f,90),128,128);
F3 = fftshift(F2);
figure(4), imshow(imrotate(f,90),' no truesize')
figure(5), imshow(log(abs(F3)), [-1 5]); colormap(gray); colorbar
matlab求傅里叶变换
figure(6), mesh(1:128,1:128, abs(F3)); colormap(gray); colorbar
(2)实际图像傅立叶变换
clear all, close all
A=imread('rice.tif);    %读一幅灰度值图象 rice.tif
imshow(A);
FT=fft2(A); AbsFT=abs(FT);
%傅立叶变换
%FT的绝对值,AbsFTA的振幅谱
%可用以下方式观看振幅谱
F2=log(AbsFT);
figure, imshow(F2,[-1 10],' notruesize');
Fi nvT=ifft2(FT);    %傅立叶反变换
AbsFi nv T=abs(Fi nv T);
F3=log(AbsFi nv T);
figure, imshow(mat2gray (Finv T));
(3)频域滤波
close all, clear all
bw = imread('text.tif);
imshow(bw);
C = real(ifft2(fft2(bw) * fft2( fspecial('average'),256,256)));
figure, imshow(C,[]);    %Display, scali ng data to appropriate range.
Cross-Correlation Used Cross-Correlaiion Used To Locate A Known To Locate A Known Target in an Image Target in an Image
2 •离散余弦变换(DCT )
⑴对camerama n.tif图像的离散余弦变换及逆变换重建
clear all, close all
f=imread('cameraman.tif);    %读一幅 cameraman.tif
imshow(f);
F=dct2(f);    %做余弦变换
AbsFT=abs(F);
figure, imshow(log(AbsFT));
Fin vT=idct2(F);    %做余弦反变换
figure, imshow(mat2gray (Finv T));
%仅保留余弦变换频谱的左上角50*50个数据,然后做余弦反变换,观察输 出图像
FF;
[m, n]=size(F1);
F1(50:m,50: n)=0;
AbsFT=abs(F1);
figure, imshow(log(AbsFT));
Fi nvT=idct2(F1);    %做余弦反变换
figure, imshow(mat2gray (Finv T));
■_ <

(2)利用IPT dctdemo研究离散余弦变换系数对重构图像质量的影响
clear all, close all
dctdemo

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。