Ultralytics YOLO27: Entre na lista de espera.
Licenciar o YOLO
Voltar ao glossário da Ultralytics

Hough Transform

A transformada de Hough é uma técnica de visão computacional baseada em votação que detecta linhas, círculos e formas, mesmo com lacunas ou bordas de imagem ruidosas.

A transformada de Hough é uma técnica geométrica de extração de características que detecta linhas, círculos e outras formas parametrizadas, permitindo que os pontos da imagem votem nas formas possíveis. Os pontos pertencentes à mesma estrutura reforçam-se mutuamente, produzindo um pico acentuado numa tabela de votação. Em visão computacional, isso ajuda a recuperar formas com lacunas ou bordas ruidosas.

Paul V. C. Hough apresentou a técnica em 1959, em Análise automática de imagens de câmaras de bolhas, para detectar trajetórias de partículas em fotografias de física. Richard Duda e Peter Hart introduziram a representação de ângulo e distância, amplamente utilizada, no artigo de 1972 sobre detecção de linhas e curvas.

Como funciona a votação de Hough#

Um fluxo de trabalho típico começa com o pré-processamento de dados e a detecção de bordas. Um detector de bordas identifica alterações locais de brilho; a transformada de Hough agrupa os pixels de borda em estruturas geométricas. O operador de Sobel estima os gradientes de brilho, enquanto o Canny produz um mapa de bordas fino, adequado para a votação de linhas.

Cada linha candidata é representada por rho, sua distância perpendicular com sinal em relação à origem da imagem, e theta, o ângulo dessa perpendicular em relação ao eixo x. Isso permite lidar com linhas verticais sem inclinação infinita. Cada pixel de borda vota nos pares rho–theta compatíveis num acumulador, uma tabela que divide o espaço de parâmetros em intervalos discretos. Os pixels colineares contribuem para o mesmo intervalo, mesmo quando estão separados na imagem. Os picos identificam as linhas sustentadas pelas votações.

A geometria e as regras de votação determinam o resultado. Um detector de aprendizagem profunda aprende padrões visuais a partir de dados de treino; a detecção de Hough usa um modelo de forma escolhido e limiares numéricos, em vez de pesos do modelo aprendidos.

Transformadas de linha, probabilística e de círculo#

Três implementações comuns diferem na pesquisa e no resultado:

  • Transformada de linha padrão: cv2.HoughLines() retorna pares rho–theta que descrevem linhas infinitas. Os extremos dos segmentos exigem processamento adicional.
  • Transformada probabilística de linha: cv2.HoughLinesP() reduz o trabalho de votação por meio da amostragem de pontos e retorna diretamente os extremos dos segmentos. minLineLength rejeita segmentos curtos; maxLineGap controla a distância máxima entre trechos alinhados que podem ser unidos.
  • Transformada de círculo: os candidatos a círculo exigem um centro e um raio. cv2.HoughCircles() usa uma abordagem baseada em gradientes, e os limites do raio reduzem o espaço de pesquisa. A entrada é uma imagem em escala de cinza, enquanto as funções de linha recebem uma imagem binária.

Detecção de segmentos de linha em Python#

Instala as dependências com pip install opencv-python numpy. Este exemplo usa OpenCV para detectar e desenhar segmentos de linha na imagem de amostra do autocarro.

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)
# Extrai as bordas para a votação.
edges = cv2.Canny(gray, 50, 150)
# Deteta segmentos finitos sustentados pelos votos do 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)

A imagem guardada sobrepõe os segmentos retornados a vermelho. Os intervalos de rho têm um píxel de largura, os intervalos de theta abrangem um grau, e threshold=80 define o limiar de votos do acumulador. As definições de comprimento dos segmentos e de lacunas são medidas em píxeis.

Aplicações e limitações práticas#

No processamento de documentos, a extração das linhas da grelha ajuda na análise estrutural: o OpenCV demonstra a detecção de Hough numa imagem de Sudoku. A votação circular localiza os centros e os raios das moedas nos exemplos de círculos e elipses do scikit-image. Estes resultados descrevem a geometria; a detecção de objetos acrescenta categorias semânticas, e a segmentação de instâncias atribui píxeis a objetos individuais.

Um protótipo de medição de vigas de aço combina máscaras do YOLOv8, bordas Canny e linhas de Hough probabilísticas para ajudar a extrair cantos. A segmentação do Ultralytics YOLO26 fornece máscaras para o isolamento de objetos, permitindo usar a mesma abordagem com entrada mascarada antes do processamento geométrico separado.

Intervalos mais finos no acumulador aumentam o uso de memória; intervalos mais grossos fundem candidatos próximos. Na extração de limites de tabelas, bordas incompletas reduzem o número de limites detetáveis, enquanto linhas não relacionadas podem causar correções incorretas dos limites. Aumentar maxLineGap permite unir lacunas maiores entre trechos alinhados; aumentar minLineLength remove segmentos mais curtos.

Explore as soluções

Visão computacional no desporto

Visão computacional no desporto

Descubra como o Ultralytics YOLO impulsiona a visão computacional no esporte com rastreamento de jogadores e bolas, análise de desempenho, insights para treinadores e reabilitação de atletas.
Saiba mais
Visão computacional para imagens aéreas

Visão computacional para imagens aéreas

Transforma imagens de drones e aéreas em informações em tempo real para a agricultura, a aquacultura, a conservação e a análise geoespacial com Ultralytics YOLO.
Saiba mais
Visão computacional no setor aeroespacial

Visão computacional no setor aeroespacial

Aplica visão computacional na indústria aeroespacial com Ultralytics YOLO para inspecionar aeronaves, detetar objetos estranhos na pista (FOD), apoiar operações aeroportuárias em terra e detetar defeitos em materiais compósitos.
Saiba mais
Visão computacional na segurança

Visão computacional na segurança

Protege todas as instalações com os modelos Ultralytics YOLO. A IA visual permite monitorizar perímetros, detetar ameaças, reconhecer matrículas e melhorar a segurança no local de trabalho.
Saiba mais
Visão computacional na robótica

Visão computacional na robótica

Potencia máquinas mais inteligentes com os modelos Ultralytics YOLO. A IA visual na robótica permite navegação autónoma, perceção, rastreamento de objetos e controlo em tempo real.
Saiba mais
Visão computacional na logística

Visão computacional na logística

Otimize a logística com os modelos Ultralytics YOLO. A IA de visão permite inspecionar pacotes, fazer triagem, rastrear veículos e monitorar a segurança em tempo real nos armazéns.
Saiba mais
Visão computacional no varejo

Visão computacional no varejo

Reinvente o varejo com os modelos Ultralytics YOLO. A IA de visão permite rastrear o estoque, monitorar prateleiras, gerenciar filas e obter insights mais inteligentes sobre clientes.
Saiba mais
Visão computacional na área da saúde

Visão computacional na área da saúde

Desenvolva soluções de saúde com os modelos Ultralytics YOLO. A IA de visão na área da saúde permite obter imagens médicas mais rapidamente, diagnósticos mais inteligentes e monitoramento de pacientes.
Saiba mais
Visão computacional na manufatura

Visão computacional na manufatura

Otimize a manufatura com modelos Ultralytics YOLO. A IA visual impulsiona o controle de qualidade, a detecção de defeitos, a conformidade com o uso de EPI e a automação da linha de montagem.
Saiba mais
Visão computacional no setor automotivo

Visão computacional no setor automotivo

Aplique visão computacional no setor automotivo com modelos Ultralytics YOLO. A IA visual aumenta a segurança viária, aprimora a assistência ao condutor e viabiliza a automação de veículos para estradas mais inteligentes.
Saiba mais
Visão computacional na agricultura

Visão computacional na agricultura

Leve a IA de visão à agricultura inteligente com os modelos Ultralytics YOLO. Aprimore o monitoramento de plantações, o rastreamento de animais e a agricultura de precisão para obter safras maiores e mais inteligentes.
Saiba mais

Vamos construir juntos o futuro da IA!

Comece sua jornada rumo ao futuro do aprendizado de máquina