【问题标题】:How imresize works when downsampling an image in MATLAB?在 MATLAB 中对图像进行下采样时,imresize 如何工作?
【发布时间】:2014-06-19 06:49:55
【问题描述】:

我不清楚 imresize 的工作原理,尤其是在我们缩小图像(例如从 4x4 到 2x2)时。当我们升级时,它更容易理解。我的意思是我们必须通过查看哪个已知点更接近(方法='最近')或使用4个最近的已知点的线性平均(方法='双线性')等来找到中间点。我们不需要任何过滤器吗?

我的主要疑问是我们何时缩小规模。我从信号处理类中了解到,为了避免混叠,必须在抽取中间值之前应用平滑低通滤波器。但是 MATLAB 使用的是哪个过滤器?他们只是说方法,我不明白我们如何使用“双线性”或“双三次”作为内核。

感谢您的阅读。

【问题讨论】:

  • 还有一个问题。如果我想使用高斯内核进行缩减怎么办?我该如何做到这一点?
  • 如果我们简单地输入 imresize(I,0.5); 或者任何人都可以简单地告诉我他们使用哪个内核。没有任何方法或内核规范。我想知道进行 LP 过滤的模糊内核。谢谢。

标签: matlab signal-processing


【解决方案1】:

该函数的文档似乎不完整。打开 imresize.m (edit imresize) 并查看 contributions-function。

您可以看到,当使用 bilinearbicubic 方法和缩小比例时,matlab 没有使用 2x2 邻域。增加内核大小以避免混叠。


关于 imresize 背后的数学的一些解释。为简化起见,我将仅解释一维情况。当使用

从标准方法开始:

图片显示了常见情况,两个已知网格值平均为一个新的网格值,权重为 1/5 和 4/5。除了众所周知的定义之外,还可以定义权重,绘制一个底边为 w=2 的三角形:

现在增加三角形的底边,我们得到更大窗口大小的权重。绘制一个 w=6 的底:

新三角形定义了超过 6 个点的权重。

【讨论】:

  • 感谢您的回复。但我的疑问是我们如何在缩减时使用“双线性”或“双三次”作为内核?它们不只是插值方法吗?只有 'box' 或这样的内核应该适用于缩小规模吧?
  • @akhilc:我添加了一些关于线性方法背后的数学的解释。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-05-12
  • 2021-11-13
  • 1970-01-01
  • 2012-03-18
  • 1970-01-01
  • 2020-03-24
  • 1970-01-01
相关资源
最近更新 更多