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

Slides:



Advertisements
Apresentações semelhantes
Transformação de Imagens
Advertisements

Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro Conteúdo: - Transformações geométricas no plano.
Uso de Filtros Filtros Passa Baixa
Processamento de Imagens
Parte I – Sinais e Sistemas
Operações envolvendo imagens
Amostragem/Reconstrução
A Transformada de Fourier Discreta
Teorema de Amostragem Ou critério de Nyquist
Computação Gráfica Processamento de Imagem
Tecnologia Hipermídia e Multimídia Prof. Rudson Faculdade de Excelência Educacional do Rio Grande do Norte CURSO DE GRADUAÇÃO TECNOLÓGICA.
Especificações de Filtros
Sinais e Sistemas – Capítulo 4
Filtros de Convolução (Processamento de Imagens)
Temas de DSP Conceitos básicos de Sinais.
Compressão de Dados.
Quantização e Dithering
Fundamentos e Aquisição de Imagens Digitais
Fundamentos e Aquisição de Imagens Digitais
10. Análise de Fourier usando DFT
4. Amostragem de Sinais Contínuos no Tempo
8. Transformada Discreta de Fourier - DFT
Equipamentos 3/25/2017 Equipamentos Computação Gráfica - Gattass.
Parte 2 - Eliminação de ruídos e realce de arestas
Transformações Geométricas
Parte 4 - Codificação e armazenamento de Imagens
Transformações Geométricas Coordenadas Homogêneas e Rotações.
Ismael Andrade Pimentel Departamento da Eng. Mec
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.
Fundamentals of Texture Mapping and Image Warping “Explained”
Imagens Imagens Computação Gráfica - Gattass.
Parte 3 - Processamentos apenas no espaço das cores
Mapeamento de texturas com redução de aliasing Lorenzo Ridolfi
Transformações Geométricas na Imagem Amostragem e Reconstrução.
Transformações Geométricas Coordenadas Homogêneas e Rotações.
Imagem Digital Conceitos, Processamento e Análise
Técnicas Algorítmicas em Processamento de Imagens
Imagem Digital Conceitos, Processamento e Análise 1.Imagem e funções 2.Imagem digital: amostragem, quantização e codificação 3.Re-amostragem de funções.
Imagem Digital Conceitos, Processamento e Análise 1.Imagem e funções 2.Imagem digital: amostragem, quantização e codificação 3.Re-amostragem de funções.
Computação Gráfica Interativa - Gattass
Fundamentação Teórica
Filtragem Espacial É baseado na aplicação de máscaras na imagem.
Filtros I: o domínio espacial. FILTROS I: o domínio espacial.
Filtro Linear-Máscaras
Capítulo IV – Processamento de Imagem e Vídeo
Prof. Marcelo de Oliveira Rosa
Processamento Digital de Imagens
MEEA,15 de Outubro de 2001 Técnicas de visualização, aquisição e processamento de imagem.
Fundamentos de Análise de Sinais
Departamento de Electrónica, Telecomunicações e Informática
Visão Computacional Formação da Imagem
Prof. Marcelo de Oliveira Rosa
Guilherme Defreitas Juraszek
Processamento de Imagens
Capítulo II – Imagem Digital
Revisão Geral Técnicas de Realce Histogramas
Conceitos de Sinais e Sistemas Mestrado em Ciências da Fala e da Audição António Teixeira.
Capítulo III – Processamento de Imagem
Introdução ao Processamento Digital de Imagens
1AT 2006 Conceitos de Sinais e Sistemas Mestrado em Ciências da Fala e da Audição Edição 2006/7 António Teixeira.
April 05 Prof. Ismael H. F. Santos - 1 Computação Gráfica Módulo I – Imagem UniverCidade - Prof. Ismael H F Santos.
Digital Image Processing, 2nd ed. © 2002 R. C. Gonzalez & R. E. Woods 4. Image Enhancement in the Spatial Domain 4. Image Enhancement.
Guido Stolfi 1/155 Digitalização de Vídeo e Áudio Guido Stolfi Mackenzie 4 / 2008.
Digital Image Processing, 2nd ed. © 2002 R. C. Gonzalez & R. E. Woods 3 Representação da Imagem Digital O espectro eletromagnético.
Processamento de Sinais
Análise Digital de Imagens
Processamento de Imagens e Computação Gráfica
Filtragem de Imagens CONCI, A. AZEVEDO, E. e LETA, F
Técnicas Algorítmicas em Processamento de Imagens
1 Processamento de Sinais CDESC Rodolfo Araujo Victor RH/UP/ECTEP Aula 1 03/11/2010.
Transcrição da apresentação:

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

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

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 1545. A câmera fotográfica, como conhecemos hoje, foi inventada pelo Mandé Daguerre (1789-1851) e seus principios podem ser ilustrados com artefatos bem simples como a câmera tipo “pinhole”.

Câmera Obscura -- efeito natural Bellinzona no canton Ticino Switzerland.

Primeiras câmaras fotográficas Luis-Jacques-Mandé Daguerre (1787-1851) 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 1545. A câmera fotográfica, como conhecemos hoje, foi inventada pelo Mandé Daguerre (1789-1851) e seus principios podem ser ilustrados com artefatos bem simples como a câmera tipo “pinhole”.

Câmeras digitais

Captura da cor

Sensores

Emissão da radiância num plano Monitores

Primeira imagem colorida (início do sec. XX) James Clerk Maxwell (1831-1879) Scottish physicist.

RBG Images

Multi-fontes pontuais OLED Nexus_one_screen_microscope.jpg (wiki)

Impressão

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

Imagem colorida u v G R B

Imagem coloridas como 3 canais de cor B B(u,v) R(u,v) G(u,v) v v v u u u = + +

Amostragem, quantização e codificação Imagem Digital Amostragem, quantização e codificação

Digitalização de Imagens Discretização espacial (amostragem)

quantizada e codificada Processos básicos 64x54 Imagem amostrada amostragem Imagem de tons contínuos 64x54 - 16 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

Áudio (Sinal 1D)

Amostragem, quantização e codificação de f(x) partição do eixo x x

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)

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

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

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

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

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

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

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

Imagem Digital 08/04/2017 Marcelo Gattass

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

Imagem Digital 08/04/2017 Sinal com ruído Marcelo Gattass

Imagem Digital 08/04/2017 Suavização f h Marcelo Gattass

Imagem Digital Filtragem Gaussiana 08/04/2017 Marcelo Gattass

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,...

Histogramas de Imagem Colorida

Propriedades básicas de uma Imagem Digital

Convolução

Convolution Pictorially f(x) h(x)

Convolution h(t-x) f(t) x

Convolution Consider the function (box filter):

Convolution This function windows our function f(x). f(t)

Convolution This function windows our function f(x). f(t)

Convolution This function windows our function f(x). f(t)

Convolution This function windows our function f(x). f(t)

Convolution This function windows our function f(x). f(t)

Convolution This function windows our function f(x). f(t)

Convolution This function windows our function f(x). f(t)

Convolution This function windows our function f(x). f(t)

Convolution This function windows our function f(x). f(t)

Convolution This function windows our function f(x). f(t)

Convolution This function windows our function f(x). f(t)

Convolution This function windows our function f(x). f(t)

Convolution This function windows our function f(x). f(t)

Convolution This function windows our function f(x). f(t)

Convolution This function windows our function f(x). f(t)

Convolution This function windows our function f(x). f(t)

Convolution This function windows our function f(x). f(t)

Convolution This function windows our function f(x). f(t)

Convolution This function windows our function f(x). f(t)

Convolution This function windows our function f(x). f(t)

Convolution This function windows our function f(x). f(t)

Convolution This function windows our function f(x). f(t)

Convolution This particular convolution smooths out some of the high frequencies in f(x). f(t) f(x)g(x)

Ilustação da convolução

Ilustração da convolução

O problema de amostragem Alias

Freqüência de Amostragem f(x) x f(x) x x f(x)

Sinal sub-amostrado

Estudo de sinais digitais Transformadas para o domínio da freqüencia Teorema de Nyquist e Alias

revisão Harmônicos T A t+ -A A

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)

Integrais de senos e cosenos em [-,] revisão Integrais de senos e cosenos em [-,] Funções ortogonais

Série de Fourier f(t) t T Jean Baptiste Joseph Fourier (1768-1830) T Jean Baptiste Joseph Fourier (1768-1830) Paper de 1807 para o Institut de France: Joseph Louis Lagrange (1736-1813), and Pierre Simon de Laplace (1749-1827).

Exemplo: Série de harmônicos

Série de Fourier: cálculo de a0 f(t) t T

Série de Fourier: an e bn f(t) t T ...

Resumindo f(t) t T

Domínios f(t) tempo ou espaço t T ak w bk freqüencia w

Coeficientes de funções pares e ímpares f-ímpar ak= 0 f-par bk= 0

Periodicidade da Série de Fourier f(t) t T t f(t) T

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

Operação básicas com complexos revisão Operação básicas com complexos

revisão Derivada de eit C.Q.D.

Outras propriedades úteis revisão i -1 1

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

Outras propriedades úteis (2) revisão 1 -1 i -i o seno também corresponde a dois harmônicos: w e -w

Outras propriedades úteis (3) revisão

Amplitude e fase de complexos revisão Amplitude e fase de complexos Dado um valor: Amplitude  -A A Fase

Série de Fourier com números complexos

Escrevendo em complexos

Serie de Fourier de Sinais Discretos

Sinal discreto r t 1 2 3 4 5 6 N-1

1 2 3 4 5 N t . . .

onde: onde:

onde: onde:

Inversa da inversa onde: Qual o valor?

Se s=k Se s ≠ k é a soma de uma PG de N termos e razão q. Mas

onde: Qual o valor? C.Q.D.

real imaginário  1 N=5 N=3 N=6 N=4

Transformada Discreta T - não é o período do sinal!

Transformada Discreta de Fourier todas as feqüências computadas são multiplas destas

Outro exemplo f3 ( t ) := 10 cos ( 2 p t ) + 6 sin ( 10 p t ) + .8 cos 40 p t )

Transformada

Eixo de freqüência

Tutorial com o Excel http://www.me.psu.edu/me82/Learning/FFT/FFT.html

Discrete Cosine Transformation (DCT)

o cosseno pode substituir o seno

Resumindo f(t) t T

1 2 3 4 5 N t . . .

Aula 2

Serie de Fourier de Sinais Discretos

Sinal discreto r t 1 2 3 4 5 6 N-1

onde: onde:

Transformada

Transformada de Fourier

Exemplo 1: Função caixa (box) box(x) a x b

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

Distribuição normal: Gaussiana

Exemplo 2: Gaussiana || F(w) || f(x) w x

Transformada da Gaussiana

Exemplo 3: Delta de Dirac f(x) 1/b -b/2 b/2 x

Delta de Dirac de Gaussianas

Transformada do Delta de Dirac f(x) (x) x || F(w) || w 1

Transformada do cosseno x

Exemplo 4: Cosseno || F(w) || x w

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

Pares importantes

Propriedades da transformada convolução

Filtragem com Transformada de Fourier FT FT FT-1 FT X

Amostragem e Reconstrução Observando os domínio do espaço e das freqüências

Sinal original domínio do espaço domínio das freqüências

Sinal discretizado

Amostragem domínio do espaço domínio das freqüências produto convolução

Sinal discretizado domínio do espaço domínio das freqüências

Reconstrução domínio do espaço domínio das freqüências convolução produto

Retorno ao sinal original domínio do espaço domínio das freqüências

Sinal original com mais altas freqüências domínio do espaço domínio das freqüências

Mesma taxa de amostragem domínio do espaço domínio das freqüências produto convolução

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!

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.

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.

Alias                                                                                                                                                            Texture errors

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

Filtragem Gaussiana

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

Tipos de Filtros F G H Passa baixa  = Passa alta  = Passa banda  =

Imagem filtrada com um filtro passa baixa

Imagem filtrada com um filtro passa alta

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.

Mascara ou Filtro ou:

Discretização da Gaussiana 1D 0.3 0.2 0.1 -4 -3 -2 -1 1 2 3 4

Discretização da Gaussiana 2D

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

Transformada normalizada de Fourier

Transformada normalizada de Fourier: separação

Transformada normalizada de Fourier: Matriz H

Problemas com a Transformada de Fourier

Como tornar a TF invariante a rotação e escala?

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

Correção gama Ajustes de contraste e iluminação

Correção gama

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

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)

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

Equalização do histograma

Tons de cinza e negativo Lx,y = 0.299Rx,y + 0.587Gx,y + 0.114Bx,y tons de cinza Lx,y = 255 - Lx,y

Outros exemplos com o PaintShopProtm

Quantização de cores Quantização de 24 para 8 bits

A qualidade depende da imagem

Corte mediano

Corte mediano

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

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?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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.

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

Compressão do jpeg

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

Equations for JPEG DCT Forward DCT: Inverse DCT:

Visualization of Basis Functions Increasing frequency

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];

Outra ordem no plano

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);

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 */

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

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

Formato PPM P6 # Created by Paint Shop Pro 358 539 255 exemplo P6 # Created by Paint Shop Pro 358 539 255 =?:?A<AC>CE@EFAFGBGHCGHCGHB . . .

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;

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; }

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);

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

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

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;

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;

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;

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.

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)

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

Transformações e Quatérnios 08/04/2017 Marcelo Gattass

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

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

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

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

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

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

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

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

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

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

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

Decomposição Singular de Matrizes Transformações e Quatérnios 08/04/2017 Decomposição Singular de Matrizes rotações diagonal Marcelo Gattass

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

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

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

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

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

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

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

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

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

Deformação sem paralelismo w yh xh w w=1 x y w=1 y x yh xh

Transformações e Quatérnios 08/04/2017 Matriz da Homografia Marcelo Gattass

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

Transformações e Quatérnios 08/04/2017 [P] : Projetiva Marcelo Gattass

[N] : Paralelograma para quadrado unitário Transformações e Quatérnios 08/04/2017 [N] : Paralelograma para quadrado unitário Marcelo Gattass

Fundamentals of Texture Mapping and Image Warping “Explained” A revisit of Paul Heckbert’s M.Sc. Thesis

Um exemplo 1D Textura discreta Textuta contínua Sinal de entrada discreto

Deformação da textura (warping) Textuta contínua Textuta contínua deformada

Limitando a freqüência

Filtro de re-amostragem

Reconstrução, warping, filtragem e amostragem

Textura em imagem

Textura em imagem

Filtro de re-amostragem no espaço de destino (espaço da imagem) destination space integral

Filtro de re-amostragem no espaço de origem (espaço da textura)

Filtro de re-amostragem no espaço de origem (espaço da textura)

Filtro de re-amostragem no espaço de origem (espaço da textura) texture space integral

Mapeamentos lineares afins

Elliptical Gaussian Resampling

Gaussiana

Gaussiana

Circulos e Elipses

Warping de domínios de Gaussianas

Filtro Gaussiano de re-amostragem no espaço de origem (espaço da textura)

Exemplo de reconstrução com Gaussiana

Implementação do Filtro Gaussiano

Magnificação e mimificação

Regiões que mapeiam num quadrado ou círculo

Nosso problema Screen space Texture space

Como tratar o caso geral

FIM

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

(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)

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: http://www.phy.ntnu.edu.tw/java/Lens/lens_e.html (by Fu-Kwun Hwang )

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 http://en.wikipedia.org/wiki/Depth_of_field

Lentes reais

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 1545. A câmera fotográfica, como conhecemos hoje, foi inventada pelo Mandé Daguerre (1789-1851) e seus principios podem ser ilustrados com artefatos bem simples como a câmera tipo “pinhole”.

Sensor Fujifilm

O que é registrado nos sensores (CCD, CMOS...) yim sx sy 3 2 1 1 2 3 4 5 xim