capture works on windows
authorTomas Musil <tomik.musil@gmail.com>
Mon, 30 Apr 2012 21:52:39 +0000 (23:52 +0200)
committerTomas Musil <tomik.musil@gmail.com>
Mon, 30 Apr 2012 21:52:39 +0000 (23:52 +0200)
camera.py
capture.py
filters.py

index 0f524f3..1a7e3b5 100644 (file)
--- a/camera.py
+++ b/camera.py
@@ -27,8 +27,8 @@ elif os.name in ('ce', 'nt', 'dos'):
             self._cam = Device()
             self._cam.setResolution(640, 480)
 
-        def shot(self):
-            self._cam.saveSnapshot('image.jpg', quality=100)
+        def get_image(self):
+            return self._cam.getImage()
 
         def __del__(self):
             del self._cam
index 6aeaf53..a228ac6 100755 (executable)
@@ -8,21 +8,33 @@ import Image
 
 from camera import Camera
 
+class Screen:
+    def __init__(self):
+        pygame.init()
+        pygame.display.set_mode((640,480))
+        pygame.display.set_caption("Go image capture")
+        self._screen = pygame.display.get_surface()
 
-pygame.init()
-window = pygame.display.set_mode((640,480))
-pygame.display.set_caption("WebCam Demo")
-screen = pygame.display.get_surface()
+    def display_picture(self, im):
+        pg_img = pygame.image.frombuffer(im.tostring(), im.size, im.mode)
+        self._screen.blit(pg_img, (0,0))
+        pygame.display.flip()
 
-cam = Camera()
 
-while True:
-    events = pygame.event.get()
-    for event in events:
+def main():
+    
+    cam = Camera()
+    screen = Screen()
+
+    while True:
+        event = pygame.event.wait()
         if event.type == QUIT:
-            sys.exit(0)
+            break
         elif event.type == KEYDOWN:
-            im = cam.get_image()
-            pg_img = pygame.image.frombuffer(im.tostring(), im.size, im.mode)
-            screen.blit(pg_img, (0,0))
-            pygame.display.flip()
+            screen.display_picture(cam.get_image())
+    
+if __name__ == '__main__':
+    try:
+        main()
+    finally:
+        pygame.quit()
index e770724..991ce75 100644 (file)
@@ -10,8 +10,8 @@ def edge_detection(image):
     new_image = Image.new('L', image.size)
     new_image_l = new_image.load()
     
-    for x in range(2, image.size[0] - 2):
-        for y in range(2, image.size[1] - 2):
+    for x in xrange(2, image.size[0] - 2):
+        for y in xrange(2, image.size[1] - 2):
             pix = (sum([sum([
                 image_l[a, b] 
                     for b in range(y - 2, y + 3)])