我需要一個很好的函數,它在Java程序中實現:ImageJ。 我需要了解那裏使用的算法。 該函數具有幾個參數: link textFFT應用圖像的帶通濾波器。 (像ImageJ帶通濾波器算法)
並且使用FFT之前將它轉換圖像以一個特殊的一個: 帶通濾波器使用一種特殊的算法,以減少邊緣僞影(傅立葉變換之前,將圖像的大小由擴展將圖像部分的鏡像副本附加在原始圖像之外,因此在邊緣處不會發生跳躍)
您能告訴我更多關於這種特殊轉換的信息嗎? 其實平鋪鏡像的圖像。
我正在寫C++,並希望在C++上重寫程序的這一部分。
EDIT1: 我需要了解它是如何做到平鋪鏡像的操作,可能是特殊的。實際上,首先它會將圖像轉換爲新尺寸的圖像,因此對於我的圖像來說,它將是:從600X480轉換爲1024X1024尺寸圖像的 。 這裏如何使用瓷磚?
EDIT2: 此外,它是很難理解tileMirrored功能的這樣的描述:
提出ImageProcessor(ROI)成大小爲寬度x高度y的新ImageProcessor在位置(x,y)的。圖像在其邊緣被鏡像以避免包圍FFT的效果。 什麼是「位置(x,y)處尺寸寬度x高度y」的意思。「?
編輯3: 我實現了這個帶通濾波器,它給出了與原始程序相同的結果。 但是,算法本身在原始程序(也在我的程序中)非常慢 我想在程序中不使用該過濾器,但每次調用大約需要0.5到2秒(取決於參數值)。 有一個FHT變換(不是FFT),它比FFT快嗎? 我覺得自己不是最優化的過濾器,請參閱filterLargeSmall功能實現: source code
你想知道如何實現整個帶通功能,或者只是位於邊緣的鏡像和瓦片? – tloflin 2010-04-05 16:17:18
我需要了解兩者,但平鋪與鏡像更重要,因爲其他事情我認爲更明顯的那一個。 我需要了解它是如何平鋪鏡像的圖像操作,可能是特殊的。實際上,首先它會將圖像轉換爲新尺寸的圖像,因此對於我的圖像來說,它將是:從600X480轉換爲1024X1024尺寸圖像的 。 這裏如何使用瓷磚? – maximus 2010-04-05 16:24:21