【问题标题】:Blurring an image with a non-uniform filter使用非均匀滤镜模糊图像
【发布时间】:2014-02-06 05:15:57
【问题描述】:

我是 Stackoverflow 的新手,这是我的第一个问题,所以请耐心等待。

我想用非均匀过滤器模糊图像。但是,我还没有完全理解什么是非均匀过滤器,我想问一下非均匀过滤器到底有什么作用以及如何解释就代码而言。 我想在 Matlab 中实现这个。这是我的代码示例。

一个不统一的内核是这样的

init= imread('cameraman.jpg');
initial = rgb2gray(init);
sigma=3;
H_filt = fspecial('gaussian',[5 5], sigma);

还是只限于一个维度?

init= imread('cameraman.jpg');
initial = rgb2gray(init);
sigma=3;
H_filt = fspecial('gaussian',[5 1], sigma);

先谢谢各位大佬了!!

【问题讨论】:

  • 那是一维滤镜,但我不知道这是否是您所说的非均匀。可能不是。你能引用你引用的论文吗?
  • @chappjc,我猜除了时间/空间域中的框窗口之外的所有过滤器都是非均匀过滤器......
  • 基本上与论文无关。就一个项目而言,我被要求使用自定义的非均匀模糊滤镜来模糊图像。我不确定这是否意味着它将应用的方向(这就是我发布两个示例的原因)还是与过滤器的类型有关。这就是我选择高斯的原因。

标签: matlab image-processing filtering


【解决方案1】:

通常它们表示每个像素不是恒定的过滤器 -> 它在空间上不均匀。
尝试实现其标准偏差在每个像素处不同的高斯模糊。

一个快速的方法是使用colfilt

如果您需要更多帮助,请告诉我。

【讨论】:

    【解决方案2】:

    非均匀模糊核

    非均匀模糊内核是在整个图像不恒定的内核。

    举几个例子:

    • 失焦模糊内核大小取决于相机和场景点之间的距离(通常称为 Z)。散焦形状算法可以利用这种现象;
    • 静态场景中的运动物体可能会出现运动模糊,而静态部分显然没有模糊。不同的运动物体确实可以有不同的运动模糊;
    • 相机镜头通常在其中心相对于其边界产生更好(更清晰)的图像。

    如何生成非均匀模糊的图像

    这取决于你的图像有多少模糊内核,以及你想要模拟什么样的模糊。

    • 可以通过光线追踪软件模拟散焦模糊(相机与场景点距离的函数)。
    • 如果您想通过后处理(卷积)生成非均匀模糊,那么您需要:
      1. 获取手边像素的模糊内核(i,j):例如sigma_ij = f(i,j)
      2. 用这个模糊内核对您的输入图像(清晰、清晰的图像)进行卷积:H_ij = fspecial('gaussian', [some large size], sigma_ij])
      3. 将结果写入输出图像:I_final[i,j] = I_blurred_with_Hij[i,j]
      4. 继续下一个像素。

    在某些情况下,您可以通过正确的假设(模糊大小限制,图像中只有两到三个可能的模糊......)来切断这个贪婪循环。

    【讨论】:

      猜你喜欢
      • 2015-11-05
      • 2013-01-10
      • 1970-01-01
      • 1970-01-01
      • 2021-05-10
      • 1970-01-01
      • 1970-01-01
      • 2016-04-26
      • 1970-01-01
      相关资源
      最近更新 更多