Digital Image Processing, 2nd ed. www.imageprocessingbook.com Interpolação de imagem • A interpolação ou reamostragem de imagens é amplamente utilizada em processamento de imagens e vídeos. • Ela é utilizada para ampliar, reduzir, e rotacionar imagens. • Também é utilizada para criar efeitos como “morphing/warping”, • para corrigir distorção da lente, • para fazer interpolação de cores nos dispositivos para aquisição de imagens (câmeras, scanners,etc), © 2002 R. C. Gonzalez & R. E. Woods Digital Image Processing, 2nd ed. www.imageprocessingbook.com Interpolação de imagem • para registrar imagens (criar uma única imagem “grudando” duas ou mais imagens), estabilizar tremor da câmera de vídeo, • para corrigir a movimentação do paciente em imagens médicas, • para normalizar imagens médicas que envolvem vários sujeitos, etc. © 2002 R. C. Gonzalez & R. E. Woods Digital Image Processing, 2nd ed. www.imageprocessingbook.com Interpolação de imagem Interpolação – processo em que valores conhecidos são usados para estimar valores desconhecidos © 2002 R. C. Gonzalez & R. E. Woods Digital Image Processing, 2nd ed. www.imageprocessingbook.com Interpolação de imagem a) Ampliação da imagem baseada no Método do vizinho mais próximo: atribui a cada nova posição o valor do pixel do seu vizinho mais próximo na imagem original replicação de pixels – caso especial quando zoom é um numero inteiro de vezes (2, 3 , 4..) © 2002 R. C. Gonzalez & R. E. Woods Digital Image Processing, 2nd ed. www.imageprocessingbook.com Interpolação de imagem Considere uma imagem 500x500 e uma ampliação para 750x750; Imagine um grid 750x750 com o mesmo espaçamento de pixels; Reduza o grid para se sobrepor a imagem de 500x500; Atribua a cada posição do grid 750x750 um valor de pixel mais próximo na imagem original; Expanda o grid 750x750 para seu espaçamento original © 2002 R. C. Gonzalez & R. E. Woods Digital Image Processing, 2nd ed. www.imageprocessingbook.com Interpolação VMP • Efeito de blocos • Processamento rápido • Não cria novos valores de NC (mantém estatísticas da imagem) 6 © 2002 R. C. Gonzalez & R. E. Woods Digital Image Processing, 2nd ed. www.imageprocessingbook.com Interpolação de imagem Exemplo considerando uma ampliação de duas vezes: Considere a imagem .....f(i,j) f(i,j+1) ..... .....f(i+1,j) f(i+1,j+1) ..... . . acrescentando linhas e colunas de zeros, obtemos: .....f(i,j) 0 f(i,j+1) ..... 0 0 0 .... f(i+1,j) 0 f(i+1,j+1) ..... © 2002 R. C. Gonzalez & R. E. Woods Digital Image Processing, 2nd ed. Interpolação de imagem www.imageprocessingbook.com Após a interpolação temos a imagem reconstruída em tamanho duplicado. .....f(i,j) f(i,j) f(i,j+1) ..... f(i,j) f(i,j) f(i,j+1) .... f(i+1,j) f(i+1,j) f(i+1,j+1) ..... Obs: a média dos níveis de cinza da imagem ampliada se mantém constante. A técnica é simples mas pode produzir artefatos e distorções em linhas retas. © 2002 R. C. Gonzalez & R. E. Woods Digital Image Processing, 2nd ed. www.imageprocessingbook.com Interpolação Bilinear • O valor obtido pela média ponderada dos NCs dos pontos E e F é transferido para a posição X • Efeito de suavização devido a operação de média 9 © 2002 R. C. Gonzalez & R. E. Woods Digital Image Processing, 2nd ed. www.imageprocessingbook.com Interpolação de imagem Exemplo Ampliação da imagem com interpolação bilinear com zoom = 2 Considere a imagem: . . .....f(i,j) f(i,j+1) ..... .....f(i+1,j) f(i+1,j+1) ..... . . Acrescente linhas e colunas conforme ilustração .....f(i,j) b .... f(i+1,j) a f(i,j+1) ..... c d e f(i+1,j+1) ..... Substitua: a = (f(i,j) + f(i,j+1)) / 2 e = (f(i+1,j) + f(i+1,j+1)) / 2 b = (f(i,j) + f(i+1,j)) / 2 d = (f(i,j+1) + f(i+1,j+1)) / 2 © 2002 R. C. Gonzalez & R. E. Woods Digital Image Processing, 2nd ed. www.imageprocessingbook.com Efeitos da Interpolação 1/2X VMP 2X Bilinear 11 © 2002 R. C. Gonzalez & R. E. Woods Digital Image Processing, 2nd ed. Interpolaçao de Imagens Replicaççã de pixels © 2002 R. C. Gonzalez & R. E. Woods www.imageprocessingbook.com Digital Image Processing, 2nd ed. www.imageprocessingbook.com Exercício Faça uma função em Matlab que execute a ampliação e a redução de imagens monocromáticas (considere também fatores de ampliação não inteiros) usando o método dos vizinhos mais próximos e outra usando interpolação bilinear. © 2002 R. C. Gonzalez & R. E. Woods Digital Image Processing, 2nd ed. www.imageprocessingbook.com Topologia da Imagem Digital – Vizinhança de um pixel a) Vizinhança-4 de um pixel p (N4(p)) Um pixel p na coordenada (x,y) tem 4 vizinhos cujas coordenadas são dadas por (x+1, y), (x-1, y), (x, y+1), (x, y-1) b) Vizinhança diagonal de um pixel p (ND(p)) Um pixel p na coordenada (x,y) tem 4 vizinhos na diagonal cujas coordenadas são dadas por (x+1, y+1), (x+1, y-1), (x-1, y+1), (x-1, y-1) c) Vizinhança-8 de um pixel p (N8(p)) O 8-vizinhos de um pixel p é o conjuntos dos N4(p) e dos © 2002 R. C. Gonzalez & R. E. Woods Digital Image Processing, 2nd ed. www.imageprocessingbook.com Topologia da Imagem Digital – Adjacencia Dois pixels p e q estão adjacentes se são vizinhos (segundo um tipo de vizinhança adotada) e se seus elementos satisfazem um determinado critério de similaridade (cor, intensidade de cinza, textura); © 2002 R. C. Gonzalez & R. E. Woods Digital Image Processing, 2nd ed. www.imageprocessingbook.com Topologia da Imagem Digital – Adjacencia Seja V o critério de similaridade. Tipos de adjacência: 1. Adjacencia-4: dois pixels p e q são adjacentes-4 se satisfazem V e q ϵ N4(p); 2. Adjacencia-8: dois pixels p e q são adjacentes-8 se satisfazem V e q ϵ N8(p); 3. Adjacencia-m: dois pixels p e q são adjacentesm se satisfazem V e se q ϵ N4(p) ou q ϵ ND(p) e N4(p) ∩ N4(q) não possuem pixels que satisfazem V. © 2002 R. C. Gonzalez & R. E. Woods Digital Image Processing, 2nd ed. www.imageprocessingbook.com Topologia da Imagem Digital – Adjacencia • A adjacencia-m é uma modificação da adjacencia-8; • Útil para eliminar ambigiudades que ocorrem quando adjacencia• 8 é usada. © 2002 R. C. Gonzalez & R. E. Woods Digital Image Processing, 2nd ed. www.imageprocessingbook.com Topologia da Imagem Digital – caminho Um caminho de um pixel p com coordenadas (x0,y0) a um pixel q com coordenadas (xn,yn) é uma sequencia de pixels distintos com coordenadas: (x0,y0), (x1, y1),….. (xn,yn) em que (xi,yi) e (xi-1,yi-1) são adjacentes para 1≤ i ≤ n n é o comprimento do caminho © 2002 R. C. Gonzalez & R. E. Woods Digital Image Processing, 2nd ed. www.imageprocessingbook.com Topologia da Imagem Digital – caminho Um caminho é fechado se (x0,y0) = (xn,yn). Um caminho pode ser classificado como caminho-4, caminho-8 ou caminho-m, dependendo do tipo de adjacencia especificada. © 2002 R. C. Gonzalez & R. E. Woods Digital Image Processing, 2nd ed. www.imageprocessingbook.com Topologia da Imagem Digital – Conectividade Conectividade entre pixels é um conceito importante usado para estabelecer os limites dos objetos e as componentes de uma imagem. Seja S um subconjunto de pixels da imagem. Dois pixels p e q são conectados em S se existir um caminho entre eles, tal que todos os pixels do caminho pertencem a S; S pode conter uma ou mais componentes conectadas (regiões); © 2002 R. C. Gonzalez & R. E. Woods Digital Image Processing, 2nd ed. www.imageprocessingbook.com Topologia da Imagem Digital – Conectividade Duas regiões R1 e R2 são adjacentes se pelo menos um pixel de R1 for adjacente a R2. 111000 111100 110011 000011 © 2002 R. C. Gonzalez & R. E. Woods R1 e R2 são adjacentes para adjacencia-8; caso contrario elas são disjuntas. Digital Image Processing, 2nd ed. www.imageprocessingbook.com Topologia da Imagem Digital Rotular Componentes Conectadas Considere que as componentes sejam 4-conectadas: r t p Seja p um pixel a ser analisado. A varredura se dá da esquerda para a direita, de cima para baixo. Seja r e t o pixel de cima e a esquerda respectivamente. Dada a natureza da varredura, r e t já foram rotulados se satisfizeram o critério de similaridade (Cs=1; considere que estamos tratando com uma imagem binária). © 2002 R. C. Gonzalez & R. E. Woods Digital Image Processing, 2nd ed. www.imageprocessingbook.com Topologia da Imagem Digital – Rotular Componentes Conectadas Procedimento: Se p = 0 então verifica o próximo pixel; Se p =1, examina r e t Se (r = 0 e t = 0) então rotula p com novo rótulo; Se ( r = 1 e t = 0) ou (r = 0 e t = 1) rotula p com o rótulo de r ou de t; Se (r = 1 e t = 1) e possuem o mesmo rótulo então rotula p com este rótulo; Se (r = 1 e t = 1) e possuem rótulos diferentes então rotula p com um dos rótulos e indica equivalência de rótulos; © 2002 R. C. Gonzalez & R. E. Woods Digital Image Processing, 2nd ed. www.imageprocessingbook.com Topologia da Imagem Digital – Rotular Componentes Conectadas No final do processo todos os pixels que satisfazem o critério de similaridade estarão rotulados, mas alguns com rótulos equivalentes. Neste caso: -transformar todos os pares de rótulos equivalentes em classes de equivalência, atribuindo um rótulo diferente para cada classe; -varrer novamente a imagem e substituir cada rótulo pelo rótulo atribuído a sua classe de equivalência. © 2002 R. C. Gonzalez & R. E. Woods Digital Image Processing, 2nd ed. www.imageprocessingbook.com Topologia da Imagem Digital – Rotular Componentes Conectadas Considere Cs={1} e a imagem abaixo: 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 Componentes 4-conectadas: A A 0 0 0 A A 0 0 0 0 B 0 0 0 B 0 0 0 0 0 0 0 0 © 2002 R. C. Gonzalez & R. E. Woods 0 0 0 1 0 0 0 0 0 B 0 0 0 0 0 0 1 1 0 0 0 0 D D 0 0 0 1 1 1 0 0 0 C D D Os rótulos C e D são equivalentes. Temos, portanto, 3 componentes 4conectadas. Como o procedimento de rotular deve ser alterado para obtermos componentes 8conectadas??? Digital Image Processing, 2nd ed. www.imageprocessingbook.com Exercício Usando o Matlab, escreva duas funções para rotular imagens binárias, uma para componentes 4-conectas e outra para componentes 8-conectadas (ou uma função cuja conectividade entra como parametro). A função deve retornar o numero de componentes conectadas. Cada componente conectada rotulada deve ser mostrada com uma cor diferente para facilitar © 2002 R. C. Gonzalez & R. E. Woods Digital Image Processing, 2nd ed. www.imageprocessingbook.com Topologia da Imagem Digital Contorno ou borda Contorno de uma região R é o conjunto de pixels em R que tem pelo menos um vizinho no fundo da imagem (background). A adjacência deve ser definida para se definir a conectividade. 01100 é borda se adjacência com fundo 01110 for 8. 00110 © 2002 R. C. Gonzalez & R. E. Woods Digital Image Processing, 2nd ed. www.imageprocessingbook.com Topologia da Imagem Digital Medidas de Distancia Para os pixesl x, y e z com coordenadas (x1,x2), (y1,y2) e (z1,z2) respectivamente, D é uma função de distância ou métrica se: (a) D(x,y) >= 0 (não-negatividade) (b) (D(x,y) = 0 se e somente se x=y (identidade) (c) D(x,y) = D(x,y) (simetria) (d) D(x,z) <= D(x,y) + D(y,z) (desigualdade triangular) © 2002 R. C. Gonzalez & R. E. Woods Digital Image Processing, 2nd ed. www.imageprocessingbook.com Topologia da Imagem Digital Medidas de Distancia • Familia Minkowski © 2002 R. C. Gonzalez & R. E. Woods Digital Image Processing, 2nd ed. www.imageprocessingbook.com Topologia da Imagem Digital Medidas de Distancia • Distância Euclidiana (p = 2): De(x,y) = [(x1-y1)2 + ( x2-y2)2]1/2 • Manhattan ou City-block distance ou (p = 1): • D4(x,y) = |x1-y1| + |x2-y2| • Chebychev ou Chessboard distance ( p = α): D8(x,y) = max(|x1-y1|, |x2-y2|) © 2002 R. C. Gonzalez & R. E. Woods Digital Image Processing, 2nd ed. www.imageprocessingbook.com Topologia da Imagem Digital Medidas de Distancia © 2002 R. C. Gonzalez & R. E. Woods Digital Image Processing, 2nd ed. www.imageprocessingbook.com Topologia da Imagem Digital Medidas de Distancia ξ é o raio de consulta ξ nodo é o raio de abrangência de um nó sendo avaliado Se © 2002 R. C. Gonzalez & R. E. Woods o nó avaliado poder ser descartado