X-Git-Url: http://git.tomasm.cz/imago.git/blobdiff_plain/6f1565eb566394cd75f453303df30d904e333fa2..331a6c45e65595765e1f3b345f67675552c88588:/capture.py?ds=sidebyside diff --git a/capture.py b/capture.py index 6aeaf53..a4268a0 100755 --- a/capture.py +++ b/capture.py @@ -1,6 +1,9 @@ #!/usr/bin/env python +"""Go image capture.""" + import sys +import argparse import pygame from pygame.locals import QUIT, KEYDOWN @@ -8,21 +11,49 @@ 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() + + 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() -pygame.init() -window = pygame.display.set_mode((640,480)) -pygame.display.set_caption("WebCam Demo") -screen = pygame.display.get_surface() + cam = Camera(device=args.device) + screen = Screen() -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()