我想在python中實現一些將圖像轉換爲其傅立葉域的功能,反之亦然,以實現圖像處理任務。
我使用重複的1D-DFT實現了2D-DFT,並且它工作得很好,但是當我試圖使用重複的反向1D-DFT實現2D反向DFT時,出現了一些奇怪的問題 - 當我將圖像轉換爲其傅里葉域時,然後再返回到圖像域,它看起來像圖像被反射,並與它的反射合併,如在這裏可以看到:使用1D變換實現二維逆傅里葉變換
這是輸入:
這就是輸出
這是負責亂七八糟的功能:
def IDFT2(fourier_image):
image = np.zeros(fourier_image.shape)
for col in range(image.shape[1]):
image[:, col] = IDFT1(fourier_image[:, col])
for row in range(image.shape[0]):
image[row, :] = IDFT1(image[row,:])
return image
我做了什麼錯?我非常肯定IDFT1可以正常工作,常規2D-DFT也是如此。
爲什麼你有你的結果IDFT1(fourier_image [:,col])列和IDFT1(圖像[行,:])行而不是IDFT1(fourier_image [row,:])?請爲IDFT1提供您的代碼。 – DimKoim
據我所知,在第二階段(行),我需要操作上一階段的輸出(colums通過)。我錯了嗎? –
@montecarlo您可能錯誤地編輯了圖像(我將它們添加回來)。在標記代碼中,'![bla bla] [1]'意味着從鏈接列表中首次鏈接到圖像。 '!'表示沒有它的圖像只是鏈接 – Spektre