Rima
Rima

Reputation: 147

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

I have an image which is in gray scale. I wanted to upsamle the image, so I used the following code,

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

and the output is

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

For some reason, I cannot use plt.imshow(img_1) as it gives error,

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

I'd appreciate it if somebody could help me with it.

Upvotes: 0

Views: 828

Answers (1)

Prefect
Prefect

Reputation: 1777

It looks like your image has 3 channels, which means it is not in grayscale. So, either convert it to grayscale first, and apply zoom, or, in case you want to keep the image in color mode, don't apply zoom on the image channels, because it does not make much sense.

# 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.

Upvotes: 1

Related Questions