Matlab问题中使用FFT的2D反卷积

肖恩·詹姆斯·杰米森(Sean James Jamieson)

我用在Matlab中定义的2D高斯函数对在matlab中创建的图像进行了卷积运算,现在我试图对卷积矩阵进行反卷积,以查看是否可以使用fft2和ifft2命令将2D高斯函数返回。但是,据我所知矩阵是不正确的(据我所知)。这是到目前为止我所做的代码:

输入图像的百分比代码(img)[300x300阵列]

N = 100;
t = linspace(0,2*pi,50);
r = (N-10)/2;
circle = poly2mask(r*cos(t)+N/2+0.5, r*sin(t)+N/2+0.5,N,N);
img = repmat(circle,3,3);

c = 0 sig = 1/64(Z)的2D高斯函数的%代码[300x300数组]

x = linspace(-3,3,300);
y = x';
[X Y] = meshgrid(x,y);
Z = exp(-((X.^2)+(Y.^2))/(2*1/64));

使用Z(C)[599x599数组]进行img的2D卷积的%代码

C = conv2(img,Z);

%我已经使用img和C的截面轮廓矢量测试了这种卷积是正确的,并且得到的xy图是我期望的卷积。

%从我对卷积的了解来看,该算法在傅立叶空间中起乘法器的作用,因此通过将输出(卷积图像)的傅立叶变换除以我的输入(im​​g),我应该得到点扩散函数(Z-2D高斯函数) ),然后通过除法将傅里叶逆变换应用于此结果。

尝试进行2D反卷积的代码百分比

Fimg = fft2(img,599,599);

添加了%零填充以将结果增加到599x599阵列

FC = fft2(C);
R = FC/Fimg;

现在,我得到以下错误提示:警告:矩阵接近奇异或缩放错误。结果可能不正确。RCOND = 2.551432e-22

iFR = ifft2(R);

我期望iFR接近Z,但我得到的是完全不同的东西。它可能是Z与复数值的近似值,但由于我不知道如何在Matlab中绘制3D复数矩阵,因此我似乎无法对其进行检查。因此,如果有人可以告诉我我的答案是正确还是错误,以及如何使这种解卷积起作用?我将不胜感激。

贾斯汀

R = FC/Fimg需要成为R = FC./Fimg;您需要按元素进行划分。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

2D圆形卷积Vs卷积FFT [Matlab / Octave / Python]

来自分类Dev

使用1D FFT与2D FFT的可分卷积

来自分类Dev

如何使用Matlab在梯度上执行2D卷积?

来自分类Dev

Matlab与Python 2D卷积性能

来自分类Dev

从MATLAB到Python的2D FFT

来自分类Dev

keras中的反卷积2D层

来自分类Dev

MATLAB中信号的内核2D卷积

来自分类Dev

在Matlab上向量化2D卷积

来自分类Dev

在Matlab上向量化2D卷积

来自分类Dev

CUDA fft 2d 与 MATLAB fft 在 2d 上的不同结果

来自分类Dev

Matlab / Octave中的2D与3D FFT

来自分类Dev

在Python中使用fft2进行“有效”和“完全”卷积

来自分类Dev

在Python中使用fft2进行“有效”和“完全”卷积

来自分类Dev

C中的快速2D卷积

来自分类Dev

Keras的卷积2D连体网络

来自分类Dev

JavaScript数组的2D卷积

来自分类Dev

使用FFT属性查找2D函数的导数

来自分类Dev

在UNION问题中使用order by子句

来自分类Dev

我应该对3D灰度图像使用2D或3D卷积吗?

来自分类Dev

频率:在MATLAB中使用FFT的分贝图

来自分类Dev

如何在Matlab中使用数据矩阵来拟合特定的2D函数

来自分类Dev

简单图像反卷积问题

来自分类Dev

使用2D数组的MATLAB

来自分类Dev

为什么在Matlab中使用卷积矩阵而不是conv()函数?

来自分类Dev

巨大矩阵的2D FFT

来自分类Dev

2D fft-空虚部

来自分类Dev

带2D滤镜的卷积3D图像

来自分类Dev

使用Matlab计算卷积

来自分类Dev

为什么在调用1D卷积时TensorFlow计算2D卷积?