2

我想在 Scilab 中对图像执行 2D 反卷积。我似乎找不到它的内置功能。谁能指出我正确的方向?

4

2 回答 2

2

这篇文章虽然使用了 Matlab,但提供了一个使用 2D 傅里叶变换的反卷积示例。

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

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

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

于 2017-04-23T01:28:39.320 回答
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)

反卷积

于 2020-12-10T07:26:02.867 回答