Este es el código
que tanto esperabas... No olvides suscribirte a mi canal de YouTube: Alex7Tutoriales
La visión por computadora es una de las áreas más fascinantes de la tecnología moderna. Con la ayuda de herramientas como OpenCV y Python, ahora es posible detectar objetos y realizar un seguimiento de ellos en tiempo real.
¿Qué es OpenCV y por qué usarlo?
OpenCV (Open Source Computer Vision) es una biblioteca de software de código abierto diseñada para tareas de visión por computadora. Su capacidad para procesar imágenes y videos lo convierte en una herramienta fundamental para proyectos que involucran reconocimiento de patrones, seguimiento de objetos, y análisis de imágenes.
Python, por otro lado, es un lenguaje de programación conocido por su simplicidad y versatilidad. Al combinar Python con OpenCV, puedes desarrollar aplicaciones de visión por computadora de manera eficiente y con menos líneas de código.
Detectando Objetos con OpenCV
El proceso para detectar objetos y encerrarlos en recuadros se basa principalmente en dos conceptos fundamentales: detección de bordes y segmentación de contornos.
Pasos Básicos del Proceso:
Cargar y preprocesar la imagen o el video:
- Convertir la imagen a escala de grises.
- Aplicar suavizado para reducir el ruido.
Detectar bordes:
- Utilizar el algoritmo Canny para identificar los bordes en la imagen.
Encontrar contornos:
- Analizar los bordes detectados para identificar los contornos de los objetos.
Dibujar rectángulos alrededor de los objetos:
- Utilizar las coordenadas de los contornos para encerrar los objetos en recuadros.
***************************************************************************
#importacion de modulos
import cv2
import numpy as np
#creamos el objeto de video (camara)
captura=cv2.VideoCapture(0) #Si no te abre la camara prueba con 1 o 2 u otros
while True:
#capturamos frame a frame
(grabbed,image) = captura.read()
#si hemos llegado al final del video salimos
if not grabbed:
break
#1.Conversion a Escala de Grises
gray=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
#cv2.imshow("Escala de Grises sin filtro",gray)
gray=cv2.GaussianBlur(gray,(3,3),0)
#cv2.imshow("Escala de Grises",gray)
#2.Deteccion de bordes
edged=cv2.Canny(gray,50,150)
#cv2.imshow("Edged",edged)
#3.Operaciones Morfologicas Cierre
kernel=cv2.getStructuringElement(cv2.MORPH_RECT,(5,5))
closed=cv2.morphologyEx(edged,cv2.MORPH_CLOSE,kernel,iterations=2)
cv2.imshow("Closed",closed)
#4.Encontrar contornos
_,cnts,_=cv2.findContours(closed.copy(),
cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)
#print "contornos",len(cnts)
total=0
for c in cnts:
area=cv2.contourArea(c)
#print "area",area
if area>1700:
#aproximacion de contorno
peri=cv2.arcLength(c,True) #Perimetro
approx=cv2.approxPolyDP(c,0.02*peri,True)
#Si la aproximacion tiene 4 vertices correspondera a un rectangulo (Libro)
if len(approx)==4:
cv2.drawContours(image,[approx],-1,(0,255,0),3,cv2.LINE_AA)
total+=1
#5.Poner texto en imagen
letrero= 'Objetos: '+ str(total)
cv2.putText(image,letrero,(10,150),cv2.FONT_HERSHEY_SIMPLEX,1,(255,0,0),2)
#Mostramos imagen
cv2.imshow("video", image)
#capturamos teclado
tecla=cv2.waitKey(25) & 0xFF
#Salimos si la tecla presionada es ESC
if tecla== 27:
break
#Liberamos Objeto
captura.release()
#Destruimos Ventanas
cv2.destroyAllWindows()
************************************************************************************
La detección de objetos usando Visión por Computador es una herramienta muy útil para crear aplicaciones novedosas y controlar procesos.
Aplicaciones Prácticas de la Detección de Objetos
- Seguridad: Monitoreo y seguimiento de intrusos en sistemas de videovigilancia.
- Robótica: Guía de robots autónomos para interactuar con objetos en su entorno.
- Agricultura: Identificación de cultivos o plagas en imágenes aéreas.
- Comercio minorista: Seguimiento de productos en estanterías mediante cámaras.
Consejos para Optimizar tu Proyecto
- Ajusta los parámetros del detector de bordes Canny para mejorar la precisión según el entorno.
- Preprocesa tus imágenes aplicando filtros de suavizado para reducir el ruido antes de detectar bordes.
- Experimenta con otros métodos de detección de contornos, como el uso de máscaras o técnicas avanzadas de segmentación.
Expandiendo las Posibilidades: Seguimiento y Análisis
- Seguimiento en tiempo real: Utiliza algoritmos como el de Kalman o redes neuronales para rastrear objetos en movimiento.
- Clasificación de objetos: Integra modelos de aprendizaje automático para identificar qué tipo de objetos estás detectando.
El uso de OpenCV y Python para detectar objetos es solo el comienzo de lo que puedes lograr con la visión por computadora. Este tutorial te brinda una base sólida para experimentar y desarrollar proyectos avanzados. Desde la creación de sistemas de monitoreo hasta soluciones innovadoras en diversas industrias, las posibilidades son infinitas.
Como siempre, espero que estos videos e información les sea muy útil, no olvides suscribirte a mi canal en YouTube. Saludos 😎
Tags
camara
codigo
color
contar
deteccion objetos
detectar
detectar objetos
objetos
opencv
programación
python
vision
visión por computador
muy buen código amigo me ha sido de ayuda, gracias
ResponderEliminar