addendum Re: working with images (PIL ?)

Ken Starks straton at lampsacos.demon.co.uk
Sat May 17 21:24:49 EDT 2008


As others have said, PIL has the 'histogram' method to do most of the 
work. However, as histogram works on each band separately, you have
a bit of preliminary programming first to combine them.

The ImageChops darker method is one easy-to-understand way (done twice),
but there are lots of alternatives, I am sure.


# ------------------------------------

import Image
import ImageChops

Im = Image.open("\\\\server\\vol\\temp\\image.jpg")
R,G,B = Im.split()

Result=ImageChops.darker(R,G)
Result=ImageChops.darker(Result,B)

WhiteArea=Result.histogram()[0]
TotalArea=Im.size[0] * Im.size[1]
PercentageWhite = (WhiteArea * 100.0)/TotalArea





Poppy wrote:
> I've put together some code to demonstrate what my goal is though looping 
> pixel by pixel it's rather slow.
> 
> import Image
> 
> def check_whitespace():
>     im = Image.open("\\\\server\\vol\\temp\\image.jpg")
> 
>     size = im.size
> 
>     i = 0
>     whitePixCount = 0
>     while i in range(size[1]):
>         j = 0
>         while j in range(size[0]):
>             p1 = im.getpixel((j,i))
>             if p1 == (255, 255, 255):
>                 whitePixCount = whitePixCount + 1
>                 if whitePixCount >= 492804:  ## ((image dimensions 1404 x 
> 1404) / 4) 25%
>                     return "image no good"
>             j = j + 1
>         i = i + 1
> 
>     print whitePixCount
> 
>     return "image is good"
> 
> print check_whitespace()
> 
> 
> "Poppy" <znfmail-pythonlang at yahoo.com> wrote in message news:...
>> I need to write a program to examine images (JPG) and determine how much 
>> area is whitespace. We need to throw a returned image out if too much of it 
>> is whitespace from the dataset we're working with. I've been examining the 
>> Python Image Library and can not determine if it offers the needed 
>> functionality. Does anyone have suggestions of other image libraries I 
>> should be looking at it, or if PIL can do what I need?
>>
> 
> 



More information about the Python-list mailing list