2013-10-09 100 views
2

存在表示圖像a的2D陣列和表示點擴展函數k的內核。 scipy.signal.deconvolve從內部調用lfilter函數返回「對於所需數組太深的對象」。 1D陣列工作完美無瑕。這怎麼解決?解卷積2D陣列

import numpy as N 
import scipy.signal as SS 
# working 
# taken from: 
# http://stackoverflow.com/questions/17063775/convolution-and-deconvolution-in-python-using-scipy-signal 
a = N.array([ 0.5, 2.5, 6. , 9.5, 11. , 10. , 9.5, 11.5, 10.5, 
5.5, 2.5, 1. ]) 
k= N.array([0.5, 1.0, 0.5]) 
res1,res2 = SS.deconvolve(a, k) 
# not working 
a = N.ones((10,10)) 
k = N.array([[1,2],[2,1]]) 
res1, res2 = SS.deconvolve(a,k) 

回答

3

那麼,那將是因爲scipy.signal.deconvolve()只支持1D去卷積!不幸的是,文件不清楚這個事實。

查看頻域2D反捲積的this answer

+0

謝謝,我確實沒有意識到這一點。我將玩弄其他線程的代碼。 – Faultier