二维数组反卷积

3

有一个表示图像的2D数组a和表示点扩散函数的卷积核k。调用scipy.signal.deconvolve时,由于内部调用的lfilter函数返回"对象太深,不符合所需的数组"错误。1D数组工作得很好。如何解决这个问题?

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)
1个回答

4

这是因为scipy.signal.deconvolve()只支持1D解卷积!不幸的是,文档对此事并不清楚。

查看这个答案以获取频域2D解卷积。


谢谢,我确实没有意识到。我会尝试使用另一个线程中的代码。 - Faultier

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接