圖像變換


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圖,及其對應的頻譜圖。

有一些關於頻譜圖的結論:中心白色區域是低頻,但能量高,幅角大,中心之外的區域是黑色區域,對應的是高頻,能量幅度小,

對於圖像灰度變化緩慢的區域,對應它變換后的低頻分量部分;圖像灰度呈階躍變換的區域,對應變換后的高頻部分。除顆粒噪聲外,圖像細節的邊緣、輪廓處都是灰度變化突出區域。他們都具有變換后的高頻分量特征。我個人觀點是圖像的灰度值越小即越黑則對應的頻譜中心區域越小,高頻成分占的比重越高。

具體關於頻譜的內容可以看一下這兩篇博客

https://blog.csdn.net/Struggle_For_M/article/details/51207370
https://blog.csdn.net/ViatorSun/article/details/82387854
5相位譜交換,進行圖像重構。
 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  

 注釋四:

imrotate函數說明

調用格式

編輯
B = imrotate(A,angle)
B = imrotate(A,angle,method)
B = imrotate(A,angle,method,bbox)
   

調用格式說明

B = imrotate(A,angle)
將圖像A(圖像的數據矩陣)繞圖像的中心點旋轉angle度, 正數表示逆時針旋轉, 負數表示順時針旋轉。返回旋轉后的圖像矩陣。
B = imrotate(A,angle,method)
使用method參數可以改變插值算法,method參數可以為下面這三個值:
'nearest':最鄰近線性插值(Nearest-neighbor interpolation)
'bilinear':  雙線性插值(Bilinear interpolation)
'bicubic':  雙三次插值(或叫做雙立方插值)(Bicubic interpolation)
B = imrotate(A,angle,method,bbox)
bbox參數用於指定輸出圖像屬性:
'crop': 通過對旋轉后的圖像B進行裁剪, 保持旋轉后輸出圖像B的尺寸和輸入圖像A的尺寸一樣。
'loose': 使輸出圖像足夠大, 以保證 源圖像旋轉后超出 圖像尺寸范圍的像素值沒有丟失。 一般這種格式產生的圖像的尺寸都要大於源圖像的尺寸。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM