代码之家  ›  专栏  ›  技术社区  ›  David Parks

双线性/双三次插值是否独立于每个颜色通道操作?

  •  1
  • David Parks  · 技术社区  · 8 年前

    我在用 scipy.ndimage.interpolation.zoom 使用双线性插值或双三次插值(如果我是正确的话,阶数=1或3)。

    https://docs.scipy.org/doc/scipy-0.15.1/reference/generated/scipy.ndimage.interpolation.zoom.html

    使用RGB图像时,双线性/双三次插值算法是在每个颜色通道上独立运行,还是在颜色通道之间存在某种依赖关系?

    1 回复  |  直到 8 年前
        1
  •  1
  •   user6655984    8 年前

    ndimage.interpolation.zoom 没有RGB通道的概念;它可以缩放任意n维数组,对每个维都没有任何特殊意义。例如,如果将图像存储为形状数组 (20, 20, 3) zoom(image, 2) 它将成为一个形状数组 (40, 40, 6)

    zoom(image, (2, 2, 1)) NI_ZoomShift 我看到变焦是用 get_spline_interpolation_weights 一维

    1. image[:, c, ch] 并通过一维插值进行缩放(切片之间无交互)。
    2. image[r, :, ch]
    3. 每1d切片检查一次 image[r, c, :]

    以上测试:缩放整个图像与单独缩放每个通道。

    import numpy as np
    from scipy.ndimage.interpolation import zoom
    image = np.random.uniform(size=(20, 20, 3))
    output = zoom(image, (2, 2, 1))
    for k in range(3):
        output_channel = zoom(image[:, :, k], 2)
        print(np.max(np.abs(output_channel - output[:, :, k])))
    

    推荐文章