当我发现执行缩放时python scipy.ndimage.zoom
自动添加新频道时,我感到很惊讶:
from scipy.misc import imread
from scipy.ndimage import zoom
img = imread('lena.jpg')
img=imread('lena.jpg')
img.shape
(468, 792, 3)
x = zoom(img, 1.0)
x.shape
(468, 792, 3)
x = zoom(img, 1.5)
x.shape
(702, 1188, 4)
x = zoom(img, 2)
x.shape
(936, 1584, 6)
宽度,高度尺寸正确,我无法理解其他尺寸的来源。
这种奇怪的行为仅在彩色图像上表现出来:
x = zoom(img[:, :, 0], 2)
x.shape
(936, 1584)
答案 0 :(得分:0)
ndimage.zoom
对频道(或图像)一无所知。它使用n维数组进行操作。如果给定形状为(9, 5, 3)
的数组,并要求将其缩放2倍,则将生成形状为(9*2, 5*2, 3*2)
的数组,(18, 10, 6)
。
当然,当第三个轴是颜色通道时,这不是您想要的。使用每轴缩放,将最后一个轴的缩放设置为1:
zoom(img, (2, 2, 1))