[Image-SIG] PIL - 1.1.6, Centroid

Fredrik Lundh fredrik at pythonware.com
Mon Aug 25 20:58:36 CEST 2008

Ashish Asgekar wrote:

>    I was looking for Centroid function in Python and downloaded 
> PIL-1.1.6. I learnt that Centroid function is available as Crack Code. 
> However, when I search for CrackCode, I find it is not available anymore 
> from PythonWare.
>           1) Is CrackCode available in PIL-1.1.6 in some
 >              other form?

the CrackCode extension is no longer available, for licensing reasons.

>           2) Can I compute Centroid of an image using some other 
> existing function?

assuming that "im" contains a single feature (represented by non-zero 
pixels), the following function should do the trick:

def get_centroid(im):
     sx = sy = n = 0
     x0, y0, x1, y1 = im.getbbox()
     pix = im.load()
     for y in range(y0, y1):
         for x in range(x0, x1):
             if pix[x, y]:
                 sx += x
                 sy += y
                 n += 1
     return float(sx) / n + 0.5, float(sy) / n + 0.5

on my machine, the above can process about fourty 512x512 grayscale 
images per second.


More information about the Image-SIG mailing list