圖像傅里葉變換的幅度譜和相位譜的以及反變換

目的:讀取圖像 A(lena.tiff)和B(rice.tif),顯示這兩幅圖像,對圖像作傅立葉變換,顯示圖像的傅里葉幅度譜和相位譜。做傅立葉逆變換,顯示重建圖像。

圖像的頻率是表徵圖像中灰度變化劇烈程度的指標,是灰度在平面空間上的梯度

對圖像而言,圖像的邊緣部分是突變部分,變化較快,因此反應在頻域上是高頻分量;圖像的噪聲大部分情況下是高頻部分;圖像平緩變化部分則爲低頻分量。也就是說,傅立葉變換提供另外一個角度來觀察圖像,可以將圖像從灰度分佈轉化到頻率分佈上來觀察圖像的特徵。

imshow()函數:
imshwo()函數用於接收一個像素矩陣,顯示該圖像,其顯示的參數有兩種類型
unit8;像素在矩陣處理範圍爲0-255
double:若值大於1,轉化爲1,若小於1,轉化爲0

圖像進行二維傅立葉變換得到頻譜圖,就是圖像梯度的分佈圖,當然頻譜圖上的各點與圖像上各點並不存在一一對應的關係,即使在不移頻的情況下也是沒有。傅立葉頻譜圖上我們看到的明暗不一的亮點,實際是圖像上某一點與鄰域點差異的強弱,即梯度的大小,也即該點的頻率的大小(可以這麼理解,圖像中的低頻部分指低梯度的點,高頻部分相反)。
代碼如下:

%%圖像的傅里葉變換%%
imA=imread('rice.tif','tif'); %讀取圖像
imB=imread('lena.tiff','tif');
subplot(2,3,1);
imshow(imA);
title('原圖像A');
subplot(2,3,2);
imshow(imB);
title('原圖像B');
FA=fft2(imA);%對圖像進行傅里葉變換
FB=fft2(imB);
fA=fftshift(FA); %對圖像頻譜進行移動,是0頻率點在中心
fB=fftshift(FB);
sA=log(abs(fA));%獲得傅里葉變換的幅度譜
sB=log(abs(fB));
phA=log(angle(fA)*180/pi);%獲得傅里葉變換的相位譜
phB=log(angle(fB)*180/pi);
subplot(2,3,3);
imshow(sA,[]); %顯示圖像的度譜,參數與[]是爲了將sA的值線形拉伸
title('圖像A的傅里葉變換幅度譜');
subplot(2,3,4);
imshow(phA,[]); %顯示圖像傅里葉變換的相位譜
title('圖像A傅里葉變換的相位譜');
subplot(2,3,5);
imshow(sB,[])
title('圖像B的傅里葉變換幅度譜');
subplot(2,3,6);
imshow(phB,[]);
title('圖像B傅里葉變換的相位譜');
A=ifft2(FA);%傅里葉反變換
B=ifft2(FB);
figure
subplot(1,2,1);
imshow(A,[]);
title('傅里葉反變換得到的A圖像');
subplot(1,2,2);
imshow(B,[]);
title('傅里葉反變換的到的B圖像');

結果如下:
圖像傅裏變換

傅里葉反變換

發佈了42 篇原創文章 · 獲贊 26 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章