raspberry instalar como python matplotlib raspberry-pi computer-vision

python - instalar - ¿Cómo procesar imágenes en tiempo real y generar un video en tiempo real del resultado?



install matplotlib raspberry pi 3 (1)

Es posible que desee ver esta pregunta: actualice el marco en matplotlib con la vista previa de la cámara en vivo que utiliza directamente VideoCapture. Si, por el contrario, quiere leer las imágenes de http, puede cambiar esto a uno de los siguientes.

Modo interactivo

import cv2 import matplotlib.pyplot as plt def grab_frame(): image = io.imread(''http://[ip-address]/cam_pic.php'') image_gray = cv2.cvtColor(image, cv2.COLOR_RGB2GRAY) faces = detect(image_gray) return faces_draw(image, faces) #create axes ax1 = plt.subplot(111) #create image plot im1 = ax1.imshow(grab_frame()) plt.ion() while True: im1.set_data(grab_frame()) plt.pause(0.2) plt.ioff() # due to infinite loop, this gets never called. plt.show()

FuncAnimation

import cv2 import matplotlib.pyplot as plt from matplotlib.animation import FuncAnimation def grab_frame(): image = io.imread(''http://[ip-address]/cam_pic.php'') image_gray = cv2.cvtColor(image, cv2.COLOR_RGB2GRAY) faces = detect(image_gray) return faces_draw(image, faces) #create axes ax1 = plt.subplot(111) #create axes im1 = ax1.imshow(grab_frame()) def update(i): im1.set_data(grab_frame()) ani = FuncAnimation(plt.gcf(), update, interval=200) plt.show()

Tengo una Rasberry Pi con una cámara y estoy transmitiendo video a mi navegador usando la interfaz web RPi Cam. Ejecuto un script para leer en las imágenes y procesarlas como a continuación. Al ejecutar el código, se abre una ventana con la imagen procesada en el momento actual. Cuando cierro la ventana, obtengo una imagen procesada actualizada.

Lo que me gustaría hacer, sin embargo, es mostrar un video continuo de las imágenes procesadas. ¿Qué enfoque debo tomar para hacer eso?

while True: image = io.imread(''http://[ip-address]/cam_pic.php'') image_gray = cv2.cvtColor(image, cv2.COLOR_RGB2GRAY) faces = detect(image_gray) image_with_detected_faces = faces_draw(image, faces) plt.imshow(image_with_detected_faces) plt.show()