Sie sind auf Seite 1von 43

Acondicionamento de imagem

Operaes geomtricas bsicas

Transformaes espaciais
Matriz de transformao genrica

[x, y, z] = [u, v, w] T1
Escalamento, corte e rotao

onde

Perspectiva

a11 a12

T1 = a21 a22
a31 a32

a13

a23
a33

Escalamento global

Translao
DEE/FCT/UNL - Sistemas Sensoriais

Jos Manuel Fonseca

TRANSLAO
Suponha que pretende uma translao de um ponto (X,Y) de um deslocamento
(X0, Y0). Teremos ento:
X*=X+X0

Y*=Y+Y0

Esta translao pode ser obtida pela aplicao da equao:


1 0
[x' y' 1] = [x y 1] 0 1
t x t y

0
1

tx

ty
DEE/FCT/UNL - Sistemas Sensoriais

Jos Manuel Fonseca

Transformaes bsicas - Rotao


Rotao

O ngulo medido no sentido


dos ponteiros do relgio

[x'

cos sin
y ' ] = [x y ]

sin cos

x' = x cos + y sin

y ' = x sin + y cos

Desta forma a rotao efectuada em torno do ponto de origem.

DEE/FCT/UNL - Sistemas Sensoriais

Jos Manuel Fonseca

Transformaes bsicas - Rotao


Para rodar em torno de um ponto Xp, Yp:
[x' y'] = [x x p

y yp

cos sin
sin cos

(x

DEE/FCT/UNL - Sistemas Sensoriais

Jos Manuel Fonseca

, yp )

ROTAO DIRECTA

x' = x cos + y sin

y ' = x sin + y cos


x,y

x,y

Colocar todos os pontos x,y da imagem original nas coordenadas x,y da imagem destino

DEE/FCT/UNL - Sistemas Sensoriais

Jos Manuel Fonseca

ROTAO DIRECTA exemplo 10

DEE/FCT/UNL - Sistemas Sensoriais

Jos Manuel Fonseca

ROTAO DIRECTA exemplo 45

DEE/FCT/UNL - Sistemas Sensoriais

Jos Manuel Fonseca

ROTAO INVERSA
Equao directa:

x' = x cos + y sin

y ' = x sin + y cos


x,y

x,y

Equao inversa:

x =

Y =

x' cos y ' sin


= x' cos y ' sin
2
2
sin + cos
y ' cos + x' sin
= y ' cos + x' sin
2
2
sin + cos

Para cada ponto x,y da imagem destino ir imagem original ler o pixel em x,y
DEE/FCT/UNL - Sistemas Sensoriais

Jos Manuel Fonseca

ROTAO INVERSA exemplo 10

DEE/FCT/UNL - Sistemas Sensoriais

Jos Manuel Fonseca

10

ROTAO INVERSA exemplo 45

DEE/FCT/UNL - Sistemas Sensoriais

Jos Manuel Fonseca

11

Transformaes bsicas - Escalamento


Escalamento
Tal como a translao e a rotao tambm o escalamento pode
ser conseguido com a aplicao de uma operao matricial.
S x 0
[x' y'] = [x y ]

0
S
y

DEE/FCT/UNL - Sistemas Sensoriais

Jos Manuel Fonseca

12

Tcnicas de interpolao de valores


Quando as coordenadas de um valor so nmeros fraccionais coloca-se o
problema de como calcular o valor a utilizar.
Podem utilizar-se (pelo menos) quatro tcnicas:
Truncatura
A parte fraccionria dos valores desprezada sendo utilizado o valor na direco da origem
das coordenadas

Arredondamento ou Nearest Neighbor


O arredondamento dos valores permite obter resultados um pouco melhores que o mtodo
anterior mas mesmo assim insuficientes em muitas aplicaes

BiLinear
BiCbica

j,k

j+1,k
?

j+x,k+y

j,k+1 j+1,k+1
DEE/FCT/UNL - Sistemas Sensoriais

Jos Manuel Fonseca

13

Interpolao biLinear
A interpolao bilinear efectua-se em dois passos: interpolao em x e depois em y
Interpolao em x:

B j + x ,k = (1 x ).B j ,k + x.B j +1,k


B j + x ,k +1 = (1 x ).B j ,k +1 + x.B j +1,k +1

j+x,k

Interpolao em y:

B j + x ,k + y = (1 y ).B j + x ,k + y.B j + x ,k +1

DEE/FCT/UNL - Sistemas Sensoriais

Jos Manuel Fonseca

j+1,k

j,k

j,k+1

j+x,k+y

j+x,k+1

j+1,k+1

14

Interpolao biCbica
A interpolao bicbica utiliza uma regio 4x4 pixels
Interpolao em x

1
B j + x ,k = (B j 1,k .R1 + B j ,k .R2 + B j +1,k .R3 + B j + 2,k .R4 )
6
Interpolao em y
1
B j + x ,k = (B j + x ,k 1.R1 + B j + x ,k .R2 + B j + x ,k +1.R3 + B j + x ,k + 2 .R4 )
6
Onde os coeficientes R1 a R4 so:
3

R1 = (3 + x ) 4(2 + x ) + 6(1 + x ) 4 x 3
R2 = (2 + x ) 4(1 + x ) + 6 x

j,k

R3 = (1 + x ) 4 x 3
R4 = x

j+2,k-1

j-1,k-1

j+x,k+y
j+2,k+1

j-1,k+2
DEE/FCT/UNL - Sistemas Sensoriais

j+2,k

Jos Manuel Fonseca

j,k+2

j+2,k+2
15

Rotao 10 com interpolao


Nearest Neighbor

DEE/FCT/UNL - Sistemas Sensoriais

Jos Manuel Fonseca

16

Rotao 10 com interpolao


Bi-Linear

DEE/FCT/UNL - Sistemas Sensoriais

Jos Manuel Fonseca

17

Comparao interpolao NN vs BL

DEE/FCT/UNL - Sistemas Sensoriais

Jos Manuel Fonseca

18

Comparao de tcnicas de interpolao


A interpolao Nearest Neighbor no introduz nveis de cinzento em imagens B&W
A interpolao biLinear a que produz linhas visualmente mais perfeitas
No entanto, a interpolao biCbica preserva melhor o contraste da linha

Resultado dos diferentes mtodos de interpolao na rotao de 17


de uma linha vertical
DEE/FCT/UNL - Sistemas Sensoriais

Jos Manuel Fonseca

19

Exemplo de engrandecimento 5x

Nearest-neigbor

Bicubic

Bilinear

DEE/FCT/UNL - Sistemas Sensoriais

Jos Manuel Fonseca

Barbara Zitov, Jan Flusser (2003). Image registration methods: a


survey. Image and Vision Computing 21 Pages 977-1000

20

Comparao entre tcnicas

Bilinear
Bicubic

DEE/FCT/UNL - Sistemas Sensoriais

Jos Manuel Fonseca

21

Comparao entre mtodos de


interpolao em ampliao

Interpolao Nearest Neighbor


DEE/FCT/UNL - Sistemas Sensoriais

Interpolao BiLinear
Jos Manuel Fonseca

22

Imagem rodada 1 360 vezes

Interpolao nearest
CPU time = 111.5
DEE/FCT/UNL - Sistemas Sensoriais

Interpolao bilinear
CPU time = 274.0
Jos Manuel Fonseca

Interpolao bicubic
CPU time = 1064.0
23

Exemplo de degradao da imagem detalhe

Imagem original
DEE/FCT/UNL - Sistemas Sensoriais

Imagem rodada 1 360 vezes usando


interpolao bilinear
Jos Manuel Fonseca

24

Comparao bilinear-bicubic

Imagem rodada 1 360 vezes usando


interpolao bilinear
DEE/FCT/UNL - Sistemas Sensoriais

Imagem rodada 1 360 vezes usando


interpolao bicubica

Jos Manuel Fonseca

25

Comparao original - bicubica

Bicubica

Original

Mas o tempo de execuo MUITO superior !!!


DEE/FCT/UNL - Sistemas Sensoriais

Jos Manuel Fonseca

26

Comparao
Embora a interpolao bi-linear seja menos boa que alguns mtodos de maior
ordem em termos de preciso e do aspecto final da imagem apresenta
provavelmente a melhor relao entre resultado e complexidade sendo a mais
aplicada
A interpolao bicbica recomendada quando a transformao geomtrica
envolve um alargamento significativo
A intepolao nearest neighbor de evitar excepto quando a imagem possui
pouca variedade de intensidades e queremos evitar a introduo de nveis de
cinzento ou de cores sintticas

DEE/FCT/UNL - Sistemas Sensoriais

Jos Manuel Fonseca

27

Aula 2 - Acondicionamento da
imagem
Mtodos espaciais

28

Mtodos espaciais de acond. de imagem


Os mtodos espaciais calculam o valor de cada pixel com base em
operaes efectuadas sobre os valores de uma pequena regio de
pontos nas suas redondezas.
A dimenso da vizinhana considerada pode variar
dependendo do objectivo em vista.
O processamento nas regies limites coloca um
problema que pode ser resolvido de vrias formas:

Exemplo de uma vizinhana 3x3

DEE/FCT/UNL - Sistemas Sensoriais

No processar as margens
Duplicar as linhas e colunas necessrias
Fazer o espelho das linhas e colunas necessrias
Fazer o wrap-around (considerar a imagem cilindrica)

Todas as solues tm vantagens e desvantagens


Jos Manuel Fonseca

29

Mtodos de prolongamento da imagem

Duplicao das margens


DEE/FCT/UNL - Sistemas Sensoriais

Espelho
Jos Manuel Fonseca

30

Filtros de mdia uniforme


Os filtros de mdia, na sua verso mais simples, limitam-se a
substituir o valor de um pixel pela mdia do seu valor e dos pixels
que o rodeiam.

1
g (x, y ) =
f (n, m)

P ( n,m)S
Nmero de pixels na vizinhana do
pixel (x,y) incluindo ele prprio

Vizinhana do pixel (x,y) incluindo


ele prprio

Exemplo de uma mscara


unitria

Quando se pretende colocar o resultado do filtro na prpria imagem


que est a ser processada necessrio manter cpia separada de
algumas linhas.

DEE/FCT/UNL - Sistemas Sensoriais

Jos Manuel Fonseca

31

Exemplo de filtragens de mdia uniforme

Original

Filtragem de mdia 3x3

DEE/FCT/UNL - Sistemas Sensoriais

Jos Manuel Fonseca

Filtragem de mdia 5x5

32

Comparao de filtros de mdia

Original
DEE/FCT/UNL - Sistemas Sensoriais

3x3
Jos Manuel Fonseca

5x5
33

Problemas dos filtros de mdia


Os filtros de mdia colocam alguns problemas:

Desfocam as arestas
Deslocam fronteiras
Reduzem o contraste
Podem provocar erros de aliasing (criao de linhas inexistentes)

DEE/FCT/UNL - Sistemas Sensoriais

Jos Manuel Fonseca

34

Implementao de um filtro de mdia


Soluo A por cada pixel efectuar a mdia dos pixeis abrangidos
pela mscara de convoluo.
Num filtro RxR h que acumular R2 valores - O(R2)

Soluo B por cada pixel subtrair os pixeis que saem e somar


apenas os que entram
Num filtro RxR h que acumular 2R valores - O(R)

Soluo C utilizar as mdias anteriores para calcular a prxima


Num filtro RxR h que acumular 7 valores independentemente de R

Como se faz?
DEE/FCT/UNL - Sistemas Sensoriais

Jos Manuel Fonseca

35

Exemplo de um filtro de mdia 5x5


rea
necessria
para um
5x5

Imagem original
19

81 233 20 248 147 87 247

141 194 234 194 21

68

110 136 212 185 46 171 29

92

252 10

95 129 86 160 174

103
26
113
47

21
253
47
222

229
227
28
203

14
63
44
36

111
121
128
177

Imagem expandida
com duplicao das margens

DEE/FCT/UNL - Sistemas Sensoriais Edio 2013/14

57
70
164
114

198
132
154
39

147
143
208
81

19

19

19

81 233 20 248 147 87 247 247 247

19

19

19

81 233 20 248 147 87 247 247 247

19

19

19

81 233 20 248 147 87 247 247 247

141 194 234 194 21

68

68

68

110 110 110 136 212 185 46 171 29

92

92

92

252 252 252 10

95 129 86 160 174

103
26
113
47
47
47

21
253
47
222
222
222

147
143
208
81
81
81

147
143
208
81
81
81

147
143
208
81
81
81

103
26
113
47
47
47

103
26
113
47
47
47

229
227
28
203
203
203

14
63
44
36
36
36

111
121
128
177
177
177

57
70
164
114
114
114

Jos Manuel Fonseca

198
132
154
39
39
39

36

Exemplo de um filtro de mdia 5x5 soluo A


I (1,1) =

19 + 19 + 19 + 81 + 233 + 19 + 19 + 19 + 81 + 233 + 19 + 19 + 19 + 81 + 233 + 6 + 6 + 6 + 7 + 141 + 110 + 110 + 110 + 136 + 212


25

19

19

19

81 233 20 248 147 87 247 247 247

19

19

19

81 233 20 248 147 87 247 247 247

19

19

19

81 233 20 248 147 87 247 247 247

78

89 123 148 145 139 158 153

141 194 234 194 21

68

68

68

98 104 122 138 142 132 136 128

110 110 110 136 212 185 46 171 29

92

92

92

105 107 117 126 128 123 123 117

252 252 252 10

95 129 86 160 174

113 116 120 127 124 114 109 103

103
26
113
47
47
47

21
253
47
222
222
222

147
143
208
81
81
81

147
143
208
81
81
81

147
143
208
81
81
81

103
26
113
47
47
47

103
26
113
47
47
47

229
227
28
203
203
203

14
63
44
36
36
36

111
121
128
177
177
177

57
70
164
114
114
114

198
132
154
39
39
39

123
118
107
107

116
108
101
104

112
111
116
124

112
112
123
136

115
112
110
118

113
110
106
103

120
122
125
118

124
121
122
110

Implementao mais simples


- Todos os pixeis so calculados de igual forma implicando 25 somas e uma diviso por pixel
- Neste caso teremos 64 pixeis * (25 somas e 1 diviso) = 1600 somas e 64 divises
DEE/FCT/UNL - Sistemas Sensoriais Edio 2013/14

R2 com R=5

Jos Manuel Fonseca

37

Exemplo de um filtro de mdia 5x5 soluo B


I (1,1) = 19 + 19 + 19 + 81 + 233 + 19 + 19 + 19 + 81 + 233 + 19 + 19 + 19 + 81 + 233 + 6 + 6 + 6 + 7 + 141 + 110 + 110 + 110 + 136 + 212
I (1,2) = I (1,1) (19 + 19 + 19 + 6 + 110) + (20 + 20 + 20 + 194 + 185)

19

19

19

81 233 20 248 147 87 247 247 247

19

19

19

81 233 20 248 147 87 247 247 247

19

19

19

81 233 20 248 147 87 247 247 247

141 194 234 194 21

68

68

68

110 110 110 136 212 185 46 171 29

92

92

92

252 252 252 10

95 129 86 160 174

103
26
113
47
47
47

21
253
47
222
222
222

147
143
208
81
81
81

147
143
208
81
81
81

147
143
208
81
81
81

103
26
113
47
47
47

103
26
113
47
47
47

229
227
28
203
203
203

14
63
44
36
36
36

111
121
128
177
177
177

57
70
164
114
114
114

198
132
154
39
39
39

1957
2447
2635
2822
3070
2958
2663
2670

2223
2589
2687
2910
2901
2703
2520
2605

3074
3045
2922
3011
2789
2785
2898
3105

3707
3458
3161
3166
2807
2809
3081
3401

3632
3541
3207
3111
2864
2809
2753
2940

3481
3289
3067
2847
2834
2758
2648
2568

3943
3403
3087
2720
2997
3059
3115
2947

3820
3203
2924
2580
3103
3023
3061
2761

I (2,1) = I (1,1) (19 + 19 + 19 + 81 + 233) + (252 + 252 + 252 + 10 + 95)

No final h que dividir todos os pixeis por 25!


Implementao intermdia
- Muitos pixeis so calculados com 10 somas e uma diviso por pixel
- Neste caso teremos 64 pixeis * (10 somas e 1 diviso) = 640 somas e 64 divises
DEE/FCT/UNL - Sistemas Sensoriais Edio 2013/14

2R com R=5

Jos Manuel Fonseca

38

Filtro de mdia de complexidade


independente da dimenso
a

O= B A + C + a b c + d
C

DEE/FCT/UNL - Sistemas Sensoriais

Jos Manuel Fonseca

39

Filtro de mdia de complexidade


independente da dimenso
-

B- A

BA+C

a
A menos

b
A mais

Pretendemos a rea a amarelo

O=BA+C+abc+d
DEE/FCT/UNL - Sistemas Sensoriais

Jos Manuel Fonseca

c
A mais

d
A menos
40

Exemplo de um filtro de mdia 5x5 soluo C


I (1,1) = 19 + 19 + 19 + 81 + 233 + 19 + 19 + 19 + 81 + 233 + 19 + 19 + 19 + 81 + 233 + 6 + 6 + 6 + 7 + 141 + 110 + 110 + 110 + 136 + 212
I (1,2) = I (1,1) (19 + 19 + 19 + 6 + 110) + (20 + 20 + 20 + 194 + 185)

19

19

19

81 233 20 248 147 87 247 247 247

19

19

19

81 233 20 248 147 87 247 247 247

19

19

19

81 233 20 248 147 87 247 247 247

141 194 234 194 21

68

68

68

110 110 110 136 212 185 46 171 29

92

92

92

252 252 252 10

95 129 86 160 174

103
26
113
47
47
47

21
253
47
222
222
222

147
143
208
81
81
81

147
143
208
81
81
81

147
143
208
81
81
81

103
26
113
47
47
47

103
26
113
47
47
47

229
227
28
203
203
203

14
63
44
36
36
36

111
121
128
177
177
177

57
70
164
114
114
114

198
132
154
39
39
39

1957
2447
2635
2822
3070
2958
2663
2670

2223
2589
2687
2910
2901
2703
2520
2605

3074
3045
2922
3011
2789
2785
2898
3105

3707
3458
3161
3166
2807
2809
3081
3401

3632
3541
3207
3111
2864
2809
2753
2940

3481
3289
3067
2847
2834
2758
2648
2568

3943
3403
3087
2720
2997
3059
3115
2947

3820
3203
2924
2580
3103
3023
3061
2761

I (2,1) = I (1,1) (19 + 19 + 19 + 81 + 233) + (252 + 252 + 252 + 10 + 95)


I (2,2) = I (1,2) I (1,1) + I (2,1) + 19 20 252 + 129
I (2,2) = 2223 1957 + 2447 + 19 20 252 + 129

Implementao avanada
- Muitos pixeis so calculados com 6 somas e uma diviso por pixel (independente da dimenso do filtro)
- Neste caso teremos 64 pixeis * (6 somas e 1 diviso) = 384 somas e 64 divises
DEE/FCT/UNL - Sistemas Sensoriais Edio 2013/14

Jos Manuel Fonseca

41

Comparao entre as diferentes solues


Tenha em conta uma imagem de 4000x2000 pixeis (8 Mpixeis)
Imagine que quer aplicar um filtro de mdia de 9x9 pixeis
Soluo A
8 000 000 * 81 somas = 648 000 000 somas

Soluo B
8 000 000 * 18 somas = 144 000 000 somas

Soluo C
8 000 000 * 6 somas = 48 000 000

Se o filtro for de 19x19


A = 2 888 000 000 somas (crescimento quadrtico)
B = 304 000 000 somas (crescimento linear)
C = 48 000 000 somas (constante)

DEE/FCT/UNL - Sistemas Sensoriais Edio 2013/14

Jos Manuel Fonseca

42

Comparao de tempos entre diversas


implementaes
Testes efectuados com uma imagem de 1200x800 pixeis a cores
Mtodo 1 No processando as margens 24 linhas de cdigo
Mtodo 2 Processando as margens com IFs 31 linhas de cdigo
Mtodo 3 Processando as margens com padding 34 linhas
Mtodo 4 Com processamemto especial para as margens 163 linhas
Mtodo 5 Em tempo constante com padding 71 linhas
Mtodo

3x3

5x5

7x7

9x9

11x11

13x13

15x15

0,275

0,537

0,861

1,319

1,862

2,419

3,059

4,143

10,849

20,450

34,021

52,482

70,317

95,588

0,294

0,539

0,873

1,299

1,8113

2,439

3,175

0,279

0,520

0,852

1,273

1,792

2,393

3,099

0,094

0,096

0,096

0,097

0,096

0,092

0,096

DEE/FCT/UNL - Sistemas Sensoriais Edio 2013/14

Jos Manuel Fonseca

43

Das könnte Ihnen auch gefallen