1.图像的傅里叶变换一(平移性质)
傅里叶变换的平移性质表明了函数与一个指数项相乘等于将变换后的空域中心移到新的位置,并且平移不改变频谱的幅值。
I=imread('1.bmp'); figure(1) imshow(real(I)); I=I(:,:,3); fftI=fft2(I); sfftI=fftshift(fftI); %求离散傅里叶频谱 %对原始图像进行二维离散傅里叶变换,并将其坐标原点移到频谱图中央位置 RRfdp1=real(sfftI); IIfdp1=imag(sfftI); a=sqrt(RRfdp1.^2+IIfdp1.^2); a=(a-min(min(a)))/(max(max(a))-min(min(a)))*225; figure(2) imshow(real(a)); I=imread('2.bmp'); figure(1) imshow(real(I)); I=I(:,:,3); fftI=fft2(I); sfftI=fftshift(fftI); %求离散傅里叶频谱 %对原始图像进行二维离散傅里叶变换,并将其坐标原点移到频谱图中央位置 RRfdp1=real(sfftI); IIfdp1=imag(sfftI); a=sqrt(RRfdp1.^2+IIfdp1.^2); a=(a-min(min(a)))/(max(max(a))-min(min(a)))*225; figure(2) imshow(real(a)); I=imread('3.bmp'); figure(1) imshow(real(I)); I=I(:,:,3); fftI=fft2(I); sfftI=fftshift(fftI); %求离散傅里叶频谱 %对原始图像进行二维离散傅里叶变换,并将其坐标原点移到频谱图中央位置 RRfdp1=real(sfftI); IIfdp1=imag(sfftI); a=sqrt(RRfdp1.^2+IIfdp1.^2); a=(a-min(min(a)))/(max(max(a))-min(min(a)))*225; figure(2) imshow(real(a));
实验结果符合傅里叶变换平移性质
2.图像的傅里叶变换二(旋转性质)
%构造原始图像 I=zeros(256,256); I(88:168,124:132)=1; %图像范围是256*256,前一值是纵向比,后一值是横向比 imshow(I) %求原始图像的傅里叶频谱 J=fft2(I); F=abs(J); J1=fftshift(F);figure imshow(J1,[5 50]) %对原始图像进行旋转 J=imrotate(I,90,'bilinear','crop'); figure imshow(J) %求旋转后图像的傅里叶频谱 J=fft2(I); F=abs(J); J2=fftshift(F);figure imshow(J2,[5 50])
3.图像的离散余弦变换一
%对cameraman.tif文件计算二维DCT变换 RGB=imread('cameraman.tif'); figure(1) imshow(RGB) I=rgb2gray(RGB); %真彩色图像转换成灰度图像 J=dct2(I); %计算二维DCT变换 figure(2) imshow(log(abs(J)),[]) %图像大部分能量集中在左上角处 figure(3); J(abs(J)<10)=0; %把变换矩阵中小于10的值置换为0,然后用idct2重构图像 K=idct2(J)/255; imshow(K)
4.图像的离散余弦变换二
% I=imread('1.bmp'); % figure(1) % imshow(real(I)); % I=I(:,:,3); % fftI=fft2(I); % sfftI=fftshift(fftI); %求离散傅里叶频谱 % %对原始图像进行二维离散傅里叶变换,并将其坐标原点移到频谱图中央位置 % RRfdp1=real(sfftI); % IIfdp1=imag(sfftI); % a=sqrt(RRfdp1.^2+IIfdp1.^2); % a=(a-min(min(a)))/(max(max(a))-min(min(a)))*225; % figure(2) % imshow(real(a)); % I=imread('2.bmp'); % figure(1) % imshow(real(I)); % I=I(:,:,3); % fftI=fft2(I); % sfftI=fftshift(fftI); %求离散傅里叶频谱 % %对原始图像进行二维离散傅里叶变换,并将其坐标原点移到频谱图中央位置 % RRfdp1=real(sfftI); % IIfdp1=imag(sfftI); % a=sqrt(RRfdp1.^2+IIfdp1.^2); % a=(a-min(min(a)))/(max(max(a))-min(min(a)))*225; % figure(2) % imshow(real(a)); % I=imread('3.bmp'); % figure(1) % imshow(real(I)); % I=I(:,:,3); % fftI=fft2(I); % sfftI=fftshift(fftI); %求离散傅里叶频谱 % %对原始图像进行二维离散傅里叶变换,并将其坐标原点移到频谱图中央位置 % RRfdp1=real(sfftI); % IIfdp1=imag(sfftI); % a=sqrt(RRfdp1.^2+IIfdp1.^2); % a=(a-min(min(a)))/(max(max(a))-min(min(a)))*225; % figure(2) % imshow(real(a));