【问题标题】:How to perform adaptive bilinear interpolation?如何执行自适应双线性插值?
【发布时间】:2016-09-20 05:22:56
【问题描述】:

我想为给定in this paper 的图像上采样实现自适应双线性插值方法。但我被困在一个非常基本的问题上。

imresize()在Matlab中进行双线性插值by taking a weighted average of pixels in the nearest 2x2 neighborhood.

我想知道 Matlab 如何确定边界像素的这个 2x2 邻域?

我真正想知道的是如何确定附件中边界像素的邻域,因为每个边界至少在 1 个方向上没有邻域,例如,最上面的行不会有任何行对于确定任何垂直上掩码,最左边的列将没有任何用于确定任何水平掩码的列,依此类推。

我给出了 Matlab 示例,以直观了解此类算法中的语言如何解决边界情况。

【问题讨论】:

  • 为什么你认为有边界?我的猜测是,例如,插值图像的左上角是像素(1,1), (1,2), (2,1) and (2,2) 的插值。换句话说,在您的初始图像大小为NxN,您的插值图像大小为N-1xN-1

标签: matlab image-resizing bilinear-interpolation


【解决方案1】:

您提到的“2x2”邻域实际上是拐角处的强度。因此,您将在这个 2x2 强度值内进行插值。

为了更好地理解,请尝试执行以下操作,然后您将看到输出:

I=[1 2; 100 200]
imresize(I,2, 'bilinear')

请注意,对于“双线性”插值,四个角是相同的,与默认的“双三次”不同。希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 2012-02-08
    • 2012-01-29
    • 1970-01-01
    • 2021-04-12
    • 1970-01-01
    • 1970-01-01
    • 2020-04-22
    • 2010-10-22
    • 1970-01-01
    相关资源
    最近更新 更多