7.3 一維離散傅利葉轉換反DFT

Download Report

Transcript 7.3 一維離散傅利葉轉換反DFT

第七章 傅利葉轉換
7.1 前言
• 傅利葉轉換是影像處理中重要的基礎,不但可
以做到用其他方式無法得到的結果,也比其他
方式來得有效率。
• 傅利葉轉換還是執行線性空間濾波的另一種有
效方式。
• 傅利葉轉換還可以用於擷取或處理特定影像頻
率,在執行低通和高通濾波時能得到更精確的
結果。
1
7.2 背景
2
圖 7.2
• 週期性函數可以寫成不同振幅和頻率的正弦波
和餘弦波之總和。
3
7.2 背景
• 傅利葉級數(Fourier series)
其中
• f這就是(x) 的傅利葉級數展開(Fourier series
expansion),也可用複數形式表示。
4
7.2 背景
• 若函數為非週期性,則可設T → ∞ 類似結果,則:
• 傅利葉轉換對組(Fourier transform pair)。
5
7.3 一維離散傅利葉轉換
6
7.3 一維離散傅利葉轉換
• 7.3.1 一維DFT 的定義
此定義也可以矩陣乘積來表示:
其中F 是一個N×N 的矩陣,定義如下:
7
7.3 一維離散傅利葉轉換
當N 給定後,我們可以定義:
範例7.3.1 假設f = [1, 2, 3, 4],因此 N = 4。然後
8
7.3 一維離散傅利葉轉換
9
7.3 一維離散傅利葉轉換
•
反 DFT
–
若比較方程式(7.3) 與方程式(7.2),就會發現其實
只有三點不同:
1. 沒有縮放係數1/N。
2. 指數函數中的符號改為正號。
3. 總和索引變數為u,而非x。
10
7.3 一維離散傅利葉轉換
11
7.3 一維離散傅利葉轉換
12
7.4 一維離散傅利葉轉換的特性
• 線性
– 由DFT矩陣乘積的定義便可推論出此特性。
– 假設 f 和g是相同長度的兩個向量,p和q為純量,
令h = pf + qg
– 若F、G 及H 分別為f、g 與h 的DFT,則:
• 平移
– 將向量x的各個元素xn 乘以(−1)n,也就是每隔兩個
元素改變其正負號。
– 假設這樣產生的向量為x‘,x’的DFT X‘若將左右
兩邊互換,就和x的DFT x相等。
13
7.4 一維離散傅利葉轉換的特性
• 例子
14
7.4 一維離散傅利葉轉換的特性
注意:X的前四個元素是X1的末四個元素,反之亦
然。
15
7.4 一維離散傅利葉轉換的特性
• 縮放
– 公式中 k 為純量,且 F = f。
– 此性質意味如果你將一個函數在 x 方向上放大,則
其頻譜在 x 方向上便會縮小。
– 強度也會改變。
• 共軛對稱
• 旋積
16
7.4 一維離散傅利葉轉換的特性
• 快速傅利葉轉換
17
7.5 二維離散傅利葉轉換
• 在二維下,DFT 的輸入為矩陣,輸出為同樣大
小的另一個矩陣。
18
7.5.1 二維傅利葉轉換的一些特性
• 相似性
• DFT 當成空間濾波器使用
• 分離性
19
7.5.1 二維傅利葉轉換的一些特性
•
•
線性
旋積定理
–
要使用空間濾波器S對影像M進行旋積計算
1. 將S 補零至與M 同大小,補零的結果記為S'。
2. 計算M 和S' 的DFT,得到 (M) 和 (S')。
3. 將兩個轉換的元素一個個相乘:
4. 將結果帶入反轉轉換:
–
20
簡單地說,旋積定理可寫成:
或
7.5.1 二維傅利葉轉換的一些特性
• DC係數
• 平移
DC 係數
DC 係數
21
7.5.1 二維傅利葉轉換的一些特性
• 共軛對稱
• 顯示DFT轉換的結果
fft,計算向量的DFT。
ifft,計算向量的反DFT。
fft2,計算矩陣的DFT。
ifft2,計算矩陣的反DFT。
fftshift,如圖7.7 所示,平移轉換。
22
7.6 MATLAB中的傅利葉轉換
• 範例7.6.1
DC 係數正是所有矩陣值的總和。
23
7.6 MATLAB中的傅利葉轉換
• 範例7.6.2
24
7.6 MATLAB中的傅利葉轉換
• 範例7.6.3
25
7.7 影像之傅利葉轉換
26
圖 7.10
27
圖 7.11
28
圖 7.12
29
圖 7.13
• 範例7.7.2
30
圖 7.14
• 範例7.7.3
31
圖 7.15
• 範例7.7.4
32
7.7 影像之傅利葉轉換
33
7.8 頻率域的濾波
• 7.8.1 理想濾波
– 低通濾波
34
圖 7.16
35
圖 7.17
D = 15
36
圖 7.18
D=5
37
D = 30
7.8 頻率域的濾波
– 高通濾波
38
圖 7.19
39
圖 7.20
40
7.8.2 Butterworth 濾波
– 理想濾波器直接切除傅利葉轉換距中心某個距離
外的部分。
– 這種截頻點的使用十分方便,但缺點是結果會產
生不必要的瑕疵(波紋)。
– 要避免這種現象,可使用截頻點較不銳利的圓形
當作濾波矩陣。
41
圖 7.21
42
圖 7.22 & 7.23
43
圖 7.24
44
圖 7.25
45
圖 7.26
>> bl = lbutter(c,15,1);
>> cfbl = cf.*bl;
>> figure, fftshow(cfbl, ’log’);
46
>> cfbli = ifft2(cfbl);
>> figure, fftshow(cfbli, ’abs’)
圖 7.27
47
7.8.3 高斯濾波
• 較寬的高斯函數、即較大的標準差,其最大值會
比較小。
48
圖 7.28
49
圖 7.29
50
7.9 同態濾波
i (x, y)為照明(illumination), r(x, y)為反射(reflectance)
51
7.9 同態濾波
52
圖 7.32
function res=homfilt(im,cutoff,order,lowgain,highgain)
% HOMFILT(IMAGE,FILTER) applies homomorphic filtering
% to the image IMAGE
% with the given parameters
u=im2uint8(im/256);
u(find(u==0))=1;
l=log(double(u));
ft=fftshift(fft2(l));
f=hb_butter(im,cutoff,order,lowgain,highgain);
b=f.*ft;
ib=abs(ifft2(b));
res=exp(ib);
53
圖 7.33
>>i=imread(‘newborn.tif’);
>>r=[1:256]’*ones(1,256);
>>x=double(i).*(0.5+0.4*sin((r-32)/16));
>>imshow(i);figure;imshow(x/256);
54
圖 7.34
>>xh=homfilt(x,10,2,0.5,2);
>>imshow(xh/16);
55
圖 7.35
>>
>>
>>
>>
56
a=imread('arch.tif');
figure;imshow(a);
a1=a(:,:,1);
figure;imshow(a1);
>> a2=double(a1);
>> ah=homfilt(a2,128,2,0.5,2);
>> figure;imshow(ah/14);