Processamento digital de imagens - Agostinho Brito · Representação e descrição de regiões...

24
Processamento digital de imagens Agostinho Brito Departamento de Engenharia da Computação e Automação Universidade Federal do Rio Grande do Norte 13 de maio de 2016

Transcript of Processamento digital de imagens - Agostinho Brito · Representação e descrição de regiões...

Page 1: Processamento digital de imagens - Agostinho Brito · Representação e descrição de regiões Esquemas de representação - códigos de encadeamento Utilizados para representar

Processamento digital de imagens

Agostinho Brito

Departamento de Engenharia da Computação e AutomaçãoUniversidade Federal do Rio Grande do Norte

13 de maio de 2016

Page 2: Processamento digital de imagens - Agostinho Brito · Representação e descrição de regiões Esquemas de representação - códigos de encadeamento Utilizados para representar

Representação e descrição de regiões

Uma vez que um conjunto de pixels denha sido selecionado a partir dasegmentação, é necessário representá-los e descrevê-los de forma adequadapara posterior processamento.A representação de uma região pode ser feita de duas formas:

Pelo seu contorno.Pelos pixels que representam o interior.

A descrição consiste gerar características com base no esquema derepresentação escolhido.

Ex: uma região pode ser representada por sua fronteira e descrita pelo número deconcavidades do polígono que aproxima esta fronteira.

Representações externas: formas de objetos.

Representações internas: cor e textura.

Page 3: Processamento digital de imagens - Agostinho Brito · Representação e descrição de regiões Esquemas de representação - códigos de encadeamento Utilizados para representar

Representação e descrição de regiões

Algoritmo seguidor de fronteira

1 1 1 11111111

11

11 1 1 1

1111111

11

11 1 1 1

1111111

11

1

1 1 1 11111111

11

11 1 1 1

1111111

11

11 1 1 1

1111111

11

1

Critério de parada: O ponto inicial é encontrado e o próximo ponto é o mesmoencontrado para a primeira ocorrência.

11

1111

111

11

1111

111

Page 4: Processamento digital de imagens - Agostinho Brito · Representação e descrição de regiões Esquemas de representação - códigos de encadeamento Utilizados para representar

Representação e descrição de regiões

Esquemas de representação - códigos de encadeamentoUtilizados para representar uma fronteira de comprimento e direção especificados.

Baseados em conectividades tipo 4 ou 8 dos segmentos.Operar diretamente nos pixels da imagem pode ser inviável, pois:

os códigos gerados são longos(direção dos vetores que ligam pares de pixels).as imperfeições na segmentação podem afetar os códigos, de modo que as mudançasocorrentes no mesmo não estariam diretamente relacionada com a forma da fronteira.Possível solução: reamostrar os pixels utilizando uma grade mais espaçada.

O contorno pode ser representado por 4- ou 8-códigos.

0

6

5

4

3

2

1

7

1

3

2 0

8−códigos4−códigos

Page 5: Processamento digital de imagens - Agostinho Brito · Representação e descrição de regiões Esquemas de representação - códigos de encadeamento Utilizados para representar

Representação e descrição de regiões

Esquemas de representação - códigos de encadeamentoCódigos de cadeia de Freeman: segue-se a grade reamostrada, substituindo adireção dos segmentos por números.

Normalização em relação ao ponto inicial: trata-se a cadeia como uma sequênciacircular e escolhe-se a combinação que gera o menor número inteiro.

Normalização em relação à rotação: contagem das mudanças de direção queseparam os segmentos no sentido anti-horário, ou primeira diferença do código.

0 0 0

66

7

55

443

3

12

1

000667554433121

006016070706177

código de cadeia

primeira diferença

Page 6: Processamento digital de imagens - Agostinho Brito · Representação e descrição de regiões Esquemas de representação - códigos de encadeamento Utilizados para representar

Representação e descrição de regiões

Aproximação por polígonos de perímetro mínimo - MPP

Percorre-se a fronteira procurando vértices côncavos (Pretos) ou convexos(Brancos).Vértices côncavos possuem espelhos na diagonal.O MPP não possui autointerseçãoTodo vértice convexo é um vértices Branco, mas nem todo vértice Brancopertence ao polígono.Todo vértice côncavo espelhado do MPP é um vértice Preto, mas nem todo vérticePreto pertence ao MPP.Vértices Pretos estão no MPP ou fora dele. Vértices brancos estão no MPP oudentro dele.

Page 7: Processamento digital de imagens - Agostinho Brito · Representação e descrição de regiões Esquemas de representação - códigos de encadeamento Utilizados para representar

Representação e descrição de regiões

Percorra a fronteira no sentido anti-horário.

Para três pontos em sequência, a = (x1, y1) , b = (x2, y2) e c = (x3, y3), arranje

A =

x1 y1 1x2 y2 1x3 y3 1

Avaliar sinal(a, b, c) = det(A)

se sinal(a, b, c) > 0: a sequência ocorre no sentido anti-horáriose sinal(a, b, c) = 0: pontos colinearesse sinal(a, b, c) < 0: a sequência ocorre no sentido horário

Ex: (3, 4)→ (2, 3)→ (3, 2)

a

b

c

Page 8: Processamento digital de imagens - Agostinho Brito · Representação e descrição de regiões Esquemas de representação - códigos de encadeamento Utilizados para representar

Representação e descrição de regiões

Organize os vértices em sequência, incluindo indicação se o vértice é Preto ouBranco. Vértices pretos devem ser previamente espelhados.

Prepare dois vértices BR e PR para rastrear os pontos brancos e pretos.

Faça BR = PR = V0. VL é o último vértice encontrado. Vk é o vértice atualanalisado.Três condições podem acontecer:

sinal(VL,BR ,Vk ) > 0sinal(VL,BR ,Vk ) ≤ 0 (ou sinal(VL,PR ,Vk ) ≥ 0)sinal(VL,PR ,Vk ) < 0

Se sinal(VL,BR ,Vk ) > 0, o próximo vértice do MPP é BR . Faz-se VL = BR ereinicializa-se o algoritmo: BR = PR = VL. Caminha-se para o próximo vértice.

Se sinal(VL,BR ,Vk ) ≤ 0, VL é candidato ao MPP. Define-se BR = VL se VK éconvexo, ou PR = VK se este é côncavo.

Se sinal(VL,PR ,Vk ) < 0, o próximo vértice do MPP é PR . Faz-se VL = PR ereinicializa-se o algoritmo: BR = PR = VL. Caminha-se para o próximo vértice.

O conjunto de vértice VL forma o MPP.

Page 9: Processamento digital de imagens - Agostinho Brito · Representação e descrição de regiões Esquemas de representação - códigos de encadeamento Utilizados para representar

Representação e descrição de regiões

Index Ponto s(VL,BR ,Vk ) s(VL,PR ,Vk ) BR PR VL

0 (1, 4) - - (1, 4) (1, 4) (1, 4)1 (2, 3) 0 0 (1, 4) (2, 3) (1, 4)2 (3, 3) 0 1 (3, 3) (2, 3) (1, 4)3 (3, 2) -2 0 (3, 3) (3, 2) (1, 4)4 (4, 1) -3 0 (4, 1) (3, 2) (1, 4)5 (7, 1) 9 - (4, 1) (3, 2) (4, 1)

5 (7, 1) - - (4, 1) (4, 1) (4, 1)5 (7, 1) 0 0 (7, 1) (4, 1) (4, 1)6 (8, 2) 3 - (7, 1) (4, 1) (7, 1)

6 (8, 2) - - (7, 1) (7, 1) (7, 1)6 (8, 2) 0 0 (8, 2) (7, 1) (7, 1)

Page 10: Processamento digital de imagens - Agostinho Brito · Representação e descrição de regiões Esquemas de representação - códigos de encadeamento Utilizados para representar

Representação e descrição de regiões

Outras técnicasFusãoSeparação

Assinaturas: distância para o centroide a passos fixos do ângulo

A A

Invariância à rotação: uso dos eixos principais com pontos do contorno.Invariância à escala: normalização em relação ao máximo, ou divisão pela variância.

Page 11: Processamento digital de imagens - Agostinho Brito · Representação e descrição de regiões Esquemas de representação - códigos de encadeamento Utilizados para representar

Representação e descrição de regiões

0 0 11 p1 01 0 1

p9 p2 p3

p8 p1 p4

p7 p6 p5

EsqueletosNão pode remover pontos extremos, sem quebrar aconectividade e sem causar erosão excessiva

Algoritmo:

N(P): número de vizinhos de P.

T (P): número de transições 0→ 1 ao redor de P

Ex: N(p1) = 4, T (p1) = 3.Passo 1: marcar para remoção

2 ≤ N(p1) ≤ 6T (p1) = 1p2 · p4 · p6 = 0p4 · p6 · p8 = 0

Remover pontos marcados no passo 1Passo 2: marcar para remoção

2 ≤ N(p1) ≤ 6T (p1) = 1p2 · p4 · p8 = 0p2 · p6 · p8 = 0

Remover pontos marcados no passo 2

Repetir passos 1 e 2 até não haver mais remoções

Page 12: Processamento digital de imagens - Agostinho Brito · Representação e descrição de regiões Esquemas de representação - códigos de encadeamento Utilizados para representar

Descrição de regiões

Medida baseada numa representação escolhida para identificar uma determinadaregião. Ex:

Diâmetro da fronteiraCurvatura: medida das diferenças entre as inclinações do contornoCódigos de cadeia para montar números de formato

Page 13: Processamento digital de imagens - Agostinho Brito · Representação e descrição de regiões Esquemas de representação - códigos de encadeamento Utilizados para representar

Descrição de regiões

Descritores de FourierPares de coordenadas são montados percorrendo afronteira no sentido anti-horário.

Cada ponto é representado como um número complexo daforma s(k) = x(k) + jy(k), para k = 0, 1, 2, · · · ,K − 1 pares.

a(u) =K−1∑k=0

s(k)e−j2πuk/K

Os valores a(u) são os descritores de fourier.

Reconstrução pela transformada inversa.

s(k) =1K

P−1∑u=0

a(u)e−j2πuk/P

Com menos componentes de frequência é possívelreconstruir o contorno com menos detalhes, entretantousando a mesma quantidade de pontos.

Page 14: Processamento digital de imagens - Agostinho Brito · Representação e descrição de regiões Esquemas de representação - códigos de encadeamento Utilizados para representar

Descrição de regiões

Descritores de FourierProblemas: invarância à rotação, translação, ponto de partida e escala.

Rotação por θ: sr (k) = s(k)ejθ

ar (u) =K−1∑k=0

s(k)ejθe−j2πuk/K

= a(u)ejθ

Translação por z0 = x0 + jy0: st (k) = s(k) + z0.

u(k) =K−1∑k=0

s(k) + z0]e−j2πuk/K

=K−1∑k=0

s(k)e−j2πuk/K +K−1∑k=0

z0e−j2πuk/K

= u(k) + z0δ(k)

É afetada apenas a componente DC da transformada: u(0). O impulso vale zeroem outros lugares da transformada

Page 15: Processamento digital de imagens - Agostinho Brito · Representação e descrição de regiões Esquemas de representação - códigos de encadeamento Utilizados para representar

Descrição de regiões

Descritores de FourierPonto inicial: sp(k) = x(k − k0) + jy(k − k0). Pelo teorema do deslocamento,

up(k) = u(k)e−j2πk0u/K

Escala: ss(k) = αs(k)us(k) = αu(k)

Resumo das propriedadesTransformação Fronteira DescritorIdentidade s(k) u(k)

Rotação s(k)ejθ a(u)ejθ

Translação st (k) = s(k) + z0 ut (k) = u(k) + z0δ(k)

Ponto de partida sp(k) = x(k − k0) + jy(k − k0) up(k) = u(k)e−j2πk0u/K

Escala ss(k) = αs(k) us(k) = αu(k)

O que fazer para assegurar invariância?

Page 16: Processamento digital de imagens - Agostinho Brito · Representação e descrição de regiões Esquemas de representação - códigos de encadeamento Utilizados para representar

Descrição de regiões

TexturaEstatística, estrutural e espectral.

Abordagens estatísticas: Momentos estatísticosMomentos estatísticos do histograma de uma regiãoSeja p(zi ), i = 0, 1, · · · , L− 1 o histograma de uma região.O n-ésimo momento de z em torno da média é dado por

µn(z) =L−1∑i=0

(zi −m)np(zi )

µ0 = 1 e µ1 = 0.µ2 é a variância. Fornece medida de contraste presente na região.Suavidade relativa:

R(z) = 11

1 + µ22(z)

R(z) = 0 para regiões de intensidade constante. R(z) é próximo de 1 pararegiões com muita variação de tons.O terceiro momento µ3(z) mede a assimetria do histograma. O quarto momentoµ4(z) mede o quão este é plano.

Page 17: Processamento digital de imagens - Agostinho Brito · Representação e descrição de regiões Esquemas de representação - códigos de encadeamento Utilizados para representar

Descrição de regiões

Abordagens estatísticas: Momentos estatísticosUniformidade

U(z) =L−1∑i=0

p2(zi )

Entropia média: medida de variabilidade

e(z) = −L−1∑i=0

p(zi )log2p(zi )

Textura Média Desv. Pad. R µ3 U(z) e(z)Suave 82.64 11.79 0.002 -0.105 0.026 5.434

Rugosa 143.56 74.63 0.079 -0.151 0.005 7.783Regular 99.72 33.73 0.017 0.750 0.013 6.674

Page 18: Processamento digital de imagens - Agostinho Brito · Representação e descrição de regiões Esquemas de representação - códigos de encadeamento Utilizados para representar

Descrição de regiões

Incorporação de informação sobre posição relativa de pixels: Matriz deco-ocorrência.

Os elementos gij de uma matriz de co-ocorrência G contam a quantidade devezes que o tom de cinza j ocorreu à direita do tom de cinza i .

Para imagens com 256 tons de cinza, tais matrizes podem ter tamanhos de256× 256, podendo ser quantizadas em tamanhos menores pela conveniência.

Médias e variâncias nas linhas e colunas

mr =K∑

i=1

iK∑

j=1

pij σ2r =

K∑i=1

(i −mr )2

K∑j=1

pij

mc =K∑

j=1

jK∑

i=1

pij σ2c =

K∑j=1

(j −mc)2K∑

i=1

pij

Page 19: Processamento digital de imagens - Agostinho Brito · Representação e descrição de regiões Esquemas de representação - códigos de encadeamento Utilizados para representar

Descrição de regiões

Alguns descritores baseados em matrizes de co-ocorrênciaProb. Máxima Resposta mais forte de G maxi,j (pij )

Correlação Diz como um pixel está correlacio-nado com seu vizinho

K∑i=1

K∑j=1

(i −mr )(j −mc)pij

σrσc

Contraste Contraste entre um pixel e seu vizi-nho

K∑i=1

K∑j=1

(i − j)2pij

Uniformidade Uniformidade da matrizK∑

i=1

K∑j=1

p2ij

Homogeneidade Proximidade da diagonalK∑

i=1

K∑j=1

pij

1 + |i − j|

Entropia Aleatoriedade de GK∑

i=1

K∑j=1

pij log pij

Page 20: Processamento digital de imagens - Agostinho Brito · Representação e descrição de regiões Esquemas de representação - códigos de encadeamento Utilizados para representar

Descrição de regiões

G Prob. Corr Contr. Unif. Homog. EntrG1/n1 0.00006 -0.0005 10.838 0.0002 0.0366 15.75G2/n2 0.01500 0.965 570 0.01230 0.0824 6.43G3/n3 0.06860 0.8798 1356 0.0048 0.2048 13.58

Page 21: Processamento digital de imagens - Agostinho Brito · Representação e descrição de regiões Esquemas de representação - códigos de encadeamento Utilizados para representar

Descrição de regiões

Abordagens estruturais usam regras de produção para criar a texturaAbordagens espectrais avaliam o espectro de Fourier de uma região para medircaracterísticas de textura.

Monta-se uma função S(r , θ), função da distância r para o centro do espectro e doângulo θ formado com o eixo horizontal.

S(r) =π∑θ=0

Sθ(r) S(θ) =π∑

r=0

Sr (θ)

Page 22: Processamento digital de imagens - Agostinho Brito · Representação e descrição de regiões Esquemas de representação - códigos de encadeamento Utilizados para representar

Descrição de regiões

Momentos invariantesO momento de ordem (p + q) de f (x , y) é definido como:

mpq =M−1∑x=0

N−1∑y=0

xpyq f (x , y)

O momento central de ordem (p + q) de f (x , y) é definido como:

µpq =M−1∑x=0

N−1∑y=0

(x − x)p(y − y)q f (x , y)

Os momentos centrais normalizados são definidos como

ηpq =µpq

µγ00γ =

p + q2

+ 1 p + q = 2, 3, · · ·

Page 23: Processamento digital de imagens - Agostinho Brito · Representação e descrição de regiões Esquemas de representação - códigos de encadeamento Utilizados para representar

Descrição de regiões

Momentos invariantes

φ1 =η20 + η02

φ2 =(η20 − η02)2 + 4η211

φ3 =(η30 − 3η12)2 + (3η21 − η03)2

φ4 =(η30 + η12)2 + (η21 + η03)2

φ5 =(η30 − 3η12)(η30 + η12)[(η30 + η12)2

− 3(η21 + η03)2] + (3η21 − η03)(η21 + η03)

[3(η30 + η12)2 − (η21 + η03)2]

φ6 =(η20 − η02)[(η30 + η12)2 − (η21 + η03)2]

+ 4η11(η30 + η12)(η21 + η03)

φ7 =(3η21 − η03)(η30 + η12)[(η30 + η12)2

− 3(η21 + η03)2]− (η30 − 3η12)(η21 + η03)

[3(η30 + η12)2 − (η21 + η03)2]

Page 24: Processamento digital de imagens - Agostinho Brito · Representação e descrição de regiões Esquemas de representação - códigos de encadeamento Utilizados para representar

Descrição de regiões

Momentos invariantes