Prerrequisitos: Introducción a OpenCV
La mayoría de nosotros ya hemos capturado imágenes usando el temporizador de cuenta regresiva con nuestros teléfonos. Podemos hacer lo mismo en nuestra computadora con la ayuda de OpenCV .
Pero aquí podemos especificar el temporizador de cuenta regresiva en lugar de elegir una de las cuentas regresivas especificadas y cada vez que se presione la tecla en particular (digamos q ), se iniciará el temporizador de cuenta regresiva y mostraremos la cuenta regresiva en nuestra cámara con la ayuda de cv2 .putText() y cuando llegue a cero capturaremos la imagen, mostraremos la imagen capturada durante un número fijo de segundos (según nuestra necesidad) y escribiremos/guardaremos la imagen en el disco. Ahora veamos cómo realizar esta tarea:
Acercarse:
- Primero, configuraremos el valor inicial del temporizador de cuenta regresiva en segundos. (También podemos tomar esto como entrada del usuario).
- Abra la cámara y cree un objeto de captura de video usando cv2.VideoCapture() .
- Mientras la cámara está abierta
- Leeremos cada cuadro y lo mostraremos usando cv2.imshow() .
- Ahora configuraremos una tecla (usamos q ) para que comience la cuenta regresiva.
- Tan pronto como esta tecla sea presionada, iniciaremos la Cuenta Regresiva.
- Realizaremos un seguimiento de la cuenta regresiva con la ayuda de la función time.time() y mostraremos la cuenta regresiva en el video usando la función cv2.putText() .
- Cuando llegue a cero , copiaremos el cuadro actual y escribiremos el cuadro actual en la ubicación deseada en el disco usando la función cv2.imwrite() .
- Al pulsar ‘Esc’ cerraremos la cámara.
A continuación se muestra la implementación.
Python3
import cv2 import time # SET THE COUNTDOWN TIMER # for simplicity we set it to 3 # We can also take this as input TIMER = int(20) # Open the camera cap = cv2.VideoCapture(0) while True: # Read and display each frame ret, img = cap.read() cv2.imshow('a', img) # check for the key pressed k = cv2.waitKey(125) # set the key for the countdown # to begin. Here we set q # if key pressed is q if k == ord('q'): prev = time.time() while TIMER >= 0: ret, img = cap.read() # Display countdown on each frame # specify the font and draw the # countdown using puttext font = cv2.FONT_HERSHEY_SIMPLEX cv2.putText(img, str(TIMER), (200, 250), font, 7, (0, 255, 255), 4, cv2.LINE_AA) cv2.imshow('a', img) cv2.waitKey(125) # current time cur = time.time() # Update and keep track of Countdown # if time elapsed is one second # than decrease the counter if cur-prev >= 1: prev = cur TIMER = TIMER-1 else: ret, img = cap.read() # Display the clicked frame for 2 # sec.You can increase time in # waitKey also cv2.imshow('a', img) # time for which image displayed cv2.waitKey(2000) # Save the frame cv2.imwrite('camera.jpg', img) # HERE we can reset the Countdown timer # if we want more Capture without closing # the camera # Press Esc to exit elif k == 27: break # close the camera cap.release() # close all the opened windows cv2.destroyAllWindows()
Producción:
Publicación traducida automáticamente
Artículo escrito por AyushMalik y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA