2017-04-16 75 views
0

我想對Scilab中的圖像執行2D解卷積。我似乎無法找到它的內置功能。任何人都可以將我指向正確的方向嗎?如何在Scilab中執行解卷積

謝謝。

+0

你想用2D去卷積實現什麼? (例如模板匹配?)您使用了什麼工具箱? IPD,SIVP?你檢查過'conv','convol','convol2d'功能嗎? – Attila

+0

我需要執行反捲積以從模糊和近似原始圖像中獲取模糊內核。我正在使用SIVP。我似乎無法在scilab 5.5原子封裝管理器中找到IPD。 – xSooDx

+1

我使用5.4.1和5.5.1的IPD,但它不適用於5.5.2(請注意:此列表並非詳盡無遺,只是我現在在我的機器上安裝的版本)。我建議嘗試5.4.1。 – Attila

回答

2

This儘管使用了Matlab,但它提供了一個使用二維傅里葉變換去卷積的例子。

總體思路如下。零擴展兩個圖像 - 在m×m和n×n個圖像的情況下,兩者都應該填零到m + n-1×m + n-1。 對每個零擴展圖像進行二維傅里葉變換,按照元素方式進行分割,然後進行二維傅立葉逆變換。

零填充是防止循環卷積所必需的。可以使用fft2(m)或fftw(m,-1),其中m是圖像矩陣,而對於逆變換(在Matlab中稱爲ifft2),可以使用fftw(M,-1) ,1)。

+0

我曾嘗試過這種方式,但對於嘈雜的圖像效果不佳。另外我意識到我需要爲我的項目使用Richardson Lucy解卷積。 – xSooDx

+0

儘管我沒有使用RL算法的經驗,但在matlab中有一個爲它編寫的函數,看起來也適用於scilab,在這裏:http://stackoverflow.com/questions/9854312/how-does -richardson-露算法功代碼示例 – rob