O detector de Canny é o algoritmo mais robusto para detecção de bordas. John F. Canny o propôs em 1986. Primeiramente, ele atende a três critérios fundamentais. Baixa taxa de erro, boa localização e resposta única. Diferentemente de operadores simples, o Canny inclui suavização. Por exemplo, ele reduz o impacto do ruído nas bordas. O algoritmo também produz bordas finas e contínuas. Consequentemente, ele é amplamente utilizado na indústria e na pesquisa. Portanto, o Canny é considerado o padrão ouro da área.
etapas do algoritmo de canny
O algoritmo de Canny executa cinco etapas principais. Primeiramente, ele suaviza a imagem com um filtro Gaussiano. Este passo reduz ruídos e detalhes irrelevantes. Em seguida, calcula o gradiente (magnitude e direção). O operador de Sobel geralmente realiza este cálculo. A terceira etapa é a supressão de não-máximos. Este passo afina as bordas para um pixel de espessura. A quarta etapa utiliza limiarização com histerese. Dois limiares (baixo e alto) são empregados. Finalmente, o algoritmo conecta bordas fracas às bordas fortes. Por exemplo, pixels acima do limiar alto são bordas definitivas. Pixels entre os limiares são bordas condicionais.
supressão de não-máximos e histerese
A supressão de não-máximos é uma etapa crucial do Canny. Ela elimina pixels que não são picos locais do gradiente. Primeiramente, o algoritmo verifica a direção da borda. Em seguida, compara o pixel com seus vizinhos nesta direção. Se o pixel não for o máximo, ele é suprimido (zerado). Este processo garante bordas com apenas um pixel de espessura. A histerese, por outro lado, resolve ambiguidades de conexão. Pixels fortes (acima do limiar alto) são sempre bordas. Pixels fracos (entre os limiares) viram bordas apenas se conectados a pixels fortes. Por exemplo, uma borda contínua é preservada mesmo com trechos fracos. Ruídos isolados, por sua vez, são descartados.
vantagens e quando utilizar o detector de canny
O detector de Canny oferece várias vantagens significativas. Primeiramente, ele produz bordas finas, contínuas e bem localizadas. Além disso, ele é robusto a ruído moderado. O algoritmo também é parametrizável através do limiar de histerese. Utilize o Canny quando a qualidade da detecção for prioritária. Por exemplo, em sistemas de visão industrial ou médica. Aplicações de reconhecimento de objetos também se beneficiam do Canny. Outro uso comum é na extração de contornos para análise de forma. Contudo, o Canny é mais lento que operadores simples como Sobel. Portanto, evite-o em sistemas embarcados com recursos limitados. Para estes casos, prefira soluções mais rápidas. Em resumo, escolha o Canny quando precisão e qualidade forem essenciais.