Imagem Digital
•
•
•
•
•
•
Paradigma dos 4 Universos
Imagem no Universo Matemático
Imagem no Universo de Representação (Universo Discreto)
• Amostragem
• Quantização
Imagem no Universo de Codificação:
• Palette de cores
• RGBRGB
• RRGGBB
• Compressão
• formato PPM
• formato BMP
• Biblioteca IM
Processamento de Imagens
• Ampliar e Reduzir
• Realçar e Borrar
• Combinação de Imagens
• Mistura
• Transparência
• Adição e Subtração
• Morphing
Outros Assuntos
• Dithering
• Sprites
• Animações (?)
Paradigma dos 4 Universos
Exemplo:
VOZ HUMANA
Universo
Físico
Universo
Matemático
Universo de
Representação
Discretização
(Amostragem)
8
Universo de
Implementação
9
8
7
8
9
7
8
9
9
7
8
Representação
(Vetor)
8 9 8 7 8 9 7 8 9 9 7 8
Paradigma dos 4 Universos
COR
IMAGEM
Universo
Físico
Cores no
Universo Físico
Imagens no
Universo Físico
Universo
Matemático
Modelos
Matemáticos de
Cor (Espaço)
Funções
no Espaço de Cor
Universo de
Representação
Representação
de Cor
Amostragem e
Quantização
Universo de
Implementação
Especificação
de Cor
Codificação e
Formatos
Imagem bitmap
x
Imagem vetorial
Imagens como Funções
• Uma linha de uma imagem PB: Domínio 1D
• Uma imagem PB:
Domínio 2D
• Uma imagem Colorida: Domínio 3D (?)
Amostragem
• Discretização espacial
• Resolução (XxY pixels)
Quantização
• Discretização no espaço de cores (redução das cores usadas)
• Critérios para escolha das cores (exemplos em 256 cores):
• Quantização Uniforme (256 cores)
• Algoritmo de Populosidade (16 cores)
• Quantização por Aglumeração (16 cores)
Imagem Original (24 bits)
Digitalização de Imagens
quantização
64x53 – 256 cores
315x260 – 256 cores
15
15
15
15
15
15
15
15
10
12
13
5
15
15
15
15
10
09
11
15
15
15
15
13
12
10
15
15
15
15
08
06
12
15
15
15
15
15
15
15
15
15
amostragem
64x53 - 16 cores
codificação
Codificação
• Imagem no Universo de Codificação:
• Palette de cores
• RGBRGB
• RRGGBB
• Compressão
• formato PPM
• formato BMP
• Biblioteca IM
Obs: Imagens em formato raster (não vetorias)
Palette de Cores
• Geralmente com 256, 16 ou 4 cores
Red
Green
Blue
255
0
0
180
148
149
132
123
125
Os pixels da imagem
fazem referência aos
índices da Palette
202
99
143
15
15
15
15
15
15
15
198
71
163
88
43
45
15
10
12
13
5
15
15
8
8
175
15
15
10
09
11
15
15
105
109
105
15
15
13
12
10
15
15
124
124
116
15
15
08
06
12
15
15
179
173
159
214
193
165
15
15
15
15
15
15
15
231
214
198
247
231
222
198
148
132
65
36
31
206
206
206
Palette
RRGGBB
Plano de Cores
Azul
Verde
Verm.
06
Informação é uma
componente da
cor
06
07
08
09
...
00
01
02
03
04
05
06
Organização dos pixels de
uma imagem por planos
de cores
RRGGBB
• Declaração em C das matrizes R, G e B de uma imagem
colorida com resolução 200x300?
• Qual o tipo a ser usado?
• int, float, char, double ou void ?
• short ou long ?
• unsigned ?
unsigned char R[60000], G[60000], B[60000];
• Atenção! Normalmente são ponteiros cujo espaço são
alocados dinamicamente (malloc).
RGBRGB
0
0
1
2
3
...
h-1
1
2
00 01 02 03 04 05 06 07 08
...
w-1
09 10 11
12 13 14
15 16 17 18 ...
y
Pixel (x,y) de uma imagem WxH
offset=3*(w*y+x);
red
= rgb_vector[offset];
green = rgb_vector[offset+1];
blue = rgb_vector[offset+2];
x
Compressão de imagens
Compressão de
Imagens
Sem Perda


Preserva exatamente o
conteúdo da imagem
Taxas de compressão
3:1
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
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, ...
Imagem Comprimida
Transporte e/ou
Armazenamento
32, 45, 57,
68, 23, 100,
98, ...
Imagem Comprimida
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.
Codificação de Huffman
s
p
a2
0.4
a6
0.3
a1
0.1
a4
0.1
a3 0.06
a5 0.04
0.4
0.3
0.1
0.1
0.1
s
probabilidade
a2
0.4 1
0.4 1
a6
0.3 00
0.3 00
a1
0.1 011
0.1 011
a4
0.1 0100
0.1 0100
a3 0.06 01010
0.1 0101
a5 0.04 01011
0.4
0.3
0.2
0.1
0.4
0.3
0.3
0.4 1
0.3 00
0.2 010
0.1 011
0.6
0.4
0.4 1
0.3 00
0.3 01
0.6
0.4
0
1
Redundância de Codificação
r
p(r)
Code 1
l(r)
l(r)p(r)
Code 2
l(r)
l(r)p(r)
0
1/7
2/7
3/7
4/7
5/7
6/7
1
0.19
0.25
0.21
0.16
0.08
0.06
0.03
0.02
000
001
010
011
100
101
110
111
3
3
3
3
3
3
3
3
0.57
0.75
0.63
0.48
0.24
0.18
0.09
0.06
11
01
10
001
0001
00001
000001
000000
2
2
2
3
4
5
6
6
0.38
0.50
0.42
0.48
0.32
0.30
0.18
0.12
Lavg=
2.70
1.00
Lavg=
3.00
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
01 10 11
001
 -1
Lavg   l rk prk 
k 0
0001
00001
000000 000001
Download

CG1 04 Imagem