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

Hough Transform

La transformada de Hough es una técnica de visión artificial basada en la votación que detecta líneas, círculos y formas, incluso cuando hay huecos o ruido en los bordes de la imagen.

La transformada de Hough es una técnica geométrica de extracción de características que detecta líneas, círculos y otras formas parametrizadas haciendo que los puntos de la imagen voten por las formas posibles. Los puntos que pertenecen a una misma estructura se refuerzan entre sí y generan un pico pronunciado en una tabla de votación. En visión artificial, esto permite recuperar formas con huecos o bordes ruidosos.

Paul V. C. Hough presentó la técnica en 1959 en Machine Analysis of Bubble Chamber Pictures, para abordar el análisis de trayectorias de partículas en fotografías de física. Richard Duda y Peter Hart introdujeron la representación de ángulo y distancia, muy utilizada actualmente, en su artículo de 1972 sobre detección de líneas y curvas.

Cómo funciona la votación de Hough#

Un flujo de trabajo habitual comienza con el preprocesamiento de datos y la detección de bordes. Un detector de bordes identifica cambios locales de brillo; la transformada de Hough agrupa los píxeles de borde en estructuras geométricas. El operador de Sobel estima los gradientes de brillo, mientras que Canny genera un mapa de bordes finos adecuado para la votación de líneas.

Cada línea candidata se representa mediante rho, su distancia perpendicular con signo respecto al origen de la imagen, y theta, el ángulo de esa perpendicular con respecto al eje x. Así se pueden representar líneas verticales sin una pendiente infinita. Cada píxel de borde vota por pares rho–theta compatibles en un acumulador, una tabla que divide el espacio de parámetros en intervalos discretos. Los píxeles colineales contribuyen al mismo intervalo, aunque estén separados en la imagen. Los picos identifican las líneas respaldadas por los votos.

La geometría y las reglas de votación determinan el resultado. Un detector de aprendizaje profundo aprende patrones visuales a partir de datos de entrenamiento; la detección de Hough utiliza un modelo de forma elegido y umbrales numéricos, en lugar de pesos del modelo aprendidos.

Transformadas de líneas, probabilística y de círculos#

Tres implementaciones habituales se diferencian por la búsqueda y el resultado:

  • Transformada estándar de líneas: cv2.HoughLines() devuelve pares rho–theta que describen líneas infinitas. Para obtener los extremos de los segmentos, se necesita un procesamiento adicional.
  • Transformada probabilística de líneas: cv2.HoughLinesP() reduce el trabajo de votación mediante el muestreo de puntos y devuelve directamente los extremos de los segmentos. minLineLength descarta los segmentos cortos; maxLineGap controla la distancia máxima entre tramos alineados para poder unirlos.
  • Transformada de círculos: para determinar los círculos candidatos, se necesitan un centro y un radio. cv2.HoughCircles() utiliza un método basado en gradientes, y los límites del radio acotan la búsqueda. La entrada está en escala de grises, mientras que las funciones para líneas reciben una imagen binaria.

Detección de segmentos de línea en Python#

Instala las dependencias con pip install opencv-python numpy. En este ejemplo se utiliza OpenCV para detectar y dibujar segmentos de línea en la imagen de 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)
image = cv2.imdecode(encoded, cv2.IMREAD_COLOR)
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# Extrae los bordes para la votación.
edges = cv2.Canny(gray, 50, 150)
# Detecta segmentos finitos respaldados por los votos del acumulador.
lines = cv2.HoughLinesP(
    edges,
    1,
    np.pi / 180,
    threshold=80,
    minLineLength=80,
    maxLineGap=10,
)
if lines is not None:
    for x1, y1, x2, y2 in lines[:, 0]:
        cv2.line(image, (x1, y1), (x2, y2), (0, 0, 255), 2)
cv2.imwrite("hough_segments.jpg", image)

La imagen guardada superpone en rojo los segmentos devueltos. Los intervalos rho tienen un ancho de un píxel, los intervalos theta abarcan un grado y threshold=80 establece el umbral de votos del acumulador. La longitud de los segmentos y la distancia entre tramos se miden en píxeles.

Aplicaciones y limitaciones prácticas#

En el procesamiento de documentos, la extracción de las líneas de la cuadrícula permite analizar la estructura: OpenCV muestra la detección de Hough en una imagen de un sudoku. La votación circular localiza los centros y radios de las monedas en los ejemplos de círculos y elipses de scikit-image. Estos resultados describen la geometría; la detección de objetos añade categorías semánticas, y la segmentación de instancias asigna píxeles a objetos individuales.

Un prototipo para medir vigas de acero combina máscaras de YOLOv8, bordes de Canny y líneas de Hough probabilísticas para facilitar la extracción de esquinas. La segmentación de Ultralytics YOLO26 proporciona máscaras para el aislamiento de objetos, lo que permite aplicar el mismo enfoque con entradas enmascaradas antes de procesar la geometría por separado.

Los intervalos más finos del acumulador aumentan el uso de memoria; los intervalos más gruesos fusionan candidatos cercanos. En la extracción de los límites de una tabla, los bordes incompletos reducen la cantidad de límites detectables, mientras que las líneas ajenas pueden generar correcciones de límites incorrectas. Al aumentar maxLineGap, se unen interrupciones más grandes entre tramos alineados; al aumentar minLineLength, se eliminan los segmentos más cortos.

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