#!/usr/bin/env python
+"""Go image capture."""
+
import sys
+import argparse
import pygame
from pygame.locals import QUIT, KEYDOWN
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()
+
+ 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()
+
+
+def main():
+ parser = argparse.ArgumentParser(description=__doc__)
+ #parser.add_argument('file', metavar='file', nargs=1,
+ # help="image to analyse")
+ #parser.add_argument('-w', type=int, default=640,
+ # help="scale image to the specified width before analysis")
+ parser.add_argument('-d', '--device', type=int, default=0,
+ help="number of video device to use")
+ #parser.add_argument('-s', '--save', dest='do_something', action='store_const',
+ # const=image_save, default=im_debug.show,
+ # help="save images instead of displaying them")
+ args = parser.parse_args()
+
+ cam = Camera(device=args.device)
+ screen = Screen()
-pygame.init()
-window = pygame.display.set_mode((640,480))
-pygame.display.set_caption("WebCam Demo")
-screen = pygame.display.get_surface()
+ im = cam.get_image()
+ screen.display_picture(im)
-cam = Camera()
+ im_number = 0
-while True:
- events = pygame.event.get()
- for event in events:
+ 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(im)
+ im.save("./captured/{0:0>3}.jpg".format(im_number), 'JPEG')
+ im_number += 1
+
+if __name__ == '__main__':
+ try:
+ main()
+ finally:
+ pygame.quit()