初学者:怎样用MATLAB编程实现图像的傅立叶变换并显示出来啊?谢谢了
I=imread(lena.bmp);
I=rgb2gray(I);
fftI=fft2(I);%二维离散傅立叶变换
sfftI=fftshift(fftI);%直流分量移到频谱中心
RR=real(sfftI);%取傅立叶变换的实部
II=imag(sfftI);%取傅立叶变换的虚部
A=sqrt(RR.^2+II.^2);%计算频谱幅值
B=(A-min(min(A)))./(max(max(A))-min(min(A)))*225;%归一化
pha=angle(fftI);
figure(1)%设定窗口
subplot(1,4,1),imshoW(I);title(原图);
subplot(1,4,2),imshow(B);title(原图像的频谱);%显示原图像的频谱
subplot(1,4,3),imshow(log(B),[]);title(原图像的频谱);%显示原图像的频谱
subplot(1,4,4),imshow(pha);title(相位谱)
figure(2)
x=abs(ifft2(fftI));
magif=ifft2(abs(fftI));
phaif=ifft2(exp(1i*pha));
subplot(1,3,1),imshow(phaif,[]);title(相位谱重建图像);
subplot(1,3,2),imshow(x,[]);title(频谱重建原图像)
subplot(1,3,3),imshow(magif,[]);title(幅度谱重建图像)
经典C图像编程:放礼花
c语言编程 菱形图象
#include #define n 4int main(void){int i, j, k = 1, c = a;for(i = 0; i >= 0; i += k, ++c){for(j = 0; j < n-i; ++j)putchar( );for(j = 0; j < 2*i+1; ++j)putchar(c);putchar(\n);if(i == n) k = -1;}return 0;}