From 5ca7895fa1cf7655d555c0415d90c192087e74d6 Mon Sep 17 00:00:00 2001 From: Tomas Musil Date: Mon, 30 Apr 2012 23:52:39 +0200 Subject: [PATCH] capture works on windows --- camera.py | 4 ++-- capture.py | 38 +++++++++++++++++++++++++------------- filters.py | 4 ++-- 3 files changed, 29 insertions(+), 17 deletions(-) diff --git a/camera.py b/camera.py index 0f524f3..1a7e3b5 100644 --- 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 diff --git a/capture.py b/capture.py index 6aeaf53..a228ac6 100755 --- a/capture.py +++ b/capture.py @@ -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() diff --git a/filters.py b/filters.py index e770724..991ce75 100644 --- a/filters.py +++ b/filters.py @@ -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)]) -- 2.4.2