Laplaciano da Gaussiana (LoG)

programador

O Laplaciano da Gaussiana (LoG) é um operador avançado para detecção de bordas. Primeiramente, ele suaviza a imagem com um filtro Gaussiano. Em seguida, aplica o Laplaciano (derivada segunda) ao resultado. O LoG pode ser implementado como um único kernel. Este kernel tem formato semelhante a um “chapéu mexicano”. Por exemplo, a função LoG é circularmente simétrica. Diferentemente do gradiente, o LoG é isotrópico (invariante a rotação). Ele detecta bordas onde a resposta cruza por zero. Cruzamentos por zero ocorrem nas transições de claro para escuro. Consequentemente, o LoG produz bordas fechadas e contínuas. Portanto, ele é útil para segmentação de objetos.

fundamento matemático do operador log

O LoG combina dois operadores matemáticos distintos. Primeiramente, a Gaussiana suaviza a imagem e reduz ruídos. Sua fórmula é G(x,y) = (1/(2πσ²)) * exp(-(x²+y²)/(2σ²)). Em seguida, o Laplaciano calcula a segunda derivada. O Laplaciano é definido como ∇² = ∂²/∂x² + ∂²/∂y². Aplicando o Laplaciano à Gaussiana, obtemos o LoG. A fórmula resultante é ∇²G(x,y) = ( (x²+y²-2σ²) / (2πσ⁶) ) * exp(-(x²+y²)/(2σ²)). Este kernel tem soma zero, como esperado para derivadas. Parâmetro σ (sigma) controla a escala de detecção. Valores pequenos de σ detectam bordas finas. Valores grandes de σ detectam bordas mais grossas e difusas.

diferença de gaussianas (dog) como aproximação

A diferença de Gaussianas (DoG) aproxima eficientemente o operador LoG. A DoG é calculada subtraindo duas imagens suavizadas com σ diferentes. Especificamente, DoG = G(x,y,σ₁) – G(x,y,σ₂). Uma razão típica entre os sigmas é 1.6:1. Por exemplo, σ₂ = 1.6 * σ₁ produz boa aproximação. O detector SIFT utiliza a DoG para localizar pontos de interesse. A vantagem da DoG é a eficiência computacional. Diferentemente do LoG, ela não requer o cálculo de segundas derivadas. Consequentemente, a DoG é mais rápida e fácil de implementar. Portanto, muitos sistemas práticos usam a DoG como substituta do LoG.

quando utilizar o operador log

Utilize o LoG quando precisar de bordas fechadas e contínuas. Ele é ideal para segmentação de objetos com formas suaves. Por exemplo, células em imagens médicas ou planetas em astronomia. O LoG também é útil quando a orientação da borda não é relevante. Sua isotropia garante detecção uniforme em todas as direções. Outra aplicação é na detecção de manchas (blobs) na imagem. O LoG responde fortemente a regiões circulares de tamanho adequado. Contudo, evite o LoG em imagens com muito ruído. A derivada segunda amplifica significativamente as altas frequências. Portanto, pré-suavize a imagem ou use um σ maior. Em sistemas de tempo real, prefira operadores mais rápidos como Sobel ou Canny.

Detector de Canny

programador

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.

LinkedIn
Share
Instagram