數字影像處理學習筆記(1)——傅立葉變換在影像處理中的應用
1.理解二維傅立葉變換的定義
1.1二維傅立葉變換
二維Fourier變換:
逆變換:
1.2二維離散傅立葉變換
一個影像尺寸為M×N的 函式的離散傅立葉變換由以下等式給出:
其中 和。其中變數u和v用於確定它們的頻率,頻域系統是由所張成的座標系,其中和用做(頻率)變數。空間域是由f(x,y)所張成的座標系。可以得到頻譜系統在頻譜圖四角處沿和方向的頻譜分量均為0。
離散傅立葉逆變換由下式給出:
令R和I分別表示F的實部和需部,則傅立葉頻譜,相位角,功率譜(幅度)定義如下:
1.3用FFT計算二維離散傅立葉變換
二維離散傅立葉變換的定義為:
二維離散傅立葉變換可通過兩次一維離散傅立葉變換來實現:
1)作一維N點DFT(對每個m做一次,共M次)
2)作M點的DFT(對每個k做一次,共N次)
這兩次離散傅立葉變換都可以用快速演算法求得,若M和N都是2的冪,則可使用基二FFT演算法,所需要乘法次數為
而直接計算二維離散傅立葉變換所需的乘法次數為(M+N)MN,當M和N比較大時用用FFT運算,可節約很多運算量。
1.3影像傅立葉變換的物理意義
影像的頻率是表徵影像中灰度變化劇烈程度的指標,是灰度在平面空間上的梯度。如:大面積的沙漠在影像中是一片灰度變化緩慢的區域,對應的頻率值很低;而對於地表屬性變換劇烈的邊緣區域在影像中是一片灰度變化劇烈的區域,對應的頻率值較高。傅立葉變換在實際中有非常明顯的物理意義,設f是一個能量有限的模擬訊號,則其傅立葉變換就表示f的頻譜。從純粹的數學意義上看,傅立葉變換是將一個函式轉換為一系列周期函式來處理的。從物理效果看,傅立葉變換是將影像從空間域轉換到頻率域,其逆變換是將影像從頻率域轉換到空間域。換句話說,傅立葉變換的物理意義是將影像的灰度分佈函式變換為影像的頻率分佈函式。傅立葉逆變換是將影像的頻率分佈函式變換為灰度分佈函式。傅立葉變換以前影像(未壓縮的點陣圖)是由對在連續空間(現實空間)上的取樣得到一系列點的集合,通常用一個二維矩陣表示空間上各點,記為z=f(x,y)。又因空間是三維的,影像是二維的,因此空間中物體在另一個維度上的關係就必須由梯度來表示,這樣我們才能通過觀察影像得知物體在三維空間中的對應關係。
傅立葉頻譜圖上我們看到的明暗不一的亮點,其意義是指影像上某一點與鄰域點差異的強弱,即梯度的大小,也即該點的頻率的大小(可以這麼理解,影像中的低頻部分指低梯度的點,高頻部分相反)。一般來講,梯度大則該點的亮度強,否則該點亮度弱。這樣通過觀察傅立葉變換後的頻譜圖,也叫功率圖,我們就可以直觀地看出影像的能量分佈:如果頻譜圖中暗的點數更多,那麼實際影像是比較柔和的(因為各點與鄰域差異都不大,梯度相對較小);反之,如果頻譜圖中亮的點數多,那麼實際影像一定是尖銳的、邊界分明且邊界兩邊畫素差異較大的。
對頻譜移頻到原點以後,可以看出影像的頻率分佈是以原點為圓心,對稱分佈的。將頻譜移頻到圓心除了可以清晰地看出影像頻率分佈以外,還有一個好處,它可以分離出有周期性規律的干擾訊號,比如正弦干擾。一幅頻譜圖如果帶有正弦干擾,移頻到原點上就可以看出,除了中心以外還存在以另一點為中心、對稱分佈的亮點集合,這個集合就是干擾噪音產生的。這時可以很直觀的通過在該位置放置帶阻濾波器消除干擾。
2.二維傅立葉變換有哪些性質
2.1二維離散傅立葉變換的性質
1)分離性
二維離散傅立葉變換具有分離性
分離性質的主要優點是可藉助一系列一維傅立葉變換分兩步求得。第1步,沿著的每一行取變換,將其結果乘以1/N,取得二維函式;第2步,沿著的每一列取變換,再將結果乘以1/N,就得到了。這種方法是先行後列。如果採用先列後行的順序,其結果相同。
如圖:
對逆變換f(x,y)也可以類似地分兩步進行。
2)平移性
傅立葉變換和逆變換對的位移性質是指:
由乘以指數項並取其乘積的傅立葉變換,使頻率平面的原點位移至。同樣地,以指數項乘以並取其反變換,將空間域平面的原點位移至當N/2時,指數項為:
即為
這樣,用(x+y)乘以就可以將的傅立葉變換原點移動到N*N頻率方陣的中心,這樣才能看到整個譜圖。另外,對的平移不影響其傅立葉變換的幅值。
此外,與連續二維傅立葉變換一樣,二維離散傅立葉變換也具有周期性、共軛對稱性、線性、旋轉性、相關定理、卷積定理、比例性等性質。這些性質在分析及處理影像時有重要意義。
2.2二維離散傅立葉變換影像性質
1、影像經過二維傅立葉變換後,其變換系數矩陣具有如下性質:若變換矩陣原點設在中心,其頻譜能量集中分佈在變換系數短陣的中心附近(圖中陰影區)。若所用的二維傅立葉變換矩陣的原點設在左上角,那麼影像訊號能量將集中在係數矩陣的四個角上。這是由二維傅立葉變換本身性質決定的。同時也表明一股影像能量集中低頻區域。
2、影像灰度變化緩慢的區域,對應它變換後的低頻分量部分;影像灰度呈階躍變化的區域,對應變換後的高頻分量部分。除顆粒噪音外,影像細節的邊緣、輪廓處都是灰度變化突變區域,它們都具有變換後的高頻分量特徵。
3.任給一幅影像,對其進行二維傅立葉變換和逆變換
原圖 |
二維傅立葉變換 |
逆變換 |
頻譜圖 |
原圖 | 加入高斯噪聲 | 計入椒鹽噪聲 |
對高斯噪聲中值濾波 | 對椒鹽噪聲中值濾波 | |
對高斯噪聲算術均值濾波 | 對椒鹽噪聲算術均值濾波 |
4.附錄
4.1matlab程式碼
[i,lcmp]=imread('F:/123.jpg');%=======讀取影像 顯示影像
subplot(2,2,1),imshow(i,lcmp);
title('original');
ii=im2double(i); %=====將影像矩陣型別轉換為double(影像計算很多是不能用整型的),沒有這個會報錯!! ,如果不用這個就必須轉化為灰度圖!
i1 = fft2(ii); %======傅立葉變換
i2 =fftshift(i1); %======將變換的頻率影像四角移動到中心(原來良的部分在四角 現在移動中心,便於後面的處理)
i3=log(abs(i2)); %=====顯示中心低頻部分,加對數是為了更好的顯示
subplot(2,2,2),imshow(i3,[]);
title('Fourier');
map=colormap(lcmp); %===取色譜
imwrite(i3,map,'f:/ffttank.bmp'); %===將上面i3輸入到ffttank檔案中
i5 = real(ifft2(ifftshift(i2))); %===頻域的圖反變換到空域 並取實部
i6 = im2uint8(mat2gray(i5)); %===取其灰度圖
imwrite(i6,map,'f:/tank2.bmp','bmp'); %===利用灰度圖和原來取得顏色模板 還原影像
subplot(2,2,3),imshow(i6);
title('anti-Fourier');
i7=rgb2gray(i);
i8=fft2(i7);%===對灰色圖才能歸一化。因為那是2維矩陣,彩色圖是3維矩陣,需要轉化為2維灰圖
m=fftshift(i8); %直流分量移到頻譜中心
%RR=real(m); %取傅立葉變換的實部
%II=imag(m); %取傅立葉變換的虛部
A=abs(m);%計算頻譜幅值
%A=sqrt(RR.^2+II.^2);
A=(A-min(min(A)))/(max(max(A))-min(min(A)))*225; %歸一化
subplot(2,2,4),imshow(A); %顯示原影像
colorbar; %顯示影像的顏色條
title('FFT spectrum'); %影像命名
2)DEMO2m=imread('F:/123.jpg');
M=rgb2gray(m); %==濾波函式都是對二維灰度圖,Tif可直接濾波
subplot(3,3,1)
imshow(M);%顯示原始影像
title('original')
P1=imnoise(M,'gaussian',0.02); %加入高斯躁聲
subplot(3,3,2)
imshow(P1) %加入高斯躁聲後顯示影像
title('gaussian noise');
P2=imnoise(M,'salt & pepper',0.02); %=加入椒鹽躁聲
subplot(3,3,3)
imshow(P2) %%加入椒鹽躁聲後顯示影像
title('salt & pepper noise');
g=medfilt2(P1); %對高斯躁聲中值濾波
subplot(3,3,5)
imshow(g)
title('medfilter gaussian')
h=medfilt2(P2); %對椒鹽躁聲中值濾波
subplot(3,3,6)
imshow(h)
title('medfilter salt & pepper noise')
l=[1 1 1 %對高斯躁聲算術均值濾波
1 1 1
1 1 1];
l=l/9;
k=conv2(P1,l);
subplot(3,3,8)
imshow(k,[])
title('arithmeticfilter gaussian')
%對椒鹽躁聲算術均值濾波
d=conv2(P2,l);
subplot(3,3,9)
imshow(d,[])
title('arithmeticfilter salt & pepper noise')
4.2參考文獻
[1]孟凡文, 吳祿慎.基於FTP的二維傅立葉變換的研究.鐳射與紅外.第38卷第9期 2008年9月
[2] 董健,鄧國輝,李金武. 基於二維傅立葉變換實現影像變換的研究. 福建電腦. 2015年第 9期
原文連結:http://www.cnblogs.com/tenderwx/p/5245859.html相關文章
- 傅立葉在影像處理應用
- 【影像處理筆記】小波變換筆記
- OpenCV影像處理學習筆記-Day1OpenCV筆記
- 【傳統影像處理】1 數字影像基礎
- 數字影像處理相關練習
- 數字影像處理day_12 影像分割
- 數字影像處理實驗(四)影像銳化
- 數字影像處理--認識影像各種概念
- Python 影像處理 OpenCV (5):影像的幾何變換PythonOpenCV
- 數字影像處理讀書筆記(三)直方圖匹配筆記直方圖
- OpenCV3影像處理筆記OpenCV筆記
- 影象處理1--傅立葉變換(Fourier Transform )ORM
- 影像處理--影像特效特效
- [00]數字影像處理-matlab速成Matlab
- 影像的灰度變換——影像旋轉、影像的反色處理、對比度拉伸
- webgl 影像處理2---影像畫素處理Web
- openCV中的影像處理 3 影像閾值OpenCV
- 形態學影像處理
- Python 影像處理 OpenCV (6):影像的閾值處理PythonOpenCV
- 數字影像處理-取樣量化(Matlab)Matlab
- visual C++數字影像處理類C++
- 個人實驗程式碼記錄 | 數字影像處理實驗3·影像直方圖與均衡化處理直方圖
- Python影像處理丨5種影像處理特效Python特效
- MATLAB數字影象處理(一)基礎操作和傅立葉變換Matlab
- 影像處理筆試面試題筆試面試題
- 影像預處理
- Python 影像處理 OpenCV (7):影像平滑(濾波)處理PythonOpenCV
- 淺析機器視覺在醫療影像處理中的應用視覺
- 形態學影像處理(二)
- MatLab 基本影像處理(3)——函式變換Matlab函式
- 影像處理或其他多媒體處理中的值溢位處理
- 影像處理的實現與應用(Ruby 版)
- 影像處理的實現與應用(Swift 版)Swift
- 影像處理的實現與應用(TypeScript 版)TypeScript
- 影像處理的實現與應用(PHP 版)PHP
- 影像處理的實現與應用(Elixir 版)
- 深度學習之影像處理與分析(二)深度學習
- FPGA影片、影像處理應用方向培訓FPGA