Seminário Introdução à Visão Computacional - The Cyclops Project CPGCC - INE -UFSC Domínio do Espaço - Parte I 2. Domínio do Espaço • Consideramos o valor de cada pixel e também a relação deste com os valores de um conjunto de pixels na sua vizinhança. • Parte I - Operações utilizando Convolução • Parte II - Operações sobre Regiões Domínio do Espaço E1. Operações Genéricas de Convolução E2. Morfologia Matemática E3. Operações de Detecção de Bordas E1. Operações Genéricas de Convolução O que é convolução ? Matematicamente, a convolução é uma operação entre duas matrizes, geralmente bidimensionais, uma das quais é a imagem e a outra é um matriz chamada de matriz de convolução ou elemento estruturante. A matriz de convolução representa uma função matemática qualquer e é aplicada sobre cada pixel g(x,y) da imagem e sua vizinhança imediata, resultando em uma nova imagem gc(x,y), que reflete a relação da imagem original com a função matemática dada pela matriz. E1. Operações Genéricas de Convolução Como realizamos a convolução ? Podemos considerar a convolução como a aplicação de uma máscara de resposta à imagem de acordo com critérios bem definidos. Na convolução temos dois componentes: • Uma ou mais matrizes de convolução ci(x,y) • A operação de convolução A forma mais simples é quando temos apenas uma matriz de convolução e a operação de convolução é a soma dos resultados da multiplicação de cada elemento da matriz com a região da imagem sob a mesma e a subseqüente substituição do valor do pixel sobre o qual a matriz foi aplicada por este resultado. E1. Operações Genéricas de Convolução Exemplo: •mi: é valor para um pixel •pi: é o valor do nível de cinza para um pixel •Rp5: é a máscara de resposta para o pixel central (p5). E1. Operações Genéricas de Convolução Exemplo: Imagem Original Imagem Resultante •Observe que o resultado é sempre escrito na nova imagem resultante •Observe que se o pixel sob a matriz se encontrar nas bordas da imagem, consideramos apenas os elementos sob a matriz. E1. Operações Genéricas de Convolução E1.1 Detecção de pontos salientes A aplicação de convolução mais simples é a detecção de pontos salientes na imagem. Um ponto saliente é um ponto cujo valor se destaca de seus vizinhos, não necessariamente um valor alto do ponto de vista absoluto. E1. Operações Genéricas de Convolução E1.2 Convolução Genérica A aplicação de convolução simples pode ser extendida para outros tipos de matriz de filtragem que podem suavizar ou modificar a imagem. É importante possuir-se um programa que leia uma matriz qualquer e aplique o método utilizando: • Qualquer matriz quadrada de convolução ci(x,y) de dimensões ímpares • A operação de convolução é sempre a soma das multiplicações das posições correspondentes sob a matriz. • O pixel de aplicação R é sempre o valor sob o elemento central da matriz E1. Operações Genéricas de Convolução Requisitos para E1.1 e E1.2 • Duas entradas: imagem e matriz de convolução • Ler as duas entradas tanto em P2 como em P5 • Uma saída: Imagem resultante. E2 - Morfologia Matemática Parte I - Imagens Binárias Morfologia Matemática • O estudo morfológico concentra-se na estrutura geométrica das imagens. • Aplica-se morfologia em , realce, filtragem, segmentação, esqueletonização e outras a fins. • Definição de uma imagem e feita através de um vetor bidimensional com coordenadas (x, y) para sua representação gráfica . Conceito de Morfologia Matemática • Conceito básico: consiste em extrair informações de uma imagem de geometria desconhecida pela transformação com uma outra imagem completamente definida (convolução), chamada elemento estruturante. • Ao contrário da convolução genérica, na Morfologia Matemática a FORMA do elemento estruturante terá impacto sobre o resultado. E2.1 Dilatação Dilatação - Expande uma imagem. • A B = { c | c = a + b , a A , b B } assim onde A = Imagem original B = Elemento estruturante ou Kernel Pode ser representada A B Imagem Original Kernel ou ES Resultado Hot Spot B A Original A B Dilatada E2.1 Dilatação • Propriedades da Dilatação Comutativa: Associativa: AB=B A (A B) C = A (B C )) E2.1 Dilatação Requisitos: • Usaremos sempre um Kernel quadrado, com Hot Spot no centro da matriz. • Se quisermos representar um elemento estruturante com forma de linha, faremos uma matriz quadrada, com 1s na linha central e 0s no resto: 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 E2.1 Dilatação Algoritmo informal da dilatação binária: • Passe o elemento estruturante por todos os pixels da imagem original: • Se o valor do pixel da imagem sob o elemento central for diferente de zero, copie todos os valores não-zero do elemento estruturante para a imagem resultado. E2.2. Erosão Erosão - Encolhe uma imagem. A B = ( x | x + b A para todo b B) A B é o conjunto de translações de B que posicionam B sobre os conjuntos de pixels válidos em A . Pode ser representada onde AB A = imagem original B = elemento estruturante Imagem Original Kernel ou ES B A Original Imagem Erodida AB Imagem Erodida E2.2 Erosão Algoritmo informal da erosão binária: • Passe o elemento estruturante por todos os pixels da imagem original: • Se nenhum valor dos pixels da imagem sob os valores nãonulos do elemento estruturante for zero, ponha um valor 1 (ou 255) na posição R da imagem resultado. E2.3/2.4 Usando Dilatação/Erosão • E2.3 BoundEXT (A) = (A E) - A • Achar todos os pixels que limitam o objeto pelo lado de fora (contorno externo). • E2.4 BoundINT (A) = {A - (A E)} • Achar o contorno de interno objetos. E2.5 Gradiente Morfológico • Outra forma de encontrar a borda. Composta de três outras operações básicas: Dilatação, erosão e a subtração. X = (A B) – (A B) onde A = imagem original B = elemento estruturante E2.6 Abertura (Opening) Opening - suaviza o contorno de uma imagem. Quebra estreitos e elimina proeminências delgadas. É usada também para remover ruídos da imagem e abrir pequenos vazios ou espaços entre objetos próximos numa imagem . A B = (A B) B • Dada por uma erosão seguida de uma dilatação com o mesmo elemento estruturante. Abertura Original Após Abertura E2.7 Fechamento Closing - Funde pequenos quebras e alargas golfos estreitos. Elimina pequenos orifícios. Irá preencher ou fechar os vazios. Estas operações remover pixels brancos com ruídos. A B = (A B) B E 2.7 Fechamento Original Fechamento Propriedades DUALIDADE OPENING E CLOSING (A B)’ = A’ B IDEMPOTÊNCIA OPENING E CLOSING A A B B Onde: A´ = complemento de A B=A B B=AB Exemplo de Aplicação em Radiologia Exemplo de Aplicação em Radiologia Exemplo de Aplicação em Radiologia Exemplo de Aplicação em Radiologia Morfologia Matemática Parte II - Tons de Cinza e Cores Morfologia Matemática - Introdução Tons de Cinza A idéia básica de Morfologia binária extende-se para tom de cinza, mas operações lógicas simulam a conversão aritmética: Uniões se tornam máximos e interseções se tornam mínimos ... E 2.8 Erosão Tc Erosão tons de cinza (A B) = min {A(i – x , j – y) – B(x , y) | (i – x , j – y) A , (x, y) B} Onde B é um elemento estrutural e A é a imagem de tons de cinza. Morfologia Matemática - Erosão Tc Algoritmo em Linguagem Informal: 1. Posiciona-se a origem do elemento estruturante sobre o primeiro pixel da imagem que sofre erosão. 2. Calcula-se a diferença de cada par correspondente de valores de pixels do elemento estrutural e da imagem. 3. Acha-se o valor mínimo de todas essas diferenças, e armazena-se o pixel correspondente na imagem de saída para este valor. 4. Repete-se este processo para cada pixel da imagem que sofre erosão. Morfologia Matemática - Erosão Tc Morfologia Matemática - Erosão a Cores E 2.8 - Dilatação Tc Dilatação tons de cinza (A B) = max {A(i – x , j – y) + B(x , y) | (i – x , j – y) A , (x, y) B} onde B é um elemento estrutural e A é a imagem de tons de cinza. E 2.8 - Dilatação Tc Algoritmo em Linguagem Informal: 1. Posiciona-se a origem do elemento estrutural sobre o primeiro pixel da imagem a ser dilatada. 2. Calcula-se a soma de cada par correspondente de valores de pixels do elemento estrutural e da imagem. 3. Acha-se o valor máximo de todas essas somas, e armazenase o pixel correspondente na imagem de saída para este valor. 4. Repete-se este processo para cada pixel da imagem a ser dilatada. Morfologia Matemática Cinza - Dilatação em Tons de Morfologia Matemática - Dilatação em Cores O que é escuro é realçado.... E 2.10 Fechamento Tc Closing tons de cinza f g (G) = (f g G) g G ou para um elemento estruturante constante : f g (G) = min (a g) max (b g) f (x+a+b) Morfologia Matemática - Fechamento a Cores E 2.11 Abertura Tc Opening tons de cinza f g (G) = (f g G) g G ou para um constante elemento estruturante: f g (G) = max (a g) min (b g) f (x-a+b) Utiliza-se mesmo processo binário Morfologia Matemática - Abertura Tc Original, erodida e resultado Morfologia Matemática - Abertura Tc original closing subtração