requisitos previos:
Es posible realizar acciones sin dar ninguna entrada a través del panel táctil o el mouse. Este artículo analiza cómo se puede hacer esto usando el módulo opencv. Aquí usaremos la detección de color para desplazarnos por la pantalla. Cuando el programa detecta un determinado color durante la ejecución, la pantalla comienza a desplazarse por sí sola.
Acercarse
- Módulo de importación
- Use cv2 para capturar video, aquí para usar la cámara web predeterminada use 0 y para cualquier otra cámara use 1.
- Lea el video capturado y almacene el cuadro de video en una variable
- Consigue todos los colores del marco.
- Cree una máscara del color requerido para tomar como entrada para desplazarse usando sus rangos de color aceptables. Aquí se toma como verde.
- Obtener contornos y jerarquía de máscara
- Pase los contornos usando for loop y calcule el área.
- Agregue un mecanismo de desplazamiento cuando se detecte el color requerido (Verde aquí).
- Muestre el cuadro usando cv2.imshow() y pase el nombre del cuadro y la variable del cuadro para mostrar cada cuadro capturado, coloque el proceso de captura de cuadros en un ciclo while. Para salir del proceso, use una tecla de espera y una declaración de interrupción.
- Luego detenga la ventana de la cámara web.
A continuación se muestra la implementación.
Python3
import cv2 import numpy as np import pyautogui low_green = np.array([25, 52, 72]) high_green = np.array([102, 255, 255]) cap = cv2.VideoCapture(0) prev_y = 0 while True: ret, frame = cap.read() hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV) mask = cv2.inRange(hsv, low_green, high_green) contours, hierarchy = cv2.findContours( mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) for i in contours: area = cv2.contourArea(i) if area > 1000: x, y, w, h = cv2.boundingRect(i) cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), 2) if y < prev_y: pyautogui.press('space') prev_y = y cv2.imshow('frame', frame) if cv2.waitKey(1) == ord('q'): break cap.release() cap.closeAllWindow()
Aporte:
Publicación traducida automáticamente
Artículo escrito por ankanbhaumik80 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA