On Wed, May 27, 2009 at 10:33, cp <[email protected]> wrote:
> Testing the PIL vs numpy in calculating the mean value of each color channel 
> of
> an image I timed the following.
>
> impil = Image.open("10.tif")
> imnum = asarray(impil)
>
> #in PIL
> for i in range(1,10):
>    stats = ImageStat.Stat(impil)
>    stats.mean
>
> # for numpy
> for i in range(1,10):
>    imnum.reshape(-1,3).mean(axis=0)
>
> The image I tested initially is 2000x2000 RGB tif ~11mb in size. I set a timer
> in each for loop and measured the performance of numpy 7 times slower than 
> PIL.
> When I did the the same with an 10x10 RGB tif and with 1000 cycles in for, 
> numpy
> was 25 times faster than PIL. Why is that? Does mean or reshape, make a copy?

reshape() might if the array wasn't contiguous.

-- 
Robert Kern

"I have come to believe that the whole world is an enigma, a harmless
enigma that is made terrible by our own mad attempt to interpret it as
though it had an underlying truth."
  -- Umberto Eco
_______________________________________________
Numpy-discussion mailing list
[email protected]
http://mail.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to