如何在Scilab中执行反卷积

时间:2017-04-16 17:17:25

标签: scilab deconvolution

我想在图像上对Scilab执行2D反卷积。我似乎无法找到它的内置功能。有人能指出我正确的方向吗?

感谢。

2 个答案:

答案 0 :(得分:2)

This帖子虽然使用了Matlab,却提供了使用2D傅里叶变换进行反卷积的示例。

总体思路如下。零延伸两个图像 - 在m x m和n x n图像的情况下,两者都应该零填充到m + n-1 x m + n-1。 对每个零扩展图像进行二维傅里叶变换,逐元素划分,然后进行逆二维傅里叶变换。

需要零填充以防止循环卷积。

对于2D正向变换,可以使用fft2(m)或fftw(m,-1),其中m是图像矩阵,而对于逆变换(在Matlab中称为ifft2),可以使用fftw(M, 1)。

答案 1 :(得分:0)

用于Scilab中的反卷积 代码是:-

y=[4,2,7,11,18,19,10,11,12,9,8]
h=[2,3,1,4,5,2,1]
subplot(3,1,2)
plot2d3(h)
z=%z
a=4*z^10+2*z^9+7*z^8+11*z^7+18*z^6+19*z^5+10*z^4+11*z^3+12*z^2+9*z^1+8
b=2*z^10+3*z^9+1*z^8+4*z^7+5*z^6+2*z^5+1*z^4
x=ldiv(a,b,7)
x=x'
N1=length(x)
n1=0:N1-1
subplot(3,1,3)
plot2d3(n1,x)

Denconvolution