Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouAnasofia Saade Alterado mais de 9 anos atrás
1
Captura, Processamento, Interpretação, Criação, Reprodução, …
Imagem Digital Captura, Processamento, Interpretação, Criação, Reprodução, …
2
Formação de uma imagem numa câmera digital
Captura da radiância de uma cena num plano Formação de uma imagem numa câmera digital
3
Câmera obscura e Câmera “pin-hole”
Plymouth, UK O fato dos quadros renascentistas terem elemenots da geoemetria projetiva não quer dizer que eles conheciam técnicas precisas de desenho geométrico. Muitos trabalhos foram feitos por mera intuição ou com auxilio de câmeras escuras onde o pintor via sobre o canvas uma imagem da cena que ele desejava pintar como ilustra a figura. Podemos encontrar referências a câmeras escuras nos trabalhos de Leonardo da Vinci de A câmera fotográfica, como conhecemos hoje, foi inventada pelo Mandé Daguerre ( ) e seus principios podem ser ilustrados com artefatos bem simples como a câmera tipo “pinhole”.
4
Câmera Obscura -- efeito natural
Bellinzona no canton Ticino Switzerland.
5
Primeiras câmaras fotográficas
Luis-Jacques-Mandé Daguerre ( ) 1839 O fato dos quadros renascentistas terem elemenots da geoemetria projetiva não quer dizer que eles conheciam técnicas precisas de desenho geométrico. Muitos trabalhos foram feitos por mera intuição ou com auxilio de câmeras escuras onde o pintor via sobre o canvas uma imagem da cena que ele desejava pintar como ilustra a figura. Podemos encontrar referências a câmeras escuras nos trabalhos de Leonardo da Vinci de A câmera fotográfica, como conhecemos hoje, foi inventada pelo Mandé Daguerre ( ) e seus principios podem ser ilustrados com artefatos bem simples como a câmera tipo “pinhole”.
6
Câmeras digitais
7
Captura da cor
8
Sensores
9
Emissão da radiância num plano
Monitores
10
Primeira imagem colorida (início do sec. XX)
James Clerk Maxwell ( ) Scottish physicist.
11
RBG Images
12
Multi-fontes pontuais
OLED Nexus_one_screen_microscope.jpg (wiki)
13
Impressão
14
Imagem: Modelo Matemático: Função
0% 20% 40% 60% 80% 100% Níveis de cinza Posição ao longo da linha x u v L L(u,v) Função
15
Imagem colorida u v G R B
16
Imagem coloridas como 3 canais de cor
B B(u,v) R(u,v) G(u,v) v v v u u u = + +
17
Amostragem, quantização e codificação
Imagem Digital Amostragem, quantização e codificação
18
Digitalização de Imagens
Discretização espacial (amostragem)
19
quantizada e codificada
Processos básicos 64x54 Imagem amostrada amostragem Imagem de tons contínuos 64x cores Imagem amostrada e quantizada quantização 55 20 22 23 45 10 09 11 43 42 70 28 76 codificação 8*55, 1*20, 1*22, 1*23, …. Imagem amostrada, quantizada e codificada
20
Áudio (Sinal 1D)
21
Amostragem, quantização e codificação de f(x)
partição do eixo x x
22
Amostragem, quantização e codificação de f(x)
6 amostra quantizada 5 4 3 2 1 x codificação = (3, 4, 5, 5, 4, 2, 2, 3, 5, 5, 4, 2)
23
Problemas associados a re-amostragem de um sinal digital f(x)
6 função original 5 função reconstruída pelo vizinho mais próximo função reconstruída por interpolação linear 4 3 2 1 x (a) aumento de resolução
24
Re-amostragem de f(x) (b) redução de resolução f(x)
6 função original 5 4 3 2 função reconstruída pelo vizinho mais próximo função reconstruída por interpolação linear 1 x (b) redução de resolução
25
Parte 2 - Eliminação de ruídos e realce de arestas
Imagem Digital 08/04/2017 Imagem Digital Conceitos, Processamento e Análise Parte 2 - Eliminação de ruídos e realce de arestas Aplicações da Transformada de Fourier Marcelo Gattass
26
Imagem Digital 08/04/2017 Redução de ruídos Dada uma imagem I com um ruído n, reduza n o máximo que puder (preferencialmente elimine n completamente) sem alterar significativamente I. 20 dB significam Marcelo Gattass
27
Dois tipos básicos de ruídos
Imagem Digital 08/04/2017 Dois tipos básicos de ruídos Ruído Gaussiano branco : processo estocástico de média zero, independente do tempo e dos espaço. é o mesmo processo estocástico que não varia no tempo. é uma variável aleatória com a distribuição: Marcelo Gattass
28
Dois tipos básicos de ruídos
Imagem Digital 08/04/2017 Dois tipos básicos de ruídos Ruído impulsivo: causado por erro de transmissão, CCDs defeituosos, etc... Também chamado de pico e de sal e pimenta. são v.a. uniformemente distribuídas imin, imax, e l são parâmetos de controle da quantidade de ruídos. Marcelo Gattass
29
Exemplo de ruído Gaussiano (=5) e Impulsivo ( =0.99)
Imagem Digital 08/04/2017 Exemplo de ruído Gaussiano (=5) e Impulsivo ( =0.99) Marcelo Gattass
30
Imagem Digital 08/04/2017 Marcelo Gattass
31
Imagem com ruído impulsivo
Imagem Digital 08/04/2017 Imagem com ruído impulsivo Uso da mediana 223 204 171 120 18 50 116 138 97 187 242 172 179 167 235 76 175 123 214 114 143 232 198 203 205 Iij = mediana Ωij Marcelo Gattass
32
Imagem Digital 08/04/2017 Sinal com ruído Marcelo Gattass
33
Imagem Digital 08/04/2017 Suavização f h Marcelo Gattass
34
Imagem Digital Filtragem Gaussiana 08/04/2017 Marcelo Gattass
35
Imagem Digital: Histogramas
Uma outra maneira de ver a informação da imagem: probabilidade de ocorrência de um determinado valor, uso do intervalo [0,255], contraste,...
36
Histogramas de Imagem Colorida
37
Propriedades básicas de uma Imagem Digital
38
Convolução
39
Convolution Pictorially f(x) h(x)
40
Convolution h(t-x) f(t) x
41
Convolution Consider the function (box filter):
42
Convolution This function windows our function f(x). f(t)
43
Convolution This function windows our function f(x). f(t)
44
Convolution This function windows our function f(x). f(t)
45
Convolution This function windows our function f(x). f(t)
46
Convolution This function windows our function f(x). f(t)
47
Convolution This function windows our function f(x). f(t)
48
Convolution This function windows our function f(x). f(t)
49
Convolution This function windows our function f(x). f(t)
50
Convolution This function windows our function f(x). f(t)
51
Convolution This function windows our function f(x). f(t)
52
Convolution This function windows our function f(x). f(t)
53
Convolution This function windows our function f(x). f(t)
54
Convolution This function windows our function f(x). f(t)
55
Convolution This function windows our function f(x). f(t)
56
Convolution This function windows our function f(x). f(t)
57
Convolution This function windows our function f(x). f(t)
58
Convolution This function windows our function f(x). f(t)
59
Convolution This function windows our function f(x). f(t)
60
Convolution This function windows our function f(x). f(t)
61
Convolution This function windows our function f(x). f(t)
62
Convolution This function windows our function f(x). f(t)
63
Convolution This function windows our function f(x). f(t)
64
Convolution This particular convolution smooths out some of the high frequencies in f(x). f(t) f(x)g(x)
65
Ilustação da convolução
66
Ilustração da convolução
67
O problema de amostragem
Alias
68
Freqüência de Amostragem
f(x) x f(x) x x f(x)
69
Sinal sub-amostrado
70
Estudo de sinais digitais
Transformadas para o domínio da freqüencia Teorema de Nyquist e Alias
71
revisão Harmônicos T A t+ -A A
72
Integrais de senos e cosenos em [-,]
revisão cos(nx) sin(nx) n = 1 n = 2 Áreas se compensam. Integrais resultam em 0. sin(nx)cos(nx)
73
Integrais de senos e cosenos em [-,]
revisão Integrais de senos e cosenos em [-,] Funções ortogonais
74
Série de Fourier f(t) t T Jean Baptiste Joseph Fourier (1768-1830)
T Jean Baptiste Joseph Fourier ( ) Paper de 1807 para o Institut de France: Joseph Louis Lagrange ( ), and Pierre Simon de Laplace ( ).
75
Exemplo: Série de harmônicos
76
Série de Fourier: cálculo de a0
f(t) t T
77
Série de Fourier: an e bn
f(t) t T ...
78
Resumindo f(t) t T
79
Domínios f(t) tempo ou espaço t T ak w bk freqüencia w
80
Coeficientes de funções pares e ímpares
f-ímpar ak= 0 f-par bk= 0
81
Periodicidade da Série de Fourier
f(t) t T t f(t) T
82
Números complexos x é a parte real y é a parte imaginária
revisão eixo imagnário x é a parte real y é a parte imaginária A é a magnitude q é a fase y A q eixo real x
83
Operação básicas com complexos
revisão Operação básicas com complexos
84
revisão Derivada de eit C.Q.D.
85
Outras propriedades úteis
revisão i -1 1
86
Outras propriedades úteis (2)
revisão 1 -1 i -i o cosseno corresponde a média de dois harmônicos de freqüências w e -w
87
Outras propriedades úteis (2)
revisão 1 -1 i -i o seno também corresponde a dois harmônicos: w e -w
88
Outras propriedades úteis (3)
revisão
89
Amplitude e fase de complexos
revisão Amplitude e fase de complexos Dado um valor: Amplitude -A A Fase
90
Série de Fourier com números complexos
91
Escrevendo em complexos
92
Serie de Fourier de Sinais Discretos
93
Sinal discreto r t 1 2 3 4 5 6 N-1
94
1 2 3 4 5 N t . . .
95
onde: onde:
96
onde: onde:
97
Inversa da inversa onde: Qual o valor?
98
Se s=k Se s ≠ k é a soma de uma PG de N termos e razão q. Mas
99
onde: Qual o valor? C.Q.D.
100
real imaginário 1 N=5 N=3 N=6 N=4
101
Transformada Discreta
T - não é o período do sinal!
102
Transformada Discreta de Fourier
todas as feqüências computadas são multiplas destas
103
Outro exemplo f3 ( t ) := 10 cos ( 2 p t ) + 6 sin ( 10 p t ) + .8 cos
40 p t )
104
Transformada
105
Eixo de freqüência
106
Tutorial com o Excel
107
Discrete Cosine Transformation (DCT)
108
o cosseno pode substituir o seno
109
Resumindo f(t) t T
110
1 2 3 4 5 N t . . .
111
Aula 2
112
Serie de Fourier de Sinais Discretos
113
Sinal discreto r t 1 2 3 4 5 6 N-1
114
onde: onde:
115
Transformada
116
Transformada de Fourier
117
Exemplo 1: Função caixa (box)
box(x) a x b
118
Transformada da função box
box(x) a x b F(w) 1/b 2/b 3/b -1/b -2/b -3/b ab sinc(bw) w
119
Distribuição normal: Gaussiana
120
Exemplo 2: Gaussiana || F(w) || f(x) w x
121
Transformada da Gaussiana
122
Exemplo 3: Delta de Dirac
f(x) 1/b -b/2 b/2 x
123
Delta de Dirac de Gaussianas
124
Transformada do Delta de Dirac
f(x) (x) x || F(w) || w 1
125
Transformada do cosseno
x
126
Exemplo 4: Cosseno || F(w) || x w
127
Exemplo 5: Sequência de impulsos
f(x) || F(w) || 1/b 2/b -1/b -2/b x w -2b -b b 2b 3b f(x) || F(w) || w 1/b 2/b -1/b -2/b x 1b 2b 3b -b -2b
128
Pares importantes
129
Propriedades da transformada
convolução
130
Filtragem com Transformada de Fourier
FT FT FT-1 FT X
131
Amostragem e Reconstrução
Observando os domínio do espaço e das freqüências
132
Sinal original domínio do espaço domínio das freqüências
133
Sinal discretizado
134
Amostragem domínio do espaço domínio das freqüências produto
convolução
135
Sinal discretizado domínio do espaço domínio das freqüências
136
Reconstrução domínio do espaço domínio das freqüências convolução
produto
137
Retorno ao sinal original
domínio do espaço domínio das freqüências
138
Sinal original com mais altas freqüências
domínio do espaço domínio das freqüências
139
Mesma taxa de amostragem
domínio do espaço domínio das freqüências produto convolução
140
Sinal amostrado Não temos como reconstruir sem introduzir artefatos!
domínio do espaço domínio das freqüências Não temos como reconstruir sem introduzir artefatos!
141
Teorema de Nyquist Para que um sinal de banda limitada (i.e. aqueles cuja a transformada resultam em zero para freqüências f > B) seja reconstruido plenamente ele precisa ser amostrado numa freqüência f >= 2B. Um sinal amostrado na freqüência (f=2B) é dito amostrado por Nyquist e f=2B é a freqüência de Nyquist. Não há perda de informação nos sinais amostrados na freqüência de Nyquist, e não adicionamos nenhuma informação se amostrarmos numa freqüência maior.
142
Aliasing Esta mistura de espectros é chamada de aliasing.
Existem duas maneiras de lidarmos com aliasing. Passar um filtro passa-baixa no sinal. Aumentar a freqüência de amostragem.
143
Alias Texture errors
144
Parte 2 - Eliminação de ruídos e realce de arestas
Imagem Digital Conceitos, Processamento e Análise Parte 2 - Eliminação de ruídos e realce de arestas Aplicações da Transformada de Fourier
145
Filtragem Gaussiana
146
Filtro Um filtro é um operador que atenua ou realça uma determinada freqüência Fácil de visualizar no domínio da freqüência onde: h(t) é o f(t) filtrado
147
Tipos de Filtros F G H Passa baixa = Passa alta = Passa banda =
148
Imagem filtrada com um filtro passa baixa
149
Imagem filtrada com um filtro passa alta
150
Filtragem no domínio espacial
ou: Filtragem no domínio espacial é obtida pela convolution (e vice-versa). Na realidade é ao contrário: a TF é uma ferramenta para filtragem.
151
Mascara ou Filtro ou:
152
Discretização da Gaussiana 1D
0.3 0.2 0.1 -4 -3 -2 -1 1 2 3 4
153
Discretização da Gaussiana 2D
154
Separabilidade do filtro gaussiano
207 247 38 131 62 90 129 234 231 211 175 44 1 26 236 58 75 128 112 210 141 125 168 130 117 129 125 90 88 93 92 185 113 84 93 145 207 151 66 18 107 111 154 140 130 130 117 129 125 90 88 93 92
155
Transformada normalizada de Fourier
156
Transformada normalizada de Fourier: separação
157
Transformada normalizada de Fourier: Matriz H
162
Problemas com a Transformada de Fourier
163
Como tornar a TF invariante a rotação e escala?
164
Parte 3 - Processamentos apenas no espaço das cores
Imagem Digital Conceitos, Processamento e Análise Parte 3 - Processamentos apenas no espaço das cores
165
Correção gama Ajustes de contraste e iluminação
166
Correção gama
167
Probabilidade 1 x CDF(x) DF(x) x0 x1 1 x
1 x CDF(x) Função de densidade acumulada de probabilidade Função de densidade de probabilidade DF(x) x0 x1 1 x
168
Mudança de variavel y = f (x)
1 1 Transformação monotônica e limitada ao intervalo [0,1] 1 x 1 y 1 x DF(y)
169
Equalização de Histograma
1.6 1.4 1.2 1 0.8 0.6 0.4 0.2 1 2 3 4 5 6 7 8 9 10 11
170
Equalização do histograma
171
Tons de cinza e negativo
Lx,y = 0.299Rx,y Gx,y Bx,y tons de cinza Lx,y = Lx,y
172
Outros exemplos com o PaintShopProtm
173
Quantização de cores Quantização de 24 para 8 bits
174
A qualidade depende da imagem
175
Corte mediano
176
Corte mediano
177
Parte 4 - Codificação e armazenamento de Imagens
Imagem Digital Conceitos, Processamento e Análise Parte 4 - Codificação e armazenamento de Imagens compressão e formatos de arquivos
178
Codificação uniforme tons Podemos melhorar? Uniforme # pixels código
tam. # bits 1900 000 3 5700 1/7 2500 001 7500 2/7 2100 010 6300 3/7 1600 011 4800 4/7 800 100 2400 5/7 600 101 1800 6/7 300 110 900 1 200 111 TOTAL 30000 Podemos melhorar?
179
Construção da Árvore Huffman
1/7 2500 2/7 2100 1900 3/7 1600 4/7 800 5/7 600 6/7 300 1 200 1/7 2500 2/7 2100 1900 3/7 1600 4/7 800 5/7 600 n0 500 n0 6/7 1
180
Construção da Árvore Huffman
1/7 2500 2/7 2100 1900 3/7 1600 4/7 800 5/7 600 n0 500 1/7 2500 2/7 2100 1900 3/7 1600 n1 1100 4/7 800 n1 n0 5/7 6/7 1
181
Construção da Árvore Huffman
1/7 2500 2/7 2100 1900 3/7 1600 n1 1100 4/7 800 1/7 2500 2/7 2100 1900 n2 3/7 1600 n0 6/7 1 5/7 n1 4/7 n2
182
Construção da Árvore Huffman
1/7 2500 2/7 2100 1900 n2 3/7 1600 n3 3500 1/7 2500 2/7 2100 1900 n0 6/7 1 5/7 n1 4/7 n2 3/7 n3
183
Construção da Árvore Huffman
3500 1/7 2500 2/7 2100 1900 n4 4000 n3 3500 1/7 2500 n4 2/7 n0 6/7 1 5/7 n1 4/7 n2 3/7 n3
184
Construção da Árvore Huffman
4000 n3 3500 1/7 2500 n5 6000 n4 4000 n4 n5 n3 1/7 2/7 n2 3/7 n1 4/7 n0 5/7 6/7 1
185
Construção da Árvore Huffman
1 11 10 01 00 111 110 1111 1110 11111 11110 111101 111100 n0 n1 n2 n3 n4 n5 n6 6/7 5/7 4/7 3/7 2/7 1/7
186
Codificação de Huffman
Uniforme Huffman tons # pixels código tam. # bits 1900 000 3 5700 00 2 3800 1/7 2500 001 7500 10 5000 2/7 2100 010 6300 01 4200 3/7 1600 011 4800 110 4/7 800 100 2400 1110 4 3200 5/7 600 101 1800 11111 5 3000 6/7 300 900 111101 6 1 200 111 111100 1200 TOTAL 30000 27000
187
Redundância de Codificação
p(r) Code 1 l(r) l(r)p(r) Code 2 l(r) l(r)p(r) 0.19 000 3 0.57 11 2 0.38 1/7 0.25 001 3 0.75 01 2 0.50 2/7 0.21 010 3 0.63 10 2 0.42 3/7 0.16 011 3 0.48 001 3 0.48 4/7 0.08 100 3 0.24 0001 4 0.32 5/7 0.06 101 3 0.18 00001 5 0.30 6/7 0.03 110 3 0.09 000001 6 0.18 1 0.02 111 3 0.06 000000 6 0.12 1.00 Lavg= 3.00 Lavg= 2.70 rk = tons de cinza em uma imagem, k=0, 1, ..., -1 p(rk) = nk / n onde nk = número de pixels com tom rk n = número de pixels da imagem 11 10 01 001 0001 00001 000001 000000
188
Resultado da Teoria da Informação
p(r) Code 1 l(r) l(r)p(r) Code 2 log(1/p) log(1/p)*p 0.19 000 3 0.57 11 2 0.38 2.4 0.46 1/7 0.25 001 0.75 01 0.50 2.0 2/7 0.21 010 0.63 10 0.42 2.3 0.47 3/7 0.16 011 0.48 2.6 4/7 0.08 100 0.24 0001 4 0.32 3.6 0.29 5/7 0.06 101 0.18 00001 5 0.30 4.1 6/7 0.03 110 0.09 000001 6 5.1 0.15 1 0.02 111 000000 0.12 5.6 0.11 =1.00 Lavg = 3.00 2.70 Lopt = 2.65
189
Compressão de imagens Compressão de Imagens Sem Perda Com Perda
Preserva de forma controlada o nível de qualidade da imagem Taxas de compressão que chegam a valores de mais de 100 : 1 Preserva exatamente o conteúdo da imagem Taxas de compressão 3 : 1
190
Métodos de compressão Sem perdas Run length encoding (RLE) - repetição
Huffman coding - histograma Predictive coding - diferenças Block coding (LZW) - dicionário Com perdas Truncation coding - reduz a representação Predictive coding - descarta diferenças altas Block coding - dicionário aproximado Transform coding - descarta frequencias altas Métodos compostos: JPEG, MPEG
191
Processo de compressão e descompressão
Dados da Imagem Original Dados da Imagem Original 32, 45, 57, 68, 23, 100, 98, ... 32, 45, 57, 68, 23, 100, 98, ... Compressão da imagem Descompressão da imagem 32, 45, 57, 68, 23, 100, 98, ... 32, 45, 57, 68, 23, 100, 98, ... Transporte e/ou Armazenamento Imagem Comprimida Imagem Comprimida
192
Fundamentos da Compressão de Imagens
A compressão de uma imagem é obtida quando se elimina a redundância de: codificação entre pixels psico-visual
193
Redundância entre pixels
640 colunas x 480 linhas x 1 byte/pixel = 300 KBytes 480*(1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0) = ~18 Kbytes onde 1 = 32 bytes de preto e 0 = 32 bytes de branco
194
Compressão - RLE Objetivo Reduzir a quantidade de dados redundantes.
Exemplo AAAAAAxxx 6A3x Caracterísiticas Simples e rápido, porém a eficiência depende da imagem a ser comprimida.
195
Run-Length Encoding 76 78 79 80 76 | 5 78 | 1 79 | 4 80 | 2
imagem binária . . . 1 1 1 1 1 7 4 5
196
Compressão do jpeg
197
Aplicações são tecnologicamente complexas: exemplo: algoritmo do JPEG
8x8 blocks Source Image B G R DCT-based encoding Compressed image data FDCT Quantizer Entropy Encoder Table Table
201
Equations for JPEG DCT Forward DCT: Inverse DCT:
202
Visualization of Basis Functions
Increasing frequency
203
Organização de pixels num array no formato TGA (targa)
Pixel (x,y) h-1 ... 3 2 1 b g r a b g r a b g r a b g r a 1 … w-1 x unsigned char *bgra_vector; … offset=4*(w*y+x); blue = bgra_vector[offset]; green = bgra_vector[offset+1]; red = bgra_vector[offset+2]; alpha = bgra_vector[offset+3];
204
Outra ordem no plano
205
Tipo Abstrato Imagem Image *imgCreate (int w, int h);
/*- implementação do tipo Imagem */ struct image_imp { int width; /* largura (width) em pixels */ int height; /* altura (height) em pixels */ float *buf; /* buffer RGB */ }; Image *imgCreate (int w, int h); void imgDestroy (Image *image); int imgGetWidth(Image * image); int imgGetHeight(Image * image); float * imgGetRGBData(Image * image); void imgSetPixel3fv(Image *image, int x, int y, float * color); void imgSetPixel3ubv(Image *image, int x, int y, unsigned char *color); void imgGetPixel3fv(Image *image, int x, int y, float *color); void imgGetPixel3ubv(Image *image, int x, int y, unsigned char *color); Image * imgReadBMP(char *filename); int imgWriteBMP(char *filename, Image * image); Image * imgCopy(Image * image); Image * imgGrey(Image * image); Image * imgResize(Image * img0, int w1, int h1);
206
Pixels (bgra,bgra, …,bgra)
Arquivos Targa RGBA Cabeçalho Pixels (bgra,bgra, …,bgra) unsigned char imageType=2 /* RGB(A) sem compressão */ unsigned char bitDepth=32; /* 32 bits por pixel */ unsigned char byteZero=0; /* usado para escrever um byte zero no arquivo */ short int shortZero=0; /* usado para escrever um short int zero no arquivo */ /* escreve o cabecalho */ putc(byteZero,filePtr); /* no. de caracteres no campo de id da imagem */ putc(byteZero,filePtr); /* imagem nao tem palheta de cores */ putc(imageType,filePtr); /* = 2 -> imagem "true color" (RGBA) */ putuint(shortZero,filePtr);/* info sobre a tabela de cores (inexistente) */ putuint(shortZero,filePtr); /* idem */ putc(byteZero,filePtr); /* idem */ putuint(shortZero,filePtr); /* =0 origem em x */ putuint(shortZero,filePtr); /* =0 origem em y */ putuint(img->width,filePtr); /* largura da imagem em pixels */ putuint(img->height,filePtr); /* altura da imagem em pixels */ putc(bitDepth,filePtr); /* numero de bits de um pixel */ putc(byteZero, filePtr); /* origem canto inf esquedo sem entrelacamento */
207
Organização de pixels num array no formato PPM (o mais simples)
1 2 ... w-1 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 1 15 16 17 18 ... 2 3 ... h-1 Pixel (x,y) unsigned char *rgb_vector; … offset=3*(w*y+x); red = rgb_vector[offset]; green = rgb_vector[offset+1]; blue = rgb_vector[offset+2]; y
208
Formato PPM File_signature "P6". White_space (blanks, TABs, CRs, LFs).
Width, w, (ASCII decimal characters). Height, h, (ASCII decimal characters). Max_color, max, (ASCII decimal characters). Pixels, (3*w*h bytes rgb components of pixels) Comments from # to the end of line lines 70 characters
209
Formato PPM P6 # Created by Paint Shop Pro 358 539 255
exemplo P6 # Created by Paint Shop Pro 255
210
Gravação em PPM int ppm_write(int w, int h, unsigned char *rgb, char *file_name) { FILE *fp; fp = fopen(file_name, "wb"); if (fp == NULL) return 0; if (fprintf(fp, "P6\n%d %d\n255\n", w, h) <= 0) fclose(fp); } if (fwrite(rgb, 3*w*h, 1, fp) != 1) return 1;
211
Leitura em PPM int ppm_read(int *p_w, int *p_h, unsigned char **p_rgb, char *file_name) { FILE *fp; char line[80]; int rgb_size; int max; fp = fopen(file_name, "rb"); if (fp == NULL) { printf(”Error reading %s",file_name); return 0;} fgets(line,80,fp); if(strcmp(line,"P6\n")) { printf(”Wrong signature\n"); return 0; } while (fscanf( fp, " %d ", p_w ) != 1) fgets(line, 80, fp); while (fscanf( fp, " %d ", p_h ) != 1) while (fscanf( fp, " %d", &max ) != 1) fgetc(fp); rgb_size=3*(*p_w)*(*p_h); (*p_rgb) = (unsigned char *) calloc(rgb_size, 1); if ((*p_rgb) != NULL) fread( (*p_rgb), rgb_size, 1, fp ); fclose(fp); return 1; }
212
Programa Simples void main(void){ int w, h; // dimensões da imagem
unsigned char *rgb; // bytes de rgb unsigned char r,g,b,grey; // componentes de cor int x,y; long int k; if (ppm_read(&w,&h,&rgb,"test_in.ppm")==0) return; for (y = 0; y < h; y++) { for (x = 0; x < w; x++) { k = 3*(y*w+x); r = rgb[k]; g = rgb[k+1]; b = rgb[k+2]; grey = (unsigned char)(0.3*r+0.6*g+0.1*b); rgb[k] = grey; rgb[k+1] = grey; rgb[k+2] = grey; } ppm_write(w, h, rgb, "test_out.ppm"); free(rgb);
213
colocado para garantir
Arquivo BMP 00 01 02 08 07 06 05 03 04 10 09 11 Pixel 0 Pixel 1 Pixel 2 Pixel 3 13 12 14 Pixel 4 15 16 17 18 ... Organização dos pixels de uma imagem RGB no arquivo BMP colocado para garantir múltiplo de 4
214
Microsoft Windows Bitmap - BMP
Características Principais Mono, 4-bit, 8-bit, 24-bit Tipo de compressão: RLE / não comprimido Tamanho máximo: 64K x 64K pixels Seções (versão 3): Header Info. Header Palette Bitmap Data
215
BMP - Header typedef struct _Win3xBitmapHeader {
WORD Type; /* Image file type 4D42h (“BM”)*/ DWORD FileSize; /* File size (bytes) */ WORD Reserved1; /* Reserved (always 0) */ WORD Reserved2; /* Reserved (always 0) */ DWORD Offset; /* Offset to bitmap data in bytes */ } WIN3XHEAD;
216
BMP - Information Header
typedef struct _Win3xBitmapInfoHeader { DWORD Size; /* Size of this Header (40) */ DWORD Width; /* Image width (pixels) */ DWORD Height; /* Image height (pixels) */ WORD Planes; /* Number of Planes (always=1) */ WORD BitCount; /* Bits per pixel (1/4/8 or 24)*/ DWORD Compression; /* Compression (0/1/2) */ DWORD SizeImage; /* Size of bitmap (bytes) */ DWORD XPelsPerMeter; /* Horz. resol.(pixels/m) */ DWORD YPelsPerMeter; /* Vert. resol.(pixels/m) */ DWORD ClrUsed; /* Num of colors in the image */ DWORD ClrImportant; /* Num of important colors */ } WIN3XINFOHEADER;
217
BMP - Palette typedef struct _Win3xPalette {
RGBQUAD Palette[ ]; /* 2, 16, or 256 elem. */ } WIN3XPALETTE; typedef struct _Win3xRgbQuad BYTE Blue; /* 8-bit blue component */ BYTE Green; /* 8-bit green component */ BYTE Red; /* 8-bit red component */ BYTE Reserved; /* Reserved (= 0) */ } RGBQUAD;
218
BMP - Image Data Notas Cada scan line em um arquivo BMP é sempre um múltiplo de 4. Imagens com1-, 4-, e 8-bits usam uma palheta de cores. Imagens com 24-bits guardam a cor diretamente, na ordem azul, verde e vermelho. O armazenamento da imagem é sempre feito a partir do canto esquerdo inferior.
219
Esquemas de armazenamento de imagens
Plano de Cores Bancos (Java) Azul Verde Verm. 00 01 02 06 05 03 04 07 08 09 . . . 06 Informação é uma componente da cor 06 Pixel 0 Pixel 1 Pixel 2 Pixel 3 Pixel 4 Pixel 5 Organização dos pixels de uma imagem por planos de cores (Data Buffer – Java)
220
Transformações Geométricas na Imagem
Transformações e Quatérnios 08/04/2017 Transformações Geométricas na Imagem Amostragem e Reconstrução Marcelo Gattass
221
Transformações e Quatérnios
08/04/2017 Marcelo Gattass
222
Transformações e Quatérnios
08/04/2017 Transformações R2 R2 Exemplos: y x y p = y x´ y´ p´ = x x Marcelo Gattass
223
Transformações lineares R2 R2
Transformações e Quatérnios 08/04/2017 Transformações lineares R2 R2 Mostre que: T (0) = 0 A) B) 1 x y m11 m21 T = m12 m22 x y m11 x´ y´ = m21 m22 m12 Marcelo Gattass
224
Transformações lineares: escala
Transformações e Quatérnios 08/04/2017 Transformações lineares: escala Redução (0< sx <1) , Aumento (sy >1) y x y i j x´ y´ a´ = b x y a = x c Marcelo Gattass
225
Transformações lineares: espelhamento
Transformações e Quatérnios 08/04/2017 Transformações lineares: espelhamento x y i j y p' = x´ = p x y y´ x x´ = -1x y´ = y Marcelo Gattass
226
Transformações lineares: rotação
Transformações e Quatérnios 08/04/2017 Transformações lineares: rotação y x´ y´ p' = a r r r x y r q p = a x x´ = x.cos q - y.sen q y´ = x.sen q + y.cos q Marcelo Gattass
227
Transformações Lineares: matriz derivada pela geometria
Transformações e Quatérnios 08/04/2017 Transformações Lineares: matriz derivada pela geometria y j q i x Marcelo Gattass
228
Mudança de referêncial
Transformações e Quatérnios 08/04/2017 Mudança de referêncial y y y x´ y´ v p' = x y x y u v p p ou j q = = q i x x - q x u x y cos q u v = sen q -sen q u x y ux uy = v vy vx Para montarmos a matriz que transforma as coordenadas de um refencial xy para um novo refencial uv basta escrevermos as linhas como sendo os unitários das direções. Marcelo Gattass
229
Mudança de coordenadas entre sistemas rotacionados
Transformações e Quatérnios 08/04/2017 Mudança de coordenadas entre sistemas rotacionados As coordenas de um ponto rodado de um ângulo em relação a um sistema são iguais as coordenadas do ponto original em relação a um sistema que sofre a rotação inversa. Como o novo sistema sofre a rotação inversa, a matriz de rotação é a inversa da matriz que levaria da base original para a este novo sistema. As colunas de uma matriz de uma rotação são as transformadas dos vetores da base e a transposta desta matriz é a sua inversa (rotaçãomatriz ortonormal). Logo as linhas da matriz que escreve uma mudança entre bases ortonormais rodadas são as coordenadas do vetores da nova base em relação a base original. Marcelo Gattass
230
Transformações lineares: cisalhamento (shear)
Transformações e Quatérnios 08/04/2017 Transformações lineares: cisalhamento (shear) y y y Cisalhamento em x j i x x x Marcelo Gattass
231
Exemplo de aplicação do cisalhamento
Transformações e Quatérnios 08/04/2017 Exemplo de aplicação do cisalhamento x y a' m' plano de projeção c y x y c' b' a' m' m a x b Marcelo Gattass
232
Exemplo de aplicação do cisalhamento
Transformações e Quatérnios 08/04/2017 Exemplo de aplicação do cisalhamento x y c' b' a' m' y a x Marcelo Gattass
233
Decomposição Singular de Matrizes
Transformações e Quatérnios 08/04/2017 Decomposição Singular de Matrizes rotações diagonal Marcelo Gattass
234
Exemplo: cisalhamento como composição de rotações e escala
Transformações e Quatérnios 08/04/2017 Exemplo: cisalhamento como composição de rotações e escala Marcelo Gattass
235
Transformações Geométricas: Translação
Transformações e Quatérnios 08/04/2017 Transformações Geométricas: Translação y p' x y p' = tx ty + x’ y’ tx ty p t = x x y ? x´ y´ = Não pode ser escrito na forma x y 1 x´ y´ = tx ty + Ruim para implementação Marcelo Gattass
236
Translação num plano do R3
Transformações e Quatérnios 08/04/2017 Translação num plano do R3 yh xh w w=1 x y t matriz de translação Marcelo Gattass
237
Transformações e Quatérnios
08/04/2017 Concatenação x y x0 y0 a y y0 x0 x y y a x x Marcelo Gattass
238
Transformações e Quatérnios
08/04/2017 Concatenação x y x y T1 T2 x y x y P’= T2 R2 E R1 T1 P R1 R2 x y x y E Marcelo Gattass
239
Coordenadas projetivas (ou homogêneas)
Transformações e Quatérnios 08/04/2017 Coordenadas projetivas (ou homogêneas) wx wy w x y 1 = D wx wy w xh yh w x y w = D p = = y x p x = xh /w y = yh /w w>0 w=1 yh xh Ex.: 3 2 1 6 4 2 9 6 3 3 2 = D = D = Marcelo Gattass
240
Vantagens das coordenadas homogêneas (pontos no infinito)
Transformações e Quatérnios 08/04/2017 Vantagens das coordenadas homogêneas (pontos no infinito) w h1 w 2 3 h2 = c2 c3 u w=1 c1 = y h3 x u w=1 yh uh h1 h2 h3 h4 2 3 2 3 1 2 3 1/2 2 3 1/4 2 3 uh xh . . . 2 3 = ? c1 c2 c3 c4 infinito na direção (2,3) 1 1.5 2 3 4 6 8 12 Marcelo Gattass
241
Reta no espaço projetivo
Transformações e Quatérnios 08/04/2017 Reta no espaço projetivo w plano: ax+by+cw=0 reta: ax+by+c=0 yh plano: w=1 xh Marcelo Gattass
242
Reta paralelas no espaço projetivo
Transformações e Quatérnios 08/04/2017 Reta paralelas no espaço projetivo w plano: ax+by+c1w=0 reta: ax+by+c1 =0 reta= ax+by =0 reta: ax+by+c2 =0 yh plano: w=1 plano: ax+by+c2w=0 xh Marcelo Gattass
243
Deformação sem paralelismo
w yh xh w w=1 x y w=1 y x yh xh
244
Transformações e Quatérnios
08/04/2017 Matriz da Homografia Marcelo Gattass
245
Transformações e Quatérnios
08/04/2017 [A] : Afim Obs: Se fosse um paralelograma a imagem do ponto 2 seria (1,1)T e não (α, )T Marcelo Gattass
246
Transformações e Quatérnios
08/04/2017 [P] : Projetiva Marcelo Gattass
247
[N] : Paralelograma para quadrado unitário
Transformações e Quatérnios 08/04/2017 [N] : Paralelograma para quadrado unitário Marcelo Gattass
248
Fundamentals of Texture Mapping and Image Warping “Explained”
A revisit of Paul Heckbert’s M.Sc. Thesis
251
Um exemplo 1D Textura discreta Textuta contínua
Sinal de entrada discreto
252
Deformação da textura (warping)
Textuta contínua Textuta contínua deformada
253
Limitando a freqüência
254
Filtro de re-amostragem
255
Reconstrução, warping, filtragem e amostragem
256
Textura em imagem
257
Textura em imagem
258
Filtro de re-amostragem no espaço de destino (espaço da imagem)
destination space integral
259
Filtro de re-amostragem no espaço de origem (espaço da textura)
260
Filtro de re-amostragem no espaço de origem (espaço da textura)
261
Filtro de re-amostragem no espaço de origem (espaço da textura)
texture space integral
262
Mapeamentos lineares afins
263
Elliptical Gaussian Resampling
264
Gaussiana
265
Gaussiana
266
Circulos e Elipses
267
Warping de domínios de Gaussianas
268
Filtro Gaussiano de re-amostragem no espaço de origem (espaço da textura)
269
Exemplo de reconstrução com Gaussiana
270
Implementação do Filtro Gaussiano
271
Magnificação e mimificação
272
Regiões que mapeiam num quadrado ou círculo
273
Nosso problema Screen space Texture space
274
Como tratar o caso geral
275
FIM
276
A lens focuses light onto the film
Adding a lens “circle of confusion” A lens focuses light onto the film There is a specific distance at which objects are “in focus” other points project to a “circle of confusion” in the image Changing the shape of the lens changes this distance
277
(Center Of Projection)
Lenses F focal point optical center (Center Of Projection) A lens focuses parallel rays onto a single focal point focal point at a distance f beyond the plane of the lens f is a function of the shape and index of refraction of the lens Aperture of diameter D restricts the range of rays aperture may be on either side of the lens Lenses are typically spherical (easier to produce)
278
Thin lenses Thin lens equation:
Any object point satisfying this equation is in focus What is the shape of the focus region? How can we change the focus region? Thin lens applet: (by Fu-Kwun Hwang )
279
Changing the aperture size affects depth of field
A smaller aperture increases the range in which the object is approximately in focus Flower images from Wikipedia
280
Lentes reais
281
Câmera obscura e Camera “pin-hole”
O fato dos quadros renascentistas terem elemenots da geoemetria projetiva não quer dizer que eles conheciam técnicas precisas de desenho geométrico. Muitos trabalhos foram feitos por mera intuição ou com auxilio de câmeras escuras onde o pintor via sobre o canvas uma imagem da cena que ele desejava pintar como ilustra a figura. Podemos encontrar referências a câmeras escuras nos trabalhos de Leonardo da Vinci de A câmera fotográfica, como conhecemos hoje, foi inventada pelo Mandé Daguerre ( ) e seus principios podem ser ilustrados com artefatos bem simples como a câmera tipo “pinhole”.
282
Sensor Fujifilm
283
O que é registrado nos sensores (CCD, CMOS...)
yim sx sy 3 2 1 1 2 3 4 5 xim
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.