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
一维
-
image[:, c, ch]
并通过一维插值进行缩放(切片之间无交互)。
-
image[r, :, ch]
-
每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])))