我想在 Scilab 中对图像执行 2D 反卷积。我似乎找不到它的内置功能。谁能指出我正确的方向?
问问题
680 次
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 回答