Processamento de Imagens e Computação Gráfica

Slides:



Advertisements
Apresentações semelhantes
Continuidade: sem interrupções
Advertisements

João Luiz Fernandes e Aura Conci Universidade Federal Fluminense
Paulo Sérgio Rodrigues PEL205
Detecção de Bordas e Linhas I
Uso de Filtros Filtros Passa Baixa
Operações envolvendo imagens
Reconhecimento de Padrões Métodos, Técnicas e Ferramentas para Aprendizado e Classificação de Dados Módulo II Introdução ao Processamento de Imagens.
ANÁLISE DISCRIMINANTE
10º CAPÍTULO Segmentação de imagem.
Filtros de Convolução (Processamento de Imagens)
Segmentação de imagens
The Cyclops Project German-Brazilian Cooperation Programme on IT CNPq GMD DLR Visão Computacional Prof. Dr. rer.nat. Aldo von Wangenheim.
Segmentação por limiarização (thesholding)
Segmentação de imagens
Contornos Original Sobel (T=8).
Michele Mengucci CVRM-Centro de Geo-Sistemas IST Lisboa
O COEFICIENTE DE HURST E O COEFICIENTE DE VARIAÇÃO ESPACIAL NA SEGMENTAÇÃO DE TEXTURAS MULTIESPECTRAIS Dra Aura Conci Éldman Oliveira Nunes.
Introdução à Computação Gráfica Geometria
Geoestatística Aplicada à Agricultura de Precisão II
Reconhecimento de Padrões Segmentação
Iana Alexandra Alves Rufino
Estrutura e movimento a partir de imagens
Acompanhamento de Cenas com Calibração Automática de Câmeras
Paulo Sérgio Rodrigues PEL205
Fundamentação Teórica
Filtragem Espacial É baseado na aplicação de máscaras na imagem.
Filtros I: o domínio espacial. FILTROS I: o domínio espacial.
Filtro Linear-Máscaras
Seminário Introdução à Visão Computacional
Análise de modelos matemáticos por meio de simulações computacionais
Interpolação de imagem
Grandezas Vetoriais & Operações com Vetores
3. Segmentação de Imagens
Sistema de equações lineares
Visão Computacional
Funções de várias variáveis
Revisão Geral Técnicas de Realce Histogramas
Capítulo III – Processamento de Imagem
Aula 8. Classificação Não Supervisonada por Regiões
Trabalho Prático II Detecção e reconexão de Contornos MC920 - Introdução ao processamento de imagens Bruno Malveira - RA Carolina Michelassi - RA
Segmentação de Fundo Marcelo Gonella
Transformada de Hough Processamento global para a detecção de linhas retas numa imagem Nenhum conhecimento é necessário a respeito da posição das linhas.
Introdução à Computação Gráfica
Digital Image Processing, 2nd ed. © 2002 R. C. Gonzalez & R. E. Woods 3 Representação da Imagem Digital O espectro eletromagnético.
Biometria Reconhecimento de Assinaturas
Algumas estruturas de dados em SIGs Tabela Vectorial Matricial.
Processamento de Imagens Segmentação
Estruturas de dados Tabela Vectorial Matricial Rede triangular irregular.
Integração numérica Aula 10 Fórmulas de Newton-Cotes: Trapézios;
Potenciação an = a . a . a a (a ≠ 0) n fatores onde: a: base
Disciplina Engenharia da Qualidade II
INTRODUÇÃO AOS MÉTODOS NUMÉRICOS Professor: Dr. Edwin B. Mitacc Meza
Segmentação de imagens segmentação Pré-processamento descrição / análise Não existe uma única e definitiva abordagem ao problema da segmentação A descrição.
UNIDADE 2 – ZEROS DAS FUNÇÕES REAIS
Processamento de Imagens e Computação Gráfica
Classificação de Imagens
Estática Estática Histórico
Filtragem de Imagens CONCI, A. AZEVEDO, E. e LETA, F
Análise de Componentes Principais
Processamento de Imagens e Computação Gráfica
SENSORIAMENTO REMOTO CONTRASTE
PROCESSAMENTO DIGITAL DE IMAGENS
GEOMETRIA ANALITICA VETORES.
Processamento de Imagens e Computação Gráfica
Professor: Gerson Leiria Nunes.  Correlação de sinais  Correlação cruzada  Exemplo correlação  Autocorrelação  Propriedades da correlação  Exemplo.
Trabalho e Energia O problema fundamental da dinâmica de uma partícula é saber como a partícula se move, se conhecermos a força que actua sobre ela (como.
Física I Aula02 – Movimento Unidimensional 2009/2010.
UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ DEPARTAMENTO DE ENGENHARIA MECÂNICA LABORATÓRIO DE MECÂNICA DOS FLUIDOS ME36L – TRANSMISSÃO DE CALOR I PROF.
T4.1 – Processamento de Imagem Proc. Sinal e Imagem Mestrado em Informática Médica Miguel Tavares Coimbra.
Transcrição da apresentação:

Processamento de Imagens e Computação Gráfica Prof. Dr. Kamel Bensebaa Aula 5

Segmentação de Imagens A operação de segmentação é uma técnica de processamento de imagens cujo papel se encontra no nível intermediário de um sistema de visão computacional.

Segmentação de Imagens e Sistema de Visão Computacional Aquisição Processamento de baixo nível Pré-processamento Segmentação Processamento de nível intermediário Extração de Atributos Reconhecimento e Interpretação Processamento de alto nível Decisão

Segmentação de Imagens A segmentação subdivide uma imagem em suas partes ou objetos constituintes, devendo prosseguir até que os objetos de interesse estejam devidamente isolados ou separados na imagem. O sucesso da operação de segmentação tem uma importância fundamental em processos de reconhecimento e classificação de objetos de interesse. A avaliação do resultado de segmentação não é fácil e depende da aplicação. É subjetiva Depende de cada usuário ou profissional de cada área Necessita-se sempre se perguntar o que queremos da operação de segmentação Isso permite definir o grau de precisão necessária

Segmentação de Imagens Os algoritmos de segmentação baseiam-se principalmente em duas propriedades de intensidade luminosa da imagem Descontinuidade Similaridade Na primeira categoria a abordagem principal refere-se a dividir a imagem em regiões de acordo com as mudanças abruptas do nível e cinza em seus pontos Detecção de pontos isolados Detecção de linhas Detecção de bordas Na segunda categoria a imagem é dividida em regiões de acordo com algum padrão de similaridade entre as regiões como por exemplo o nível de intensidade luminosa, cor ou textura. Nessa categoria classifica-se as seguintes técnicas Segmentação por limiarização Segmentação por regiões Segmentação por divisor de águas (Watershed)

Segmentação de Imagens Obs: A técnica de limiarização pode ser usada como técnica de melhoramento de imagens (pré-processamento) e também como técnica de segmentação de imagens

Segmentação de Imagens Algoritmos de Segmentação Mudança brusca nos níveis de cinza Semelhança nos níveis de cinza Descontinuidades Similaridades Detecção de Aplicação de Pontos isolados Limiarização Crescimento de regiões Linhas Divisão e fusão de regiões Bordas

Segmentação de Imagens A segmentação pode ser também interpretada como a separação de uma imagem em diferentes regiões e/ou contornos Um contorno fechado é equivalente a uma região

Segmentação por descontinuidades As descontinuidades em uma imagem podem representar pontos, linhas ou bordas. Detecção de pontos: um ponto será identificado em função da mudança drástica do valor de cinza em relação aos seus vizinhos; Detecção de linhas: basicamente reconhece pontos semelhantes e verifica se pertencem a uma mesma linha; Detecção de bordas: é uma das técnicas básicas utilizadas pela visão humana no reconhecimento de objetos, compreende a localização e realce dos pixels de fronteira dos objetos, aumentado o contraste entre seus limites e o fundo.

Segmentação por detecção de descontinuidades Detecção de pontos isoldaos Detecção de linhas Detecção de bordas Detecção das fronteiras

Segmentação por detecção de bordas A detecção de bordas é uma etapa preliminar em várias aplicações em sistemas de análise de imagens visando obtenção de informações a partir de imagens. Os contornos (bordas) indicam variações significantes e constituem índices ricos e de grande importância para toda interpretação posterior da imagem em sistemas de análise de imagens e visão computacional. Tipicamente as bordas estão localizadas nas fronteiras entre duas ou mais regiões na imagem.

O que é uma borda? As bordas na imagem caracterizam os contornos dos objetos e são bastante úteis para segmentação e identificação de objetos na cena. Uma borda é o limite entre duas regiões com propriedades relativamente distintas de nível de cinza As regiões em questão são suficientemente homogêneas e a transição entre as regiões pode ser determinada baseando-se apenas na descontinuidade dos níveis de cinza Pontos de borda podem ser entendidos como as posições dos pixels com variações abruptas de níveis de cinza. Os pontos de borda caracterizam as transições entre diferentes objetos

Tipos de bordas Considerando a variação de tons de cinza na imagem pode-se distinguir quatro tipos básicos de bordas, estas são classificadas conforme a área e extensão de transição entre as duas regiões consideradas: Borda em degrau (step), que traduz uma variação abrupta e bem definida entre as regiões consideradas Borda tipo linha (spike), que ascende e descende abruptamente numa estreita área de transição; Borda tipo telhado (roof), que ascende e descende numa considerável área de transição com ponto de máximo bem definido Borda em rampa (ramp) com área de transição ascendente ou descendente.

Tipos de bordas

Tipos de bordas

Tipos de bordas Degrau Impulso Telhado Rampa

Tipos de bordas Modelo de uma Modelo de rampa borda ideal em um borda A existência de imperfeições no processo de aquisição de imagem faz com que as bordas sejam “rampas” Modelo de uma borda ideal Modelo de rampa em um borda

Tipos de bordas

Detecção de bordas Como realizamos a detecção de bordas? Como uma borda é definida por uma mudança no nível de cinza, quando ocorre uma descontinuidade na intensidade, ou quando o gradiente da imagem tem uma variação abrupta, um operador que é sensível a estas mudanças operará como um detector de bordas. Um operador de derivada faz exatamente esta função. Uma interpretação de uma derivada seria a taxa de mudança de uma função, e a taxa de mudança dos níveis de cinza em uma imagem é maior perto das bordas e menor em áreas constantes.

Operadores diferenciais (Gradiente e Laplaciano) Uma imagem digital pode ser assimilada a uma função de duas variáveis f (x,y), é necessário definir os operadores matemáticos que agissem sobre essas imagens afim de melhorar suas qualidades e/ou extrair algumas informações Esses operadores conhecidos como operadores diferenciais são construídos a partir da noção de derivada e indicam as variações nas imagens Assim detecta-se as bordas usando a primeira derivada (gradiente) ou a segunda derivada (laplaciano)

Operadores diferenciais (Gradiente e Laplaciano)

Operadores diferenciais (Gradiente e Laplaciano)

Operadores diferenciais (Gradiente e Laplaciano)

Operadores diferenciais (Gradiente e Lapliaciano) As variações locais de intensidade de níveis de cinza constituem uma fonte primordial de informações em processamento de imagens. São medidas pelo gradiente, função vetorial dos pixels (x,y) ou pelo laplaciano, função escalar de (x,y). A idéia predominante nas técnicas de detecção de bordas é a computação de um operador diferencial

Gradiente de uma imagem O gradiente é um operador direcional O gradiente em um pixel de uma imagem digital é um vetor caracterizado por sua amplitude e direção A amplitude do gradiente da imagem em um pixel fornece uma indicação sobre a quantidade da variação local dos níveis de cinza neste ponto. A direção do vetor gradiente é por definição normal ao contorno (a direção é ortogonal a fronteira que passa neste ponto)

Gradiente de uma imagem

Gradiente de uma imagem Seja o ponto Considera-se que f é uma função continua, tem-se ou é chamado gradiente e tem como amplitude Sua direção é dada por

Como calcular o gradiente? Para destacar bordas de uma imagem, geralmente utiliza-se operadores que procuram avaliar as taxas de variações da intensidade luminosa. O cálculo das taxas de variações se faz com o uso de derivadas da função de luminosidade Como numa imagem não dispomos de uma expressão analítica destas funções, mas de valores amostrados em intervalos iguais, os cálculos de derivadas seguem as aproximações de diferenças finitas.

Estimação do gradiente por diferenças finitas Seja a função f : R2→R, nota-se fx (ou f/x) e fy (ou f/x), são derivadas parciais de f em relação a x e y definidas por: Como estamos lidando com imagens discretas e não funções contínuas, portanto podemos apenas aproximar o gradiente da imagem. Assim, o gradiente pode ser aproximado por diferenças finitas: onde h designa o tamanho do pixel, Computacionalmente fixa-se h = 1, o que permite ter variações de posições que correspondem às variações de índice no quadro da memória.

Estimação do gradiente por diferenças finitas Portanto a aproximação torna-se: Uma quantidade útil é o vetor gradiente definido por : cujo módulo é representado por que é um escalar que tem como comprimento:

Estimação do gradiente por diferenças finitas De acordo com a seguinte aproximação Temos as máscaras de convolução

Aproximação de diferenças finitas Cálculo das derivadas por diferenças finitas

Estimação do gradiente por diferenças finitas Para encontrar uma máscara de 3 elementos usa-se a mesma aproximação por diferenças finitas. Portanto as máscaras de convolução são as seguintes

Exemplo do cálculo do gradiente Cálculo do píxel central Norma do gradiente e sua direção G x 3 2 1 7 5 2 y 8 7 3 Borda

Exemplo do cálculo do gradiente Usando a convolução em x y Encontra-se para o píxel central Gx=-5 e Gy=5 |G|=10 =arctang(-1) = -/4 Portanto usando só gradiente, isso acrescenta o ruído na imagem

Estimação do gradiente por diferenças finitas Uma das aplicações do operador gradiente é a detecção de fortes variações dos níveis de cinza devido à presença do contorno. Por exemplo, se |f (x, y)| é “grande”, isso significa que há uma grande variação da intensidade na direção horizontal eventualmente causada pela presença de um contorno vertical (Isso pode ser também presença do ruído).

Primeira derivada Gradiente A primeira derivada numa imagem é obtida a partir do gradiente 2D O gradiente de uma imagem 2D f (x, y) num ponto (x, y) define-se como o vetor Como sabemos, o gradiente aponta na direção de maior mudança de f no ponto (x, y).

Primeira derivada Gradiente Muitas vezes chama-se gradiente apenas o tamanho (ou comprimento) do vetor gradiente, que é dado por A direção do gradiente no ponto (x, y) é dada por onde o ângulo se mede em relação ao eixo x

Primeira derivada Gradiente A direção de uma borda que passa no ponto (x, y) é normal à direção do gradiente. Para evitar os cálculos associados aos quadrados e raiz quadrada, simplifica-se o cálculo do comprimento do gradiente O gradiente (nos filtros de Sobel e Prewitt) é obtido aplicando cada um destes filtros na imagem e somando os valores absolutos obtidos.

Operadores de detecção de bordas A maioria dos operadores de detecção de bordas baseia-se numa filtragem passa-altas seguida de um processo de limiarização: Se a saída do filtro ultrapassar o limiar, uma borda local é detectada, caso contrário a borda não é detectada Para se obter uma detecção de bordas independente da direção e supondo que o operador gradiente é separável, pode-se efetuar uma filtragem espacial em duas direções ortogonais, vertical (y) e horizontal (x). Estes dois resultados constituirão as componentes de um vetor gradiente:

Operador de Roberts O operador de Roberts é um operador gradiente mais tradicional no processamento de imagens Sua implementação é bastante simples, porém é altamente sensível ao ruído devido ao cálculo do gradiente que é realizado numa vizinhança 2x2 x x,y x+1,y Máscaras de Roberts y x,y+1 x+1,y+1

Operador de Roberts Roberts introduziu a seguinte operação cruzada (módulo do gradiente) O módulo do gradiente deve ser comparado a um limiar Devido ao custo computacional, as operações de elevar ao quadrado e raiz quadrada são, muitas vezes substituídas pelo valor absoluto das diferenças cruzadas

Operador de Roberts Como resultado da aplicação do operador de Roberts, obtém-se uma imagem com altos valores de nível de cinza, em regiões de contrastes bem definidos e valores baixos em regiões de pouco contraste, sendo 0 para regiões de nível de cinza constante.

Operador de Roberts Este operador utiliza um par de matrizes 2x2 para encontrar os gradientes nas direções x e y: Como resultado de sua aplicação, obtém-se uma imagem com altos valores de nível de cinza, em regiões de contrastes bem definidos e valores baixos em regiões de pouco contraste, sendo 0 para regiões de nível de cinza constante. 1 1 -1 -1 Componente Horizontal Componente Vertical

Operador de Roberts

Problemas do operador de Roberts O pequeno tamanho da máscara para o operador de Roberts torna o mesmo fácil de se implementar e rápido para calcular a máscara de resposta. As respostas, porém, são muito sensíveis ao ruído na imagem. Uma desvantagem deste operador é a sua assimetria Dependendo da direção, certas bordas são mais realçadas que outras, mesmo tendo magnitude igual.

Filtragem e derivação Seja h um dado filtro, pode-se escrever Assim pode-se aplicar o gradiente (a derivada) de um filtro para atenuar o ruído e calcular o gradiente da imagem O gradiente de uma imagem pode ser também escrito da seguinte maneira

Imagem da Lena Região borrada Região com ruído Região com muitos detalhes Região uniforme

Operador de Sobel O operador de Sobel é mais sofisticado que o operador Roberts. Para detectar as bordas, este operador consiste na aplicação de duas máscaras na vizinhança do pixel em análise (pixel central). Mascara na direção horizontal e mascara na direção vertical. 1 -1 1 2 1 2 -2 1 -1 -1 -2 -1 horizontal vertical

Operador de Sobel Na convolução da imagem, as máscars h1 e h2 correspondem aos cálculos das derivadas da imagem pré-filtrada por um filtro separável. h(x,y)=h(x).h(y) h=[1 2 1] filtro gaussiano d=[-1 0 1] Derivada Portanto h1(x,y)=d(x).h(y) h2(x,y)=h(x).d(y)

Operador de Sobel Portanto a máscara de Sobel fica assim: -1 1 1 -2 2 1 1 -2 2 2 -1 1 -1 1 1 -1 -2 -1 -1 1 2 1 1 2 1 1

Operador de Sobel Cálculo da convolução. Seja a imagem em níveis de cinza que desejamos encontrar as bordas. As bordas verticais e horizontais são calculados com convolução discreta 2D da seguinte forma Determinação a cor final do pixel Para cada pixel na posição (x,y) calcula-se o gradiente atraves a seguinte fórmula Limiarização O valor de borda encontrado é comparado a um valor certo limiar T definido pelo usuário. Assim a imagem após passar pelo filtro de Sobel fica definida da seguinte maneira

Operador de Sobel Bordas Limiar Imagem I

Operador de Sobel O operador gradiente de Sobel tem a propriedade de realçar linhas verticais e horizontais mais escuras que o fundo, sem realçar pontos isolados Devido as máscaras serem 3X3 ao invés de 2X2, Sobel é muito menos sensível ao ruído do que Roberts e os resultados são mais precisos. O operador de Sobel tem um efeito secundário de suavização que é atrativo visto que a derivação aumenta o ruído Composição de: Suavização Diferenciação

Operador de Sobel 190 -1 1 -2 2 190 -1 1 -2 2 -1 1 -2 2 200 210 213 190 -1 1 -2 2 190 -1 1 -2 2 200 -1 1 -2 2 210 213 -4 -10 -33 186 -1 1 -2 2 190 -1 1 -2 2 200 -1 1 -2 2 200 200 -619 -628 -492 50 -1 1 -2 2 -1 1 -2 2 50 -1 1 -2 2 1 100 100 -726 -730 -700 +13 +26 +13 -1 1 -2 2 10 -1 1 -2 2 10 10 -1 1 -2 2 30 30 50 50 14 100 100 10 10 10 30 30

Operador de Sobel

Operador de Sobel

Operador de Prewitt O operador gradiente de Prewitt funciona de forma semelhante que o operador de Sobel, porém sem enfatizar os pixels próximos ao centro da máscara Máscara de suavização (filtro da média) Máscara de derivação 1 1 1 -1 1

Operador de Prewitt Máscara de Prewitt -1 1 1 -1 1 1 -1 1 -1 1 1 -1 -1 1 1 -1 1 1 -1 1 -1 1 1 -1 -1 -1 -1 1 1 1 1 1 1 1

Operador de Prewitt O operador de Prewitt utiliza duas máscaras que são convolucionadas com a imagem original. Este operador é muito semelhante ao operador de Sobel, o que o diferenciam são os pesos dos pontos vizinhos do píxel central, onde o operador de Prewitt possui menos pesos, produzindo bordas diagonais mais atenuadas

Comparação dos operadores de primeira derivada (a) Imagem Original (b) Operador de Roberts (b) (d) (c) Operador de Prewitt (d) Operador de Sobel

Operador de segunda derivada - Laplaciano Uma borda (ou um contorno) é um local de variação Podemos localizá-la: Através da primeira derivada (abordagem baseada no cálculo do gradiente) ou Através da passagem por zero da segunda derivada (Laplaciano) No caso de imagens, não existe apenas uma única derivada segunda, mas 4 derivadas parciais (x2,y2,xy,yx) Na prática leva-se essa ambigüidade através do operador Laplaciano que faz a soma das duas derivadas parciais principais

Operador de segunda derivada - Laplaciano Lembre-se que o gradiente é definido da seguinte forma: Para o operador Laplaciano é necessário usar a segunda derivada

Operador de segunda derivada - Laplaciano

Operador de segunda derivada - Laplaciano Como queremos o cálculo das derivadas no centro de (i,j) portanto tem-se: Obviamente, cada função pode ser computada usando um filtro de convolução nas direções x e y respectivamente 1 -2 1

Operador de segunda derivada - Laplaciano Como 2 é definido como a soma de duas funções, podemos usar um filtro de convolução 3x3 Como Então

Operador de segunda derivada - Laplaciano Exemplo Assim, o Laplaciano pode ser implementado usando a seguinte máscara i z1 z2 z3 1 z4 z5 z6 1 -4 1 j z7 z8 z9 1

Operador de segunda derivada - Laplaciano Uma aproximação digital incluindo a vizinhança diagonal é dada por: i z1 z2 z3 1 1 1 z4 z5 z6 1 -8 1 j z7 z8 z9 1 1 1

Operador de segunda derivada - Laplaciano O Laplaciano não é freqüentemente utilizado para detecção de bordas Vantagens Localiza as bordas usando a propriedade de zero-crossing A passagem por zero é mais fácil a determinar que os extremos É isotrópico, fácil a implementar (um única máscara) Desvantagens Muito sensível ao ruído Cria bordas duplas Não permite obter a direção da borda

Operador de segunda derivada - Laplaciano -1 Sensivel ao ruído -1 4 -1 Produz uma linha dubla Passagem por 0 -1

Laplaciano do Gaussiano LoG A detecção de bordas é afetada pela presença de ruido na imagem o que torna desejável o uso de algum tipo de filtro antes da etapa de realce das bordas Marr e Hildreth (1980) desenvolverem uma abordagem que combina uma filtragem Gaussiana e o operador Laplaciano para detecção de bordas através o denominado o operador (Laplacian of Gaussian - LoG) Esse filtro tem a capacidade de localizar as bordas nas passagens por zero, ao mesmo tempo evita a sua excessiva sensibilidade ao ruído aplicando antes um filtro de suavização Gaussiano

Laplaciano do Gaussiano LoG Para contornar os problemas do operador Laplaciano aplica-se: Primeiro, um filtro passa-baixo Gaussiano, Em seguida, ao resultado, o operador Laplaciano. Como a convolução é associativa Pode aplicar o Laplaciano no Gaussiano E aplicar o resultado da operação na imagem

Laplaciano do Gaussiano LoG Deriva-se o Gaussiano e em seguida aplica-se o resultado usando a convolução com a imagem onde a derivada segunda do Gaussiano é a seguinte

Laplaciano do Gaussiano LoG Imagem I Borda Detecção Zero Crossings Zero Crossings

Comparação dos operadores de segunda derivada (a) Imagem Original (b) Operador Laplaciano (b) (d) (c) Operador Laplaciano (d) Operador LOG

Detector de bordas de Canny Critério de detecção: Robustez ao ruído o detector de bordas deve detectar e achar somente bordas, nenhuma borda deve faltar; Critério de precisão: Boa localização a distância entre os pixels de borda encontradas pelo detector de bordas e a borda real deve ser a menor possível; Critério de unicidade de resposta o detector de bordas não deve identificar múltiplos pixels de borda onde somente existir um único pixel.

Detector de bordas de Canny O detector de bordas de Canny é um filtro de convolução f que uniformiza o ruído e localiza as bordas. O problema é identificar um filtro que otimize os três critérios do detector de bordas: Se consideramos uma borda de uma dimensão variando no contraste e então convoluindo a borda com a função de uniformização Gaussiana, o resultado será uma variação contínua do valor inicial ao final, com uma inclinação máxima no ponto onde existe um "degrau". Se esta continuidade é diferenciada em relação a x, esta inclinação máxima será o máximo da nova função em relação a original.

Detector de bordas de Canny

Detector de bordas de Canny Os máximos da convolução da máscara e da imagem indicarão bordas na imagem. Este processo pode ser realizado através do uso de uma função Gaussiana de 2-D na direção de x e y. Os valores e o tamanho das máscaras do filtro Gaussiano dependem da escolha do desvio padrão sigma

Detector de bordas de Canny A aproximação do filtro de Canny para detecção de bordas é G'. Fazer a convolução da imagem com G' obtemos uma imagem I que detecta as bordas, mesmo na presença de ruído. A convolução é relativamente simples de ser implementada, mas é cara computacionalmente, principalmente se for em 2D. Uma convolução da Gaussiana de 2D pode ser separada em duas convoluções de Gauss de 1D. O custo computacional do detector de bordas de Canny é relativamente alto e os resultados são geralmente pós-processados para maior clareza. Entretanto, o algoritmo é mais eficiente no processamento de imagens com ruídos.

Detector de bordas de Canny

Detector de bordas de Canny Convolução com a derivada do Gaussiano Supressão dos Não-Máximo Limiarização por Histerese

Detector de bordas de Canny Ler a imagem I a ser processada; Criar uma máscara Gaussiana 1D G para convolução com I. O desvio s de Gauss é um parâmetro fornecido ao detector de bordas; Criar uma máscara de 1-D para a primeira derivada de Gauss nas direções x e y; nomear como Gx e Gy. O mesmo valor s é usado; Fazer a convolucão da imagem I com G percorrendo as linhas na direção x (Ix) e percorrer as colunas na direção y (Iy); Fazer a convolucão Ix, com Gx, para dar I´x, o componente x e de I convolucionado com a derivada Gaussiana, e fazer a convolução de Iy, com Gy para dar I´y; O resultado num ponto é a combinação dos componentes I´x e I´y. A magnitude do resultado é computada para cada pixel (x,y).

Detector de bordas de Canny Suavização usando o Gaussiano Calcular as derivadas x e y Calcular a magnitude do gradiente a orientação

Detector de bordas de Canny

Detector de bordas de Canny

Detector de bordas de Canny

Supressão dos Não-Máximo Para encontrar os pontos de borda, precisamos encontrar os máximos locais da magnitude do gradiente. As bordas devem ser (thinned) de maneira que apenas as magnitudes de maior variação permanecem. Todos os valores ao longo da direção do gradiente que não são valores de pico de uma borda são suprimidas.

Supressão dos Não-Máximo

Supressão dos Não-Máximo Considere as direções dk = 0, 45, 90, 135o Para cada pixel em es(i,j) ache a direção dk que melhor aproxima a direção de E(i,j) (a normal à aresta) se Es(i,j) for menor que pelo menos um dos dois vizinhos ao longo de dk faça In(i,j)=0 (supressão); caso contrário, faça In(i,j)= Es(i,j) Saída é imagem In(i,j )de pontos de arestas afinadas, isto é, Es(i,j ) após supressão de pontos de aresta não máximos (max. locais)

Detector de bordas de Canny Supressão dos pixels na “Magnitude do gradiente da imagem” que não são Máxima Locais

Supressão dos Não Máximo Detector de bordas de Canny Supressão dos Não Máximo

Supressão dos Não-Máximo

Detector de bordas de Canny

Limiarização histerese

Limiarização histerese Detector de bordas de Canny Limiarização histerese Se o gradiente no pixel é em cima do limiar TH, declare-se ‘pixel de borda’ Se o gradiente no pixel é em baixo do limiar TL, declare-se ‘não é pixel de borda’ Se o gradiente no pixel é entre TH e TL então declare-se ‘pixel de borda’ se e somente se é conectado a um ‘pixel de borda’ ou através dos pixels que se encontram entre TH e TL

Limiarização histerese

Detectores de Bordas Roberts Prewitt Canny Laplacianoc Sobel