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

Canny Edge Detection

La detección de bordes de Canny es un algoritmo de varias etapas que reduce el ruido, detecta cambios bruscos de brillo y crea mapas de bordes finos para la visión artificial.

La detección de bordes de Canny es un algoritmo de procesamiento de imágenes de varias etapas que identifica cambios bruscos de brillo y los convierte en un mapa de bordes binario y fino. Reduce el ruido, localiza las transiciones de intensidad y conecta los píxeles de borde fiables para formar contornos. En la visión artificial, estos contornos describen la estructura de la imagen para analizar formas y realizar mediciones.

John Canny desarrolló el método en 1983 y lo describió en su artículo de 1986, A Computational Approach to Edge Detection. Su diseño equilibra tres objetivos: detectar bordes reales, localizarlos con precisión y producir una sola respuesta por borde. «Detector de bordes de Canny» es un sinónimo del algoritmo.

Cómo funciona la detección de bordes de Canny#

El algoritmo combina el preprocesamiento de datos con el filtrado y el análisis de conectividad. Sus cinco etapas tienen funciones distintas:

  • Reducción del ruido: El suavizado gaussiano promedia los píxeles cercanos con pesos que dependen de la distancia y suprime las fluctuaciones que crearían bordes no deseados.
  • Estimación del gradiente: Las derivadas horizontal y vertical miden la rapidez con que cambia el brillo. Al combinarlas se obtiene la intensidad del borde y una dirección perpendicular al límite. OpenCV utiliza derivadas de Sobel en esta etapa.
  • Adelgazamiento de bordes: La supresión de no máximos conserva los picos locales del gradiente en la dirección del gradiente y produce líneas finas en lugar de franjas anchas.
  • Doble umbral: Un umbral alto identifica los bordes fuertes; uno bajo elimina las respuestas débiles. Los píxeles situados entre ambos umbrales se convierten en candidatos.
  • Enlace por histéresis: Los píxeles candidatos se conservan si están conectados a un borde fuerte a través de otros candidatos. Los candidatos aislados desaparecen.

Umbrales, suavizado y modos de fallo#

Los umbrales se aplican a la intensidad del gradiente, no al brillo sin procesar ni a la confianza del modelo. Si los bajas, conservas más detalles y ruido; si los subes, eliminas los límites débiles. Subir el umbral alto también reduce las semillas de bordes fuertes disponibles para la conexión por histéresis.

La escala gaussiana controla una compensación distinta. Un mayor suavizado suprime el ruido, pero elimina las estructuras finas. En el ejemplo del cuadrado con ruido de scikit-image, cambiar la desviación estándar gaussiana modifica cuánto ruido permanece alrededor del cuadrado.

En la inspección de grietas, las superficies de hormigón rugosas producen bordes de textura no deseados y contornos de grietas incompletos. Aumentar los umbrales elimina algunos bordes falsos, pero también hace que se pierdan secciones reales de las grietas.

Sobel estima las derivadas de intensidad; Canny combina la estimación del gradiente con el suavizado, el adelgazamiento y la selección basada en la conectividad. La etapa de adelgazamiento de Canny compara píxeles vecinos, mientras que la NMS para detección de objetos compara cajas predichas que se solapan.

Detección de bordes de Canny en Python#

Instala las dependencias con pip install opencv-python numpy. Este ejemplo usa OpenCV para guardar un mapa de bordes de la muestra del autobús:

from urllib.request import urlopen

import cv2
import numpy as np

with urlopen("https://ultralytics.com/images/bus.jpg") as response:
    encoded = np.frombuffer(response.read(), dtype=np.uint8)
gray = cv2.imdecode(encoded, cv2.IMREAD_GRAYSCALE)

# Suaviza la imagen antes de calcular los gradientes de intensidad.
smoothed = cv2.GaussianBlur(gray, (5, 5), 1.4)
edges = cv2.Canny(smoothed, 50, 150, L2gradient=True)
cv2.imwrite("canny_edges.png", edges)

El PNG guardado muestra los bordes conservados en blanco sobre un fondo negro. En el flujo de trabajo de detección de bordes de OpenCV, el segundo y el tercer argumento de Canny especifican los umbrales bajo y alto. L2gradient=True usa la magnitud euclídea del gradiente; el valor predeterminado usa la suma de las derivadas horizontales y verticales en valor absoluto. Estas opciones cambian los valores del gradiente y, por tanto, el comportamiento de los umbrales.

Canny permite la extracción de características geométricas: el ejemplo de detección de líneas de scikit-image lo aplica a una fotografía de un cameraman antes de que una transformada de Hough probabilística extraiga segmentos rectos. Canny proporciona píxeles de borde; la votación de Hough los agrupa en líneas. La detección de objetos asigna categorías y cajas, mientras que la segmentación de instancias asigna píxeles a objetos individuales.

La segmentación de YOLO26 de Ultralytics devuelve máscaras para el aislamiento de objetos, que pueden seleccionar regiones de la imagen para procesarlas por separado con Canny. Esto combina la selección de objetos aprendida con la extracción clásica de límites.

En la IA generativa, ControlNet usa mapas de Canny como condiciones espaciales para los modelos de difusión. Su implementación condicionada por Canny guía la generación con Stable Diffusion 1.5 usando contornos extraídos junto con una instrucción de texto.

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