I'm trying to convert a colored image to a black and white one. The original image is the following: I have a few problems. First: import pylab as pl import Image im = Image.open('joconde.png') pl.imshow(im) pl.axis('off') pl.show() I get this: Why is it rotated? That's not the point but I'd like to know why. im_gray = im.convert('1') pl.imshow(im_gray) pl.show() And here is the processed black and white image: Now everything looks working. But I need to use that image as a numpy array in order to do some image processing. All I have to do is this: import numpy as np im_arr = np.array(im_gray) pl.imshow(im_arr) pl.axis('off') pl.show() But I get this: Why is this happening? I tried also: im_arr = np.array(im_gray, dtype='float') or: im_arr = np.asarray(im_gray) But nothing seems working. Maybe the problem is in the show method but I don't know. Continue reading...