A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Captura, Processamento, Interpretação, Criação, Reprodução, …

Apresentações semelhantes


Apresentação em tema: "Captura, Processamento, Interpretação, Criação, Reprodução, …"— Transcrição da apresentação:

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 eit 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

158

159

160

161

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

198

199

200

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 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 = 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 = 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' = = p x 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 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 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çãomatriz 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 ? = Não pode ser escrito na forma x y 1 = 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

249

250

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


Carregar ppt "Captura, Processamento, Interpretação, Criação, Reprodução, …"

Apresentações semelhantes


Anúncios Google