Saltar al contenido

Reproducción de video OpenCV Python: cómo configurar el retraso correcto para cv2.waitKey ()

Te traemos la contestación a esta dificultad, o por lo menos eso deseamos. Si presentas dudas coméntalo y sin pensarlo

Solución:

De la documentación de OpenCV:

La función cv.waitKey([, delay]) espera un key evento infinitamente (cuando delay <= 0) o por delay milisegundos, cuando es positivo.

Si el FPS es igual a 20, debe esperar 0,05 segundos entre mostrar los cuadros consecutivos. Así que solo pon waitKey(50) después imshow() para tener la velocidad deseada para la reproducción.

Por lo que vale, he probado todo tipo de trucos para configurar el tiempo de retraso de cv2.waitKey() y todos han fallado. Lo que he encontrado que funciona es probar algo como:key = cv2.waitKey(1) dentro de su while(cap.isOpened()) así:

import numpy as np
import cv2

cap = cv2.VideoCapture(0)

# Define the codec and create VideoWriter object
fourcc = cv2.cv.CV_FOURCC(*'XVID')
out = cv2.VideoWriter('output.avi',fourcc, 20.0, (640,480))

while(cap.isOpened()):
  ret, frame = cap.read()
  if ret==True:
      key = cv2.waitKey(1)
      frame = cv2.flip(frame,0)

      # write the flipped frame
      out.write(frame)

      cv2.imshow('frame',frame)
      if key & 0xFF == ord('q'):
          break
    else:
        break

# Release everything if job is finished
cap.release()
out.release()
cv2.destroyAllWindows()

Espero que esto ayude a alguien por ahí.

poner waitKey(60) después imshow() y se mostrará a velocidad normal.

valoraciones y comentarios

Si te ha resultado de ayuda nuestro artículo, agradeceríamos que lo compartas con el resto programadores y nos ayudes a difundir nuestro contenido.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *