Automatización del desplazamiento usando Python-Opencv por detección de color

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:

Detección de color verde

Publicación traducida automáticamente

Artículo escrito por ankanbhaumik80 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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