傅利葉變換

2021-08-25 05:31:44 字數 1539 閱讀 7326

傅利葉變換用於分析各種濾波器的頻率特性。對於影象,2d離散傅利葉變換(dft)用於找到頻域.快速傅利葉變換(fft)用於計算dft.

對於正弦訊號,x(t)= asin(2πft),我們可以說f是訊號的頻率,如果採用其頻域,我們可以看到f處的尖峰。

如果對訊號進行取樣以形成離散訊號,則得到相同的頻域,但在[-π,π]或[0,2π]範圍內是週期性的(對於n點dft,則是[0,n]).您可以將影象視為在兩個方向上取樣的訊號。因此,在x和y方向上進行傅利葉變換可以得到影象的頻率表示。

更直觀地說,對於正弦訊號,如果幅度在短時間內變化如此之快,則可以說它是高頻訊號。如果變化緩慢,則為低頻訊號。您可以將相同的想法擴充套件到影象.幅度在影象中的哪些地方幅度變化很大?在邊緣點,或噪音.們可以說,邊緣和雜訊是影象中的高頻內容。如果幅度沒有太大變化,則它是低頻分量.

np.fft.fft2()為我們提供了乙個複雜陣列的頻率變換。它的第乙個引數是輸入影象,它是灰度圖。第二個引數是可選的,它決定了輸出陣列的大小。如果它大於輸入影象的大小,則在計算fft之前用零填充輸入影象。如果小於輸入影象,則將裁剪輸入影象。如果沒有傳遞引數,則輸出陣列大小將與輸入相同。

現在,一旦得到結果,零頻率分量(dc分量)將位於左上角。

如果要將其置於中心位置,則需要在兩個方向上將結果移動n/2。通過函式np.fft.fftshift()來完成。找到頻率變換後,您可以找到幅度譜(the magnitude spectrum)。

具體例子請參考官網原文.

你可以在中心位置看到更多的白色區域,顯示更多的低頻內容。

所以你找到了頻率變換,現在你可以在頻域做一些操作,比如高通濾波和重建影象,即找到逆dft.為此,您只需通過使用尺寸為60x60的矩形視窗來移除低頻訊號.然後使用np.fft.ifftshift()應用反向移位,以便dc元件再次出現在左上角。然後使用np.ifft2()函式找到逆fft.結果再次是乙個複雜的數字。 你可以採取它的絕對值。

具體例子請參考官網原文.

結果顯示高通濾波是邊緣檢測操作。這是我們在image gradients章節中看到的.這也表明大多數影象資料存在於光譜的低頻區域.無論如何,我們已經看到如何在numpy找到dft,idft等。現在讓我們看看如何在opencv中完成它。

如果你仔細觀察結果,特別是jet顏色的最後乙個影象,你可以看到一些文物(我用紅色箭頭標記的乙個例項)。 它在那裡顯示出一些類似波紋的結構,它被稱為振鈴效應。它是由我們用於醃膜的矩形視窗引起的。 此醃膜轉換為sinc形狀,這會導致此問題。因此矩形視窗不用於過濾。 更好的選擇是高斯視窗

opencv為此提供了cv.dft()cv.idft()函式。 它返回與之前相同的結果,但有兩個通道。 第乙個通道將具有結果的實部,第二個通道將具有結果的虛部。 輸入影象應首先轉換為np.float32。

注意:opencv函式cv.dft()和cv.idft()比numpy函式更快。 但是numpy功能更加使用者友好。

傅利葉變換與快速傅利葉變換

作為電子資訊專業的學生老說,這個不知道,或者理解不清楚,是十分不應該的,作為乙個學渣,有時候確實是理解不清楚的 1 首先離散傅利葉變換目的 簡單點說 就是將乙個訊號從時域變換到頻域 標準點說 將以時間為自變數的訊號 與 頻率為自變數的頻譜函式之間的某種關係變換 數學描述 對於 n點序列 其中自然對數...

傅利葉變換

1 為什麼要進行傅利葉變換,其物理意義是什麼?傅利葉變換是數字訊號處理領域一種很重要的演算法。要知道傅利葉變換演算法的意義,首先要了解傅利葉原理的意義。傅利葉原理表明 任何連續測量的時序或訊號,都可以表示為不同頻率的正弦波訊號的無限疊加。而根據該原理創立的傅利葉變換演算法利用直接測量到的原始訊號,以...

傅利葉變換

傅利葉變換 1 傅利葉變化公式 f u,v symsum symsum f x,y exp j 2 pi u x m v y n 2 根據公式所寫 這個 的時間複雜度為 o n 2 算一幅 512 512 的影象的時間大概是2個小時,沒有實際應用價值,應該要採用快速傅利葉變換。銳化空間濾波器 頻率濾...