使用matlab创建旋转图像并画出傅立叶频谱

利用matlab生成图像,并对其进行旋转30度,60度和90度,观察原图的 与旋转后的傅立叶频谱的对应关系。用到的matlab函数为fft2,abs,fftshift,imrotate。

代码

%构造原始图像
I=zeros(256,256); I(88:168,124:132)=1;
subplot(2,4,1); imshow(I); title('原图像'); 
%原始图像的傅里叶频谱 
J=fftshift(abs(fft2(I)));
subplot(2,4,2); imshow(J,[5 50]); title('傅里叶频谱'); 
%对原始图像旋转30度 
I1=imrotate(I,30,'bilinear','crop');
subplot(2,4,3); imshow(I1); title('旋转30度'); 
%旋转30度后图像的傅里叶频谱 
J=fftshift(abs(fft2(I1))); 
subplot(2,4,4); imshow(J,[5 50]); title('旋转30度后的傅里叶频谱');
%对原始图像旋转60度 
I2=imrotate(I,60,'bilinear','crop'); 
subplot(2,4,5); imshow(I2); title('旋转60度'); 
%旋转60度后图像的傅里叶频谱 
J=fftshift(abs(fft2(I2))); 
subplot(2,4,6); imshow(J,[5 50]); title('旋转60度后的傅里叶频谱');
%对原始图像旋转90度
I3=imrotate(I,90,'bilinear','crop'); 
subplot(2,4,7); imshow(I3); title('旋转90度'); 
%旋转90度后图像的傅里叶频谱 
J=fftshift(abs(fft2(I3)));
subplot(2,4,8); imshow(J,[5 50]); title('旋转90度后的傅里叶频谱');

你可能感兴趣的:(杂谈)