import ctypes, os import pygame, sys import ImageFilter import time from PIL import Image from pygame.locals import * str_buffer = ctypes.create_string_buffer(614400) buffersize = 614400 size = (640, 480) white = (255, 255, 255) os.environ["SDL_VIDEODRIVER"] = "fbcon" pygame.init() screen = pygame.display.set_mode(size,0,32) pygame.mouse.set_visible(False) print pygame.version.ver print pygame.get_sdl_version() print pygame.display.Info() print "Driver:",pygame.display.get_driver() cam=ctypes.CDLL('/root/python-v4l2/libpyuvc_3.so.1.0') palette = tuple([(i, i, i) for i in range(256)]) modes = pygame.display.list_modes() print "Display Modes:",modes depth = pygame.display.mode_ok(size) print "Best Mode:",depth print cam.cam_init(640, 480) #start = time.time() outlined = False done = False while not done: cam.cam_capture(str_buffer, buffersize) bild = str_buffer[:] Y_value = bild[::2] #print time.time()-start #start = time.time() if outlined: im = Image.fromstring('L',size,Y_value) im = im.filter(ImageFilter.CONTOUR) im = im.convert('RGBA') data = im.tostring() surf = pygame.image.fromstring(data,size,im.mode).convert() else: surf = pygame.image.fromstring(Y_value,size,'P') surf.set_palette(palette) surf = pygame.Surface.convert(surf,32) screen.blit(surf,(0,0)) pygame.display.update() for e in pygame.event.get(): if e.type == pygame.KEYDOWN: pygame.event.pump() keystate = pygame.key.get_pressed() if keystate[K_ESCAPE]: done = True if keystate[K_o]: outlined = not outlined print cam.cam_close() sys.exit(0)