Tabla de contenido:
- Paso 1: los archivos de encabezado
- Paso 2: captura del video
- Paso 3: capturar el marco y definir el color
- Paso 4: enmascaramiento y extracción
- Paso 5: ¡Finalmente se muestra
- Paso 6: ¡Demostración
Video: Detección de color simple usando OpenCV: 6 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:41
¡Hola! Hoy voy a mostrar un método simple para detectar un color de un video en vivo usando OpenCV y Python.
Básicamente, solo probaré si el color requerido está presente en el marco de fondo o no y, utilizando módulos OpenCV, enmascararé esa región y mostraré simultáneamente el marco.
Paso 1: los archivos de encabezado
Ahora aquí he usado dos archivos de encabezado, a saber, cv2 y NumPy. Básicamente, cv2 es la biblioteca OpenCV que carga todos los archivos c ++ que son importantes mientras se usan los comandos en los códigos (contiene todas las definiciones).
Y Numpy es una biblioteca de Python que es esencial para almacenar una matriz multidimensional. Usaremos para almacenar las coordenadas de nuestra gama de colores.
Y numpy as np básicamente ayuda a que nuestro código se acorte un poco al usar np cada vez en lugar de numpy.
Paso 2: captura del video
Esto es bastante simple al usar Python. Aquí solo tenemos que encender la grabadora de video para que pueda comenzar a grabar los fotogramas.
Ahora el valor dentro de VideoCapture indica la cámara, en mi caso la cámara está conectada a mi computadora portátil, entonces 0.
Puede ir de manera similar a 1 para la cámara secundaria y así sucesivamente. VideoCapture crea el objeto para él.
Paso 3: capturar el marco y definir el color
Ahora aquí tenemos que hacer algo para que podamos capturar el fotograma instantáneo del video que nos ayudará a extraer la imagen y podemos trabajar en eso según los requisitos.
El ciclo "while" nos ayudará a ejecutar el ciclo según nuestro tiempo requerido. Ahora se utiliza "_, frame = cap.read ()" para comprobar la validez del Frame capturado y lo almacena. "cap.read () es una variable booleana y devuelve verdadero si el marco se lee correctamente y si no obtiene marcos, no mostrará ningún error, simplemente obtendrá Ninguno.
Ahora la línea 11 y la línea 12 definen básicamente el rango de color que necesitamos detectar. Para ello, me he acostumbrado al color azul.
Puede continuar con cualquier color para lo que necesita simplemente escribir los valores de BGR para ese color en particular. Es mejor definir dos matrices usando matrices numpy, ya que la detección de un color particular en el mundo real no servirá para nuestro propósito, sino que definiremos un rango de color azul para que detecte dentro del rango.
Para esto, he definido dos variables que almacenan los valores BGR inferiores y los valores BGR superiores.
Paso 4: enmascaramiento y extracción
Ahora aquí viene la tarea principal de enmascarar el marco y extraer el color del marco. Usé los comandos predefinidos presentes en la biblioteca en OpenCV para hacer el enmascaramiento. Básicamente, el enmascaramiento es el proceso de eliminar una parte del marco, es decir, eliminaremos los píxeles cuyos valores de BGR de color no se encuentran en el rango de color definido y esto se realiza mediante cv2.inRange. Luego, aplicamos el rango de color a la imagen enmascarada dependiendo de los valores de los píxeles y para esto, usaremos cv2.bitwise_and, simplemente asignará los colores a la región enmascarada dependiendo de la máscara y los valores del rango de color.
Enlace para cv2. bitwise_and:
Paso 5: ¡Finalmente se muestra
Aquí he usado el cv2.imshow () básico para mostrar cada cuadro como una imagen. Como tengo los datos del marco almacenados en variables, puedo recuperarlos en imshow (). Aquí he mostrado los tres fotogramas, original, enmascarado y coloreado.
Ahora tenemos que salir del ciclo while. Para esto, simplemente podemos implementar cv2.wait. Key (). Básicamente, indica el tiempo de espera antes de responder. Entonces, si pasa 0, esperará infinitamente y 0xFF le indicará que la arquitectura es de 64 bits. "ord ()" especifica el carácter que cuando se presiona ejecutará el comando break en el bloque if y saldrá del bucle.
Luego, cap.release () cierra la grabadora de video y cv2.destroyAllWindows () cierra todas las ventanas abiertas.
Si tiene algún problema, hágamelo saber.
Enlace al código fuente:
Recomendado:
Detección, entrenamiento y reconocimiento de rostros Opencv: 3 pasos
Detección, entrenamiento y reconocimiento de rostros de Opencv: OpenCV es una biblioteca de visión por computadora de código abierto que es muy popular para realizar tareas básicas de procesamiento de imágenes como desenfocar, mezclar imágenes, mejorar la calidad de imagen y video, establecer umbrales, etc. Además del procesamiento de imágenes, Prov
Máquina de pintura con detección de color: 4 pasos
Máquina de pintura con detección de color: la máquina de pintura con detección de color copia los colores a tu alrededor y te permite dibujar con ellos. Si tiene la pintura de colores primarios, puede usar el sensor de color RGB para detectar el color que desea y mezclarlo. Pero recuerde, use el objeto de color brillante
Detección de color en Python usando OpenCV: 8 pasos
Detección de color en Python usando OpenCV: ¡Hola! Este instructivo se usa para guiar sobre cómo extraer un color específico de una imagen en Python usando la biblioteca openCV. Si eres nuevo en esta técnica, no te preocupes, al final de esta guía podrás programar tu propio color
Seguimiento de objetos basado en detección de color: 10 pasos
Seguimiento de objetos basado en detección de color: historia Hice este proyecto para aprender a procesar imágenes usando Raspberry PI y abrir CV. Para hacer este proyecto más interesante, utilicé dos servomotores SG90 y monté una cámara en él. Un motor se usa para moverse horizontalmente y el segundo motor se usa para moverse verticalmente
Detección de color con LED RGB: 4 pasos
Detección de color mediante LED RGB: ¿Alguna vez ha deseado una forma automatizada de detectar el color de un objeto? Al hacer brillar una luz de cierto color sobre el objeto y observar cuánta luz se refleja, puede saber de qué color es el objeto. Por ejemplo, si enciende una luz roja o