图像处理--傅里叶图像及傅里叶变换

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiaguangzhiying/article/details/16864287

二维离散傅里叶变换的旋转性
源码如下:
>> clear
>> %构造原始图像
 I=zeros(256,256);
I(28:228,108:148)=1;
subplot(2,2,1),imshow(I);
 
 
%求原始图像的傅里叶频谱
J=fft2(I);
F=abs(J);
J1=fftshift(F);
subplot(2,2,2),imshow(J1,[5,50]);
 
 
 %对原始图像进行旋转
 K=imrotate(I,315,'bilinear','crop');
subplot(2,2,3),imshow(K);
 
 
 %求旋转后图像的傅里叶频谱
K1=fft2(K);
F=abs(K1);
K2=fftshift(F);
subplot(2,2,4),imshow(K2,[5,50]);
 
 
%加标题,可以加在subplot之后。
subplot(2,2,1),title('原始图像');
subplot(2,2,2),title('原图像的傅里叶频谱');
subplot(2,2,3),title('旋转后的图像');
subplot(2,2,4),title('旋转后图像的傅里叶频谱');
代码结果图像:



>> clear;
>> I=imread('C:\Users\hling\Desktop\1410575439.png');
>> figure(1)
>> imshow(real(I));
>> I=I(:,:,3);
>> fftI=fft2(I);
>> sfftI=fftshift(fftI);
>> RRfdp=real(sfftI);
>> IIfdp=imag(sfftI);%取其实部和虚部
>> a=sqrt(RRfdp.^2+IIfdp.^2);
>> a=(a-min(min(a)))/(max(max(a))-min(min(a)))*225;%归一化
>> subplot(2,2,1),imshow(real(a));
>> b=angle(fftI);
>> subplot(2,2,2),imshow(real(b));
>> theta=30;
>> RR1=a*cos(theta);
>> II1=a*sin(theta);
>> fft
Error using fft
Not enough input arguments.
 
>> fftI1=RR1+i.*II1;
>> C=ifft2(fftI1)*255;
>> subplot(2,2,3),imshow(real(C));
>> 
>> mm=150;
>> RR2=mm*cos(angle(fftI));
>> II2=mm*sin(angle(fftI));
>> fftI2=RR2+i.*II2;
>> D=ifft2(fftI2);
>> subplot(2,2,4),imshow(real(D));
>> subplot(2,2,1),title('幅值谱');
>> subplot(2,2,2),title('相位谱');
>> subplot(2,2,3),title('幅值谱重构图像');
>> subplot(2,2,4),title('相位谱重构图像');


展开阅读全文

没有更多推荐了,返回首页