光電實驗 | 空間濾波的數值模擬
實驗儀器
Matlab 2018a
實驗目的
理解空間頻率的分佈特性
掌握空間濾波的基本方法;
學會利用Matlab程式設計來實現空間濾波的過程。
物理模型
由阿貝原理可知,物體成像的過程本質上就是兩次傅立葉變換,這可以透過 由兩個透鏡組成的4f系統實現。第一個透鏡起的作用就是把光場的空間分佈變 成頻率分佈,而第二個透鏡的作用則是又一次傅立葉變換,將其還原到空間分佈。 如圖1所示,當物體置於透鏡的前焦面時,若有光波透過,則在透鏡的後焦面上 會形成影象的二維傅立葉變換。
在焦平面上,表示物體精細程度的空間頻率為
從空間頻率的表示式可以看出,在焦平面中心處,也就是xf和yf的取值較小的區域,空間頻率較小,這部分對應著物體中較為平緩的部分。距離焦平面中心較遠的區域,也就 是xf和yf的取值較大的區域,空間頻率較大,這部分對應著物體屮的細節部分。 因此透過在焦平面上放置不同形狀的光闌,使得不同區域的空間頻率成分透過, 可以起到低通濾波、高通濾波、帶通濾波的效果。如遮擋焦平面的中心部分,使 得高頻分量透過,則會呈現物體的細節邊緣部分,如允許焦平面中心部分通光, 使得低頻分量透過,則會呈現物體的模糊像,如圖2所示。圖3給出了不同空間 濾波器的示意圖。本實驗目的在於利用Matlab程式設計,實現對影象的空間濾波。
實驗內容
1.實現程式碼
clear
all
close
all
fig1
=
imread
(
‘img-6e3626f3f2ab583b1f361713358861d3。jpg’
);
fig2
=
fig1
(:,:,
2
);
figure
(
1
)
imagesc
(
fig2
)
colormap
gray
fftfig2
=
fftshift
(
fft2
(
fig2
));
figure
(
2
)
imagesc
(
log
(
abs
(
fftfig2
)))
colormap
jet
y
=[
-
599
:
600
];
x
=[
-
468
:
469
];
[
X
,
Y
]=
meshgrid
(
x
,
y
);
r
=
sqrt
(
X
。^
2
+
Y
。^
2
);
C1
=
Y
<
20
;
C2
=
Y
>-
20
;
C3
=
C1
。*
C2
;
fftfig3
=
C3
。*
fftfig2
;
figure
(
3
)
imagesc
(
log
(
abs
(
fftfig3
)))
colormap
jet
ifftfig3
=
ifft2
(
fftfig3
);
figure
(
4
)
imagesc
(
abs
(
ifftfig3
))
colormap
gray
C1
=
X
<
20
;
C2
=
X
>-
20
;
C3
=
C1
。*
C2
;
fftfig3
=
C3
。*
fftfig2
;
figure
(
5
)
imagesc
(
log
(
abs
(
fftfig3
)))
colormap
jet
ifftfig3
=
ifft2
(
fftfig3
);
figure
(
6
)
imagesc
(
abs
(
ifftfig3
))
colormap
gray
2.模擬結果
思考題
1。 改變濾波器的孔徑大小,觀察濾波效果的變化。
答:對於低通濾波器,隨改變濾波器的孔徑變大,影象整體越來越清晰。對於高通濾波器,隨改變濾波器的孔徑變大,影象邊緣(細節)越來越清晰。
2。 將影象頻譜擋住3/4部分,進行逆傅立葉變換,觀察影象效果。
答:將影象頻譜擋住3/4部分,進行逆傅立葉變換,原圖資訊基本復現。
3。 嘗試將上學期作的空間濾波實驗用程式設計進行模擬。
答:在中心橫條紋濾波,復原圖縱向模糊。在中心豎條紋濾波,復原圖橫向模糊。說明對頻譜進行濾波處理,效果會作用在空間域正交方向上。