Ultralytics YOLO27: Únete a la lista de espera.
Licencia YOLO
Volver al glosario de Ultralytics

OpenCV

OpenCV es una biblioteca de código abierto con más de 2500 algoritmos para el procesamiento de imágenes y la visión artificial. Descubre qué hace, cómo se combina con el aprendizaje profundo y consulta el código.

OpenCV (Biblioteca de visión artificial de código abierto) es una biblioteca de código abierto con más de 2.500 algoritmos optimizados para el procesamiento de imágenes y la visión artificial (CV). Lee y escribe imágenes y vídeos, captura flujos de cámara, filtra y transforma píxeles, detecta y empareja características, calibra cámaras y ejecuta redes neuronales entrenadas. OpenCV nació en Intel Research en 1999, está escrito en C++ con enlaces para Python y Java, y se distribuye con licencia Apache 2.0 desde la versión 4.5.0. En Python se instala con pip install opencv-python y se importa como cv2; representa todas las imágenes como matrices NumPy.

Qué hace OpenCV#

  • Entrada y salida de imágenes y vídeo: Lee y escribe formatos de imagen habituales, descodifica archivos de vídeo y captura fotogramas de cámaras y flujos de red.
  • Procesamiento de imágenes: Cambio de tamaño, conversión del espacio de color, desenfoque, enfoque, umbralización y operaciones morfológicas: los pasos de preprocesamiento habituales antes de que una imagen llegue a un modelo.
  • Detección y emparejamiento de características: Los detectores de esquinas y puntos clave, como SIFT y ORB, encuentran puntos distintivos que pueden emparejarse entre imágenes para unir panorámicas, localizar objetos y realizar SLAM visual. SIFT pasó a formar parte de la biblioteca principal en la versión 4.4.0, tras expirar su patente.
  • Geometría de cámaras: La calibración elimina la distorsión de la lente, las homografías corrigen la perspectiva y el emparejamiento estéreo recupera la profundidad a partir de dos cámaras para robótica y reconstrucción 3D.
  • Análisis de vídeo: La sustracción de fondo separa los objetos en movimiento de una escena estática, y el flujo óptico mide cómo se desplazan los píxeles entre fotogramas.
  • Inferencia con redes neuronales profundas: El módulo dnn carga modelos entrenados, por ejemplo en formato ONNX, y los ejecuta en la CPU o la GPU sin necesidad de instalar un marco de aprendizaje profundo.

Esta canalización clásica encuentra los contornos de las formas de una imagen sin ningún modelo aprendido:

import urllib.request

import cv2
import numpy as np

# Download a sample image and decode it into a BGR NumPy array
data = urllib.request.urlopen("https://ultralytics.com/images/bus.jpg").read()
image = cv2.imdecode(np.frombuffer(data, np.uint8), cv2.IMREAD_COLOR)

# Classical pipeline: grayscale, blur to suppress noise, then Canny edge detection
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
blurred = cv2.GaussianBlur(gray, (5, 5), 0)
edges = cv2.Canny(blurred, 50, 150)

# Trace connected edge pixels into contours, the outlines of shapes in the scene
contours, _ = cv2.findContours(edges, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
print(f"Image shape: {image.shape}, contours found: {len(contours)}")

Imprime Image shape: (1080, 810, 3), contours found: 1449: una imagen de 1080×810 con tres canales de color y 1.449 contornos independientes trazados a partir de sus bordes. OpenCV almacena los canales de color en el orden azul-verde-rojo (BGR), por lo que primero hay que convertir las imágenes que se pasan a bibliotecas que esperan RGB con cv2.cvtColor.

OpenCV y los marcos de aprendizaje profundo#

OpenCV y los marcos de aprendizaje profundo, como PyTorch y TensorFlow, trabajan en distintas etapas de una misma canalización. OpenCV se ocupa del preprocesamiento de datos y de la salida alrededor de la red: captura fotogramas, cambia su tamaño, dibuja resultados y escribe el vídeo de salida; el marco entrena y ejecuta la red neuronal convolucional intermedia. Una aplicación de vídeo en tiempo real repite estos pasos para cada fotograma:

Ultralytics YOLO26 acepta directamente los fotogramas NumPy BGR de OpenCV, y results[0].plot() devuelve un fotograma anotado en el mismo formato, por lo que el modelo se integra en un bucle de OpenCV sin necesidad de ninguna conversión. Este ejemplo ejecuta una pasada del bucle sobre la imagen de muestra incluida en el paquete ultralytics:

import cv2
from ultralytics import YOLO
from ultralytics.utils import ASSETS

# OpenCV carga la imagen de muestra incluida como una matriz NumPy BGR
frame = cv2.imread(str(ASSETS / "bus.jpg"))

# YOLO26 recibe directamente el fotograma de OpenCV
model = YOLO("yolo26n.pt")
results = model(frame)

# plot() devuelve una matriz BGR anotada que OpenCV puede mostrar o guardar
annotated = results[0].plot()
cv2.imwrite("bus_annotated.jpg", annotated)

Dentro de un bucle de vídeo, se ejecutan las mismas tres llamadas en cada fotograma de cv2.VideoCapture, y cv2.imshow o cv2.VideoWriter sustituye a cv2.imwrite.

Explora las soluciones

Visión artificial en el deporte

Visión artificial en el deporte

Descubre cómo Ultralytics YOLO impulsa la visión artificial en el deporte con el seguimiento de jugadores y balones, analíticas de rendimiento, información útil para entrenadores y rehabilitación de deportistas.
Más información
Visión artificial para imágenes aéreas

Visión artificial para imágenes aéreas

Convierte imágenes aéreas y de drones en información útil en tiempo real para la agricultura, la acuicultura, la conservación y el análisis geoespacial con Ultralytics YOLO.
Más información
Visión artificial en el sector aeroespacial

Visión artificial en el sector aeroespacial

Aplica la visión artificial en el sector aeroespacial con Ultralytics YOLO para inspeccionar aeronaves, detectar objetos extraños en pistas, gestionar operaciones en tierra y detectar defectos en materiales compuestos.
Más información
Visión artificial en seguridad

Visión artificial en seguridad

Protege todas tus instalaciones con los modelos Ultralytics YOLO. La IA visual permite supervisar perímetros, detectar amenazas, reconocer matrículas y mejorar la seguridad laboral.
Más información
Visión artificial en robótica

Visión artificial en robótica

Potencia máquinas más inteligentes con los modelos Ultralytics YOLO. La IA visual en robótica impulsa la navegación autónoma, la percepción, el seguimiento de objetos y el control en tiempo real.
Más información
Visión artificial en logística

Visión artificial en logística

Agiliza la logística con modelos Ultralytics YOLO. La IA visual permite inspeccionar paquetes, clasificarlos, realizar el seguimiento de vehículos y supervisar la seguridad del almacén en tiempo real.
Más información
Visión artificial en el comercio minorista

Visión artificial en el comercio minorista

Reinventa el comercio minorista con modelos Ultralytics YOLO. La IA visual permite realizar el seguimiento del inventario, supervisar estanterías, gestionar colas y obtener información más útil sobre los clientes.
Más información
Visión artificial en el sector sanitario

Visión artificial en el sector sanitario

Desarrolla soluciones sanitarias con modelos Ultralytics YOLO. La IA visual en el sector sanitario permite acelerar el diagnóstico por imagen, mejorar los diagnósticos y supervisar a los pacientes.
Más información
Visión artificial en la fabricación

Visión artificial en la fabricación

Optimiza la fabricación con modelos Ultralytics YOLO. La IA visual mejora el control de calidad, la detección de defectos, el cumplimiento de las normas de uso de EPI y la automatización de las líneas de montaje.
Más información
Visión artificial en la automoción

Visión artificial en la automoción

Aplica la visión artificial al sector de la automoción con modelos Ultralytics YOLO. La IA visual mejora la seguridad vial, la asistencia al conductor y la automatización de vehículos para lograr carreteras más inteligentes.
Más información
Visión artificial en la agricultura

Visión artificial en la agricultura

Incorpora la IA de visión a la agricultura inteligente con modelos Ultralytics YOLO. Impulsa la monitorización de cultivos, el seguimiento del ganado y la agricultura de precisión para obtener cosechas más abundantes e inteligentes.
Más información

¡Construyamos juntos el futuro de la IA!

Inicia tu recorrido hacia el futuro del aprendizaje automático