[Tutor] Questions about PIL

Chris Hengge pyro9219 at gmail.com
Thu Nov 9 10:32:57 CET 2006


Yes, I understand what a loop is, and there was a loop but I didn't write
that code into my email because I didn't need commenting on it.
Here is the code so its clear incase you really care =P

from PIL import Image
from PIL import ImageGrab
import time

capturedFrames = 100
count = 0

print "\nInitializing Engine..."
newView = ImageGrab.grab()
print "Engine Initilized Successfully!"

raw_input("Press any key to begin...")

print "\nInitializing capture cycle..."

startClock = time.clock()

for i in range(capturedFrames): # Here is the loop I was timing that I
commented is extremely slow using the method you suggested. It does work
however.
    oldView = newView
    newView = ImageGrab.grab()
    if oldView.tostring() != newView.tostring():
        count = count + 1


endClock = time.clock()
totalTime = endClock - startClock
calculatedFPS = capturedFrames / totalTime

horRes = str(newView.getbbox()[2])
verRes = str(newView.getbbox()[3])

print "Frame Resolution     : %sx%s" % (horRes.rjust(4), verRes.rjust(4))
print "Frames Captured      : %s" % str(capturedFrames).rjust(9)
print "Capture Time (sec)   : %s" % str(totalTime)[:4].rjust(9)
print "Calculated FPS       : %s" % str(calculatedFPS)[:4].rjust(9)
print "Changes Registered   : %s" % str(count).rjust(9)
raw_input("\nPress Any Key...")

On 11/8/06, Luke Paireepinart <rabidpoobear at gmail.com> wrote:
>
> Chris Hengge wrote:
> > alist = difference(image1,image2)
> > a = [b for b in alist.getdata() if b != (0,0,0)]
> > if len(a) != 0:
> >    print "Not the same"
> >
> > is much slower then (9x)
> >
> > if im1.tostring() != im2.tostring()
> >        print "something changed!"
> >
> > This loop itself is fairly slow by itself though.. I'm going to try
> > and see if there is a faster way.
> Chris,
> are you sure you know what a loop is?
> The only loop here is in the list comprehension.
> 'if' is not a loop.
> 'for' and 'while' are.
> In computer science, it's important to be clear in your use of
> terminology.
>
> It makes sense that my example was slow.
> I didn't really think to try converting them to strings.
>
> Any time you're trying to compare pixel values, it's going to take a
> while,
> cause remember, a 1024X768 image has 786,432 different pixels.
> I think your tostring comparison may be your best bet.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/tutor/attachments/20061109/d0798ff4/attachment.htm 


More information about the Tutor mailing list