1旋轉圖像,並顯示圖像的傅里葉頻譜
1 I=zeros(256,256); 2 I(28:228,108:148)=1; 3 subplot(2,4,1); 4 imshow(I); 5 title('原始圖像'); 6 J=fft2(I);%對信號進行快速Fourier變換,注釋一 7 F=abs(J);%求得Fourier變換后的振幅,注釋二 8 J1=fftshift(F)%注釋三 9 subplot(2,4,2); 10 imshow(J1,[5 50]) 11 title('原圖像的傅里葉頻譜'); 12 J=imrotate(I,30,'bilinear','crop');%逆時針旋轉30度,注釋四 13 subplot(2,4,3); 14 imshow(J); 15 title('旋轉30度'); 16 J1=fft2(J); 17 F=abs(J1); 18 J2=fftshift(F); 19 subplot(2,4,4) 20 imshow(J2,[5 50]) 21 title('旋轉30度傅里葉頻譜'); 22 J=imrotate(I,60,'bilinear','crop');%逆時針旋轉60度 23 subplot(2,4,5); 24 imshow(J); 25 title('旋轉60度后'); 26 J1=fft2(J); 27 F=abs(J1); 28 J2=fftshift(F); 29 subplot(2,4,6) 30 imshow(J2,[5 50]) 31 title('旋轉60度傅里葉頻譜'); 32 J=imrotate(I,90,'bilinear','crop');%逆時針旋轉90度 33 subplot(2,4,7); 34 imshow(J); 35 title('旋轉90度后'); 36 J1=fft2(J); 37 F=abs(J1); 38 J2=fftshift(F); 39 subplot(2,4,8) 40 imshow(J2,[5 50]) 41 title('旋轉90度傅里葉頻譜');
2二維余弦正反變換
1 I=imread('C:\\Users\\Administrator\\Desktop\\lenagray.jpg'); 2 subplot(1,3,1) 3 imshow(I); 4 title('原始圖像') 5 J=dct2(I); 6 subplot(1,3,2) 7 imshow(log(abs(J)),[]); 8 title('余弦變換系數'); 9 k=idct2(J)/255; 10 subplot(133); 11 imshow(k); 12 title('余弦反變換恢復圖像');
3尺度變化
1 I=zeros(256,256); 2 I(8:248,110:136)=255; 3 figure(1); 4 imshow(I); 5 J3=fft2(I); 6 F2=abs(J3); 7 F3=fftshift(F2); 8 figure(2); 9 imshow(F3,[5 30]); 10 a=0.1; 11 12 for i=1:256 13 for j=1:256; 14 I(i,j)=I(i,j)*a; 15 end 16 end 17 J2=fft2(I); 18 F1=abs(J2); 19 J3=fftshift(F1); 20 figure(3); 21 imshow(J3,[5 30])
當f(x,y)在水平方向進行擴展,相同間隔下頻譜中u方向零點的數量也增加
4傅里葉變換實例
1 I=imread('D:/picture/lenagray.jpg'); 2 figure;imshow(I); 3 p=fft2(I); 4 p=fftshift(p); 5 figure;imshow(log(abs(p)),[8 10]); 6 I1=imnoise(I,'gaussian',0,0.01); 7 figure;imshow(I1); 8 p1=fft2(I); 9 p1=fftshift(p1); 10 figure;imshow(log(abs(p1)),[8 10]);


figure1是原圖figure2是原圖的傅里葉頻譜圖(已經移中),
figure3是加了高斯噪聲的lena圖,及其對應的頻譜圖。
有一些關於頻譜圖的結論:中心白色區域是低頻,但能量高,幅角大,中心之外的區域是黑色區域,對應的是高頻,能量幅度小,
對於圖像灰度變化緩慢的區域,對應它變換后的低頻分量部分;圖像灰度呈階躍變換的區域,對應變換后的高頻部分。除顆粒噪聲外,圖像細節的邊緣、輪廓處都是灰度變化突出區域。他們都具有變換后的高頻分量特征。我個人觀點是圖像的灰度值越小即越黑則對應的頻譜中心區域越小,高頻成分占的比重越高。
具體關於頻譜的內容可以看一下這兩篇博客

1 Load lena.mat; 2 Load boy.mat; 3 Jf=fft2(J1); 4 FAi=abs(If); 5 FPi=angle(If); 6 FAj=abs(Jf); 7 FPj=angle(Jf); 8 IR=FAi.*cos(FPj)+FAi.*sin(FPj).*i; 9 JR=FAj.*cos(FPi)+FAj.*sin(FPi).*i; 10 IR1=abs(ifft2(IR)); 11 JR1=abs(ifft2(JR)); 12 subplot(221) 13 imshow(I1); 14 title('男孩原圖像'); 15 subplot(222) 16 imshow(J1); 17 title('美女原圖像'); 18 subplot(223) 19 imshow(IR1,[]); 20 title('男孩的幅值譜和美女的相位譜組合'); 21 subplot(224) 22 imshow(JR1,[]); 23 title('美女的幅值譜和男孩的相位譜組合');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
注釋一:
1. Y = fft(y);
2. Y = fft(y,N);
式中,y是序列,Y是序列的快速傅里葉變換。y可以是一向量或矩陣,若y為向量,則Y是y的FFT,並且與y具有相同的長度。若y為一矩陣,則Y是對矩陣的每一列向量進行FFT。
注釋二:
注釋三:
fft是一維傅里葉變換,即將時域信號轉換為頻域信號fftshift是針對頻域的,將FFT的DC分量移到頻譜中心
即對頻域的圖像,(假設用一條水平線和一條垂直線將頻譜圖分成四塊)對這四塊進行對角線的交換與反對角線的交換
fft:對模擬信號進行變換,變換結果是左右對稱的,有負頻率,如下圖(a)中的作圖所示。
DFT的求和區間是0~N-1,DFT的物理意義是對fft的結果等間隔的采樣N點,但是人為的規定0~N-1使得只采樣了正頻率,和fft結果不一致。由於fft的對稱性或者說是周期性(見(b)的右圖),所以可以以DFT結果以Fs/2為中心, 把Fs/2頻率右半部分移到左半部分(即N/2~N-1)個點平移到負半軸,這樣的結果的形狀就同(a)中右面的圖一致了,這也即是fftshift的原因。。其實是為了與fft結果一致。
其他內容可參考:https://www.cnblogs.com/WHaoL/p/6595132.html
注釋四: