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

Canny Edge Detection

A deteção de contornos de Canny é um algoritmo em várias etapas que reduz o ruído, deteta alterações acentuadas de brilho e cria mapas de contornos finos para visão computacional.

A deteção de contornos de Canny é um algoritmo de processamento de imagem em várias etapas que identifica alterações acentuadas de brilho e as converte num mapa de contornos binário e fino. Reduz o ruído, localiza transições de intensidade e liga os píxeis de contorno fiáveis em contornos. Em visão computacional, estes contornos descrevem a estrutura da imagem para análise e medição de formas.

John Canny desenvolveu o método em 1983 e descreveu-o no artigo de 1986, Uma abordagem computacional à deteção de contornos. O seu desenho equilibra três objetivos: detetar contornos reais, localizá-los com precisão e produzir uma resposta por contorno. «Detetor de contornos de Canny» é um sinónimo do algoritmo.

Como funciona a deteção de contornos de Canny#

O algoritmo combina o pré-processamento de dados com filtragem e análise de conectividade. As cinco etapas têm funções distintas:

  • Redução de ruído: A suavização gaussiana calcula a média de píxeis próximos com pesos que dependem da distância, suprimindo flutuações que criariam contornos indesejados.
  • Estimativa do gradiente: As derivadas horizontais e verticais medem a rapidez com que o brilho muda. A sua combinação indica a intensidade do contorno e uma direção perpendicular ao limite. O OpenCV utiliza derivadas de Sobel nesta etapa.
  • Afinamento de contornos: A supressão de não máximos retém os picos locais do gradiente ao longo da direção do gradiente, produzindo cristas estreitas em vez de bandas largas.
  • Limiarização dupla: Um limiar alto identifica contornos fortes; um limiar baixo elimina respostas fracas. Os píxeis entre os dois limiares tornam-se candidatos.
  • Ligação por histerese: Os píxeis candidatos são mantidos quando estão ligados a um contorno forte através de outros candidatos. Os candidatos isolados são eliminados.

Limiares, suavização e modos de falha#

Os limiares atuam sobre a intensidade do gradiente, e não sobre o brilho bruto ou a confiança do modelo. Diminuí-los preserva mais detalhes e ruído; aumentá-los remove contornos fracos. Aumentar também o limiar alto reduz as sementes de contornos fortes disponíveis para a ligação por histerese.

A escala gaussiana controla uma relação de compromisso diferente. Uma suavização maior suprime o ruído, mas remove estruturas finas. No exemplo do quadrado ruidoso do scikit-image, alterar o desvio-padrão gaussiano muda a quantidade de ruído que permanece à volta do quadrado.

Na inspeção de fissuras, as superfícies de betão rugosas produzem contornos de textura indesejados e contornos de fissuras incompletos. Aumentar os limiares remove alguns contornos falsos, mas também faz perder secções genuínas das fissuras.

O Sobel estima derivadas de intensidade; o Canny combina a estimativa do gradiente com suavização, afinamento e seleção baseada em conectividade. A etapa de afinamento do Canny compara píxeis vizinhos, enquanto o NMS de deteção de objetos compara caixas previstas sobrepostas.

Deteção de contornos Canny em Python#

Instala as dependências com pip install opencv-python numpy. Este exemplo usa o OpenCV para guardar um mapa de contornos da 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)
gray = cv2.imdecode(encoded, cv2.IMREAD_GRAYSCALE)

# Suaviza a imagem antes de calcular os gradientes de intensidade.
smoothed = cv2.GaussianBlur(gray, (5, 5), 1.4)
edges = cv2.Canny(smoothed, 50, 150, L2gradient=True)
cv2.imwrite("canny_edges.png", edges)

O PNG guardado mostra os contornos preservados a branco sobre um fundo preto. No fluxo de trabalho de deteção de contornos do OpenCV, o segundo e o terceiro argumentos do Canny especificam os limiares baixo e alto. L2gradient=True usa a magnitude euclidiana do gradiente; por predefinição, é usada a soma das derivadas horizontais e verticais em valor absoluto. Estas escolhas alteram os valores do gradiente e, por conseguinte, o comportamento dos limiares.

O Canny permite a extração de características geométricas: o exemplo de deteção de linhas do scikit-image aplica-o a uma fotografia de um cameraman antes de uma transformada de Hough probabilística extrair segmentos de reta. O Canny fornece píxeis de contorno; a votação de Hough agrupa-os em linhas. A deteção de objetos atribui categorias e caixas, enquanto a segmentação de instâncias atribui píxeis a objetos individuais.

A segmentação do YOLO26 da Ultralytics devolve máscaras para o isolamento de objetos, que podem selecionar regiões da imagem para processamento Canny separado. Isto combina a seleção de objetos aprendida com a extração clássica de contornos.

Na IA generativa, o ControlNet usa mapas Canny como condições espaciais para modelos de difusão. A sua implementação condicionada por Canny orienta a geração com Stable Diffusion 1.5 usando contornos extraídos juntamente com um prompt de texto.

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