La conversión entre el objeto Pillow Image y la matriz numpy cambia la dimensión

Estoy usando Pillow and numpy, pero tengo un problema con la conversión entre el objeto Pillow Image y la matriz numpy.

Cuando ejecuto el siguiente código, el resultado es extraño.

im = Image.open(os.path.join(self.img_path, ifname))
print im.size
in_data = np.asarray(im, dtype=np.uint8)
print in_data.shape

el resultado es

(1024, 768)
(768, 1024)

¿Por qué se cambia la dimensión?

Respuestas a la pregunta(3)

Su respuesta a la pregunta