发布时间:2024-02-25 15:00
1.熟悉及掌握图像的变换原理及性质,实现图像的傅里叶变换
图像的变换
1.fft2
fft2函数用于数字图像的二维傅立叶变换,如:
i=imread(‘e:\w01.tif’);
j=fft2(i);
由于MATLAB无法显示复数图像,因此变换后的结果还需进行求模运算,即调用abs函数。
之后常常还进行对数变换,即调用log函数,以减缓傅里叶谱的快速衰减,更好地显示高频信息。
2.ifft2
ifft2函数用于数字图像的二维傅立叶反变换,如:
i=imread(‘e:\w01.tif’);
j=fft2(i);
k=ifft2(j);
3.fftshift
用于将变换后图像频谱中心从矩阵的原点移动到矩阵的中心
B=fftshift(i)
4.利用fft2计算二维卷积
利用fft2函数可以计算二维卷积,如:
a=[8,1,6;3,5,7;4,9,2];
b=[1,1,1;1,1,1;1,1,1];
a(8,8)=0;
b(8,8)=0;
c=ifft2(fft2(a).*fft2(b));
c=c(1:5,1:5);
利用conv2(二维卷积函数)校验, 如:
a=[8,1,6;3,5,7;4,9,2];
b=[1,1,1;1,1,1;1,1,1];
c=conv2(a,b);
close all;
clear all;
clc;
s=imread('屏保.jpg');%读入原图像
i=rgb2gray(s)
i=double(i)
j=fft2(i); %傅里叶变换
k=fftshift(j); % 直流分量移到频谱中心
l=log(abs(k)); %对数变换
m=fftshift(j); %直流分量移到频谱中心
RR=real(m); %取傅里叶变换的实部
II=imag(m); %取傅里叶变换的虚部
A=sqrt(RR.^2+II.^2); %计算频谱府幅值
A=(A-min(min(A)))/(max(max(A)))*255; % 归一化
b=circshift(s,[800 450]); %对图像矩阵im中的数据进行移位操作
b=rgb2gray(b)
b=double(b)
c=fft2(b); %傅里叶变换
e=fftshift(c); % 直流分量移到频谱中心
l=log(abs(e)); %对数变换
f=fftshift(c); %直流分量移到频谱中心
WW=real(f); %取傅里叶变换的实部B
ZZ=imag(f); %取傅里叶变换的虚部
B=sqrt(WW.^2+ZZ.^2); %计算频谱府幅值
B=(B-min(min(B)))/(max(max(B)))*255; % 归一化
subplot(2,2,1);imshow(s);title('原图像')
subplot(2,2,2);imshow(uint8(b));;title('平移图像')
subplot(2,2,3);imshow(A);title('离散傅里叶频谱');
subplot(2,2,4);imshow(B);title('平移图像离散傅里叶频谱')
频谱不随图像平移而改变
close all;
clear all;
clc;
s=imread('屏保.jpg');%读入原图像
i=rgb2gray(s)
i=double(i)
j=fft2(i); %傅里叶变换
k=fftshift(j); % 直流分量移到频谱中心
l=log(abs(k)); %对数变换
m=fftshift(j); %直流分量移到频谱中心
RR=real(m); %取傅里叶变换的实部
II=imag(m); %取傅里叶变换的虚部
A=sqrt(RR.^2+II.^2); %计算频谱府幅值
A=(A-min(min(A)))/(max(max(A)))*255; % 归一化
b=imrotate(s, -90); %对图像矩阵im中的数据进行移位操作
b=rgb2gray(b)
b=double(b)
c=fft2(b); %傅里叶变换
e=fftshift(c); % 直流分量移到频谱中心
l=log(abs(e)); %对数变换
f=fftshift(c); %直流分量移到频谱中心
WW=real(f); %取傅里叶变换的实部B
ZZ=imag(f); %取傅里叶变换的虚部
B=sqrt(WW.^2+ZZ.^2); %计算频谱府幅值
B=(B-min(min(B)))/(max(max(B)))*255; % 归一化
subplot(2,2,1);imshow(s);title('原图像')
subplot(2,2,2);imshow(uint8(b));;title('平移图像')
subplot(2,2,3);imshow(A);title('离散傅里叶频谱');
subplot(2,2,4);imshow(B);title('平移图像离散傅里叶频谱')