misc manipulation images array python python-3.x raspberry-pi python-imaging-library webcam-capture

python - manipulation - Convertir imagen de pygame a imagen PIL



python image processing (1)

Según el comentario de Damian Yerrick, en Python 3 el resultado de pygame.image.tostring() es un bytes , a pesar del nombre del método. Por lo tanto, podemos salir de esta situación con este código simple:

pygame.camera.init() cam = pygame.camera.Camera(pygame.camera.list_cameras()[0],(1280,720)) cam.start() time.sleep(1) webcamImage = cam.get_image() pil_string_image = pygame.image.tostring(img,"RGBA",False) im = Image.frombytes("RGBA",(1280,720),pil_string_image)

estamos utilizando un Raspberry Pi + Python 3.4 + PyGame para capturar una imagen desde una cámara web USB específica. Usamos este código simple para capturar (funciona bien):

pygame.camera.init() cam = pygame.camera.Camera(pygame.camera.list_cameras()[0],(1280,720)) cam.start() time.sleep(1) webcamImage = cam.get_image()

El problema viene aquí: tenemos que convertir esta webcamImage en una imagen PIL. Seguimos este enlace, pero desafortunadamente la función Image.fromstring () ya no existe. Entonces, no podemos hacer eso :

pil_string_image = pygame.image.tostring(webcamImage, "RGBA",False) pil_image = Image.fromstring("RGBA",(1280,720),pil_string_image)

PIL dice que Image.fromstring () está en desuso, y sugiere usar la función Image.frombytes () . Claramente, no encontramos la función pygame.image equivalente que convierta la webcamImage en una matriz de bytes. Así que estamos trabajados aquí: ¿pueden ayudarnos, por favor? Gracias :-)