使用 scipy.ndimage.zoom 的二维插值方法存在问题

problem with the 2d interpolation method using scipy.ndimage.zoom

我有一张灰度图像。 我想对图像进行上采样,所以我使用了以下代码,

img = cv2.imread('unnamed.jpg')
img_1 = scipy.ndimage.zoom(img,3, order=1)
print(img.shape, img_1.shape)

输出为

(187, 250, 3) (561, 750, 9)

出于某种原因,我无法使用 plt.imshow(img_1),因为它会出错,

TypeError: Invalid shape (561, 750, 9) for image data

如果有人能帮助我,我将不胜感激。

看起来你的图像有 3 个通道,这意味着它不是灰度图像。因此,要么先将其转换为灰度,然后应用 zoom,或者,如果您想将图像保持在彩色模式,请不要在图像通道上应用 zoom,因为它不会很有道理。

# 1st option returns grayscale image
img = cv2.imread('unnamed.jpg',0) #  returns grayscale image
img_1 = scipy.ndimage.zoom(img,3, order=1)

# 2nd option returns BGR image
img = cv2.imread('unnamed.jpg',1) #  returns RGB image
img_1 = scipy.ndimage.zoom(img,[3,3,1], order=1) # zoom should contain one value for each axis.