Sat, 16 May 2009 08:42:50 +0000, jorgesmbox-ml wrote: [clip] > I don't feel comfortable working with upside down images, so this had to > be fixed. I tried to be smart and avoid copying the whole image: > > aimg = array(img)[::-1]
Note that here a copy is made. You can use `asarray` instead of `array` if you want to avoid making a copy. > and it worked!, but I am interested actually in sub-regions of this > image, so the next I did was: > > roi = aimg[10:20,45:50,:] > > And to my surprise the result was like if I was slicing the original, > upside down, image instead of aimg. Can someone explain me what's going > on here? Sounds impossible, and I don't see this: In [1]: import Image In [2]: img = Image.open('foo.png') In [3]: aimg = array(img) In [4]: imshow(aimg) Out[4]: <matplotlib.image.AxesImage object at 0x9a6ecec> In [5]: imshow(aimg[10:320,5:150]) Out[5]: <matplotlib.image.AxesImage object at 0x9f1db2c> The image is here right-side up, both in full and the slice (since imshow flips it). Also, In [6]: aimg = array(img)[::-1] In [7]: imshow(aimg[10:320,5:150]) Out[7]: <matplotlib.image.AxesImage object at 0xa007eac> Now, the image is upside down, both in full and in the slice. I think you should re-check that you are doing what you think you are doing. Preparing a self-contained code example could help here, at least this would make pinpointing where the error is more easy. -- Pauli Virtanen _______________________________________________ Numpy-discussion mailing list Numpy-discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion