【问题标题】:How to Deconvolve the Convolved Samples of an Image?如何对图像的卷积样本进行反卷积?
【发布时间】:2014-05-27 06:44:53
【问题描述】:

为了先对图像进行卷积,我编写了以下代码

% 卷积和反卷积

 % Firstly convultion
 a = imread('duas.jpg');
 subplot(231);
 imshow(a)
 b = rgb2gray(a);
 subplot(232);
 imshow(b);

 % convolving with h, High Pass filter now

 h = [1 2 1; 1 2 1];
 c = conv2(b,h);
 subplot(233);
 imshow(c);

现在我需要去卷积它,怎么办?我想我应该使用它来获取原始图像?

【问题讨论】:

  • 反卷积是科学中一个非常广泛的话题。请查看例如Using the Inverse Filter to correct a spatially convolved image?
  • 我不能使用相同的过滤器去卷积吗?
  • 实际上我只需要对最近卷积的图像进行反卷积!有没有简单的方法!我没有进行任何图像校正!
  • 你不在乎噪音吗?然后你只需要inverse filter 这也不是那么简单。最简单的是维纳滤波,您可以在傅立叶空间中除以卷积核的傅立叶变换。

标签: matlab image-processing signal-processing matlab-figure matlab-deployment


【解决方案1】:

您可以使用MATLAB's Wiener Filter 并使用零噪声标准。

反卷积通常在频域中完成。 我将说明进行直接反卷积的步骤(与零噪声的维纳滤波器一致)。
我假设给出了应用滤波器的反卷积(与盲反卷积相反):

  1. 对过滤后的图像应用 FFT。
  2. 在空间域中的 LPF 过滤器末尾添加零,以具有与图像相同的大小。
  3. 在此滤波器矩阵上应用 FFT。
  4. 通过过滤器逐点分割图像。
    如果过滤器的值为零,则将输出设置为零。
  5. 在输出图像上应用 IFFT。

祝你好运。

【讨论】:

    最近更新 更多