使用 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.
我有一张灰度图像。 我想对图像进行上采样,所以我使用了以下代码,
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.