Post on 20-Dec-2018
1
EA978 – 2s2008 - Ting
Muitas imagens destas transparências foram obtidas do site:
http://www.cs.princeton.edu/courses/archive/fall99/cs426/lectures/dither/
EA978 – 2s2008 - Ting
Quantização
RS
GS
BS
AS
ZS
380nm 750nm
Quantidade de cores limitada pelo número de bits associado a cada pixel!
2
EA978 – 2s2008 - Ting
Quantização
24 bits = Paleta de 224 cores 4 bits = Paleta de 16 cores
EA978 – 2s2008 - Ting
Quantização
256 níveis4 níveis2 níveis
3
EA978 – 2s2008 - Ting
Procedimento
• Analisar as amostras de cores na imagem
• Definir um conjunto de níveis de quantização
• Associar cada amostra a um nível
• Gerar nova imagem Análise e definição
Correspondência
EA978 – 2s2008 - Ting
Cirtério de Fidelidade
Erro médio quadrático
eRMS = raiz(1/MN ∑ ∑ [ê(x,y) – e(x,y)]2)
Imagem Discreta e(x,y) → Imagem Digital ê(x,y)
X=0 y=0
N-1M-1
4
EA978 – 2s2008 - Ting
QuantizaçãoSubdivisão Uniforme
Função de transferência
entrada
saíd
a
(2
0001
1011
00 01 10 11
EA978 – 2s2008 - Ting
Níveis de QuantizaçãoSubdivisão Uniforme
Problema: Nem todas as cores/os níveis de cinza aparecem na imagem!
1 bit
2 bits3 bits4 bits5 bits6 bits7 bits8 bits
5
Quantização
Contornos falsos!!!
EA978 – 2s2008 - Ting
Análise Estatística
Quantização conforme a quantidade de ocorrências de cada intensidade.
Qtd
e de
pix
els
Nível de Intensidade
Histograma
6
EA978 – 2s2008 - Ting
HistogramaDistribuição de freqüências de intensidade
EA978 – 2s2008 - Ting
HistogramaCaraterização das imagens
8
HistogramaSubdivisão Uniforme
0 128 255
Função de transferência
entrada
saíd
a
0
1
EA978 – 2s2008 - Ting
Algoritmo de Populosidade
Para minimizareRMS = raiz(1/MN ∑ ∑ [ê(x,y) – e(x,y)]2)
Histograma: Distribuição de freqüência de amostras
Níveis de quantização: As amostras de cor/intensidade de maior ocorrência
9
EA978 – 2s2008 - Ting
Amostras vermelhas desapareceram na imagem quantizada …
Algoritmo de Populosidade
EA978 – 2s2008 - Ting
Algoritmo de Corte MedianoCélulas de Quantização
Minimizar:
Q = ∫ p(c) |c – qi|+ ∝
- ∝
c: intensidadep(c): frequência de ocorrência de cqi: nível de quantização
10
EA978 – 2s2008 - Ting
Algoritmo de Corte MedianoExemplo
EA978 – 2s2008 - Ting
Algoritmo de Corte Mediano
Ao invés da solução ótima …
11
EA978 – 2s2008 - Ting
Algoritmo de Corte Mediano
... Uma Aproximação:Escolher os níveis de quantização de forma que cada um seja utilizado pela
mesma quantidade de pixels.
Mediana: medida estatística que permite equalizar um histograma. Ela divide
o conjunto de dados em duas partes com igual número de elementos.
Histograma Equalizado: distribuição uniforme das intensidades
Intensidade
Qtd
e de
pix
els
EA978 – 2s2008 - Ting
Algoritmo de Corte MedianoA mediana ao longo do “lado” maior subdivide o espaço de amostras em dois
subespaços
12
EA978 – 2s2008 - Ting
Algoritmo de Corte Mediano
2 bits
A mediana ao longo do “lado” maior de cada subespaço subdivide o espaço original em 4 subespaços
EA978 – 2s2008 - Ting
Algoritmo de Corte MedianoSe houver mais um bit, pode-se subdividir recursivamente
13
EA978 – 2s2008 - Ting
Algoritmo de Corte Mediano
3 bits
E obter 8 subespaços, ou 8 células de quantização
O nível de quantização pode ser o centróide de cada célula.
Quantização_cor(Imagen, n){
Posicionar a cor em cada pixel no espaço RGB;
B = {espaço RGB};Enquanto (n-- > 0) {
L = Mais_populosa(B);Dividir L em L1 e L2, no eixo de maior variação;Substituir L por L1 e L2 em B;}
Para todas as células em B façaselecionar o nível de quantização (p.ex,centróide);
Para cada pixel na imagem façasubstituir a cor pelo nível de quantização da célula;
}
Algoritmo de Corte Mediano
14
Algoritmo de Corte MedianoCritérios de Escolha
• Vários critérios podem ser utilizados para escolha da célula mais populosa do espaço:– Quantidade de ocorrências de cores na célula;– Quantidade de cores distintas;– Dimensões da célula.
EA978 – 2s2008 - Ting
EA978 – 2s2008 - Ting
Algoritmo de Corte MedianoNíveis de Quantização
15
Algoritmo de Corte MedianoExemplo
EA978 – 2s2008 - Ting
Quantização
256 níveis 4 níveis 2 níveis
Redução de Níveis Contornos Falsos!
16
16 níveis 8 níveis
4 níveis 2 níveis
QuantizaçãoExemplo
42 42 86 42 42 133 82 82
112 123 211 153 153 123 112 112
145 211 153 153 211 153 145 189
178 211 211 211 145 211 211 153
178 145 211 211 153 153 211 133
112 91 91 82 189 189 123 180
133 42 112 89 78 42 42 123
145 211 211 211 145 211 153 123
1. Determinar 4 limiares/níveis de quantização
Quantize em 5 níveis
EA978 – 2s2008 - Ting
17
QuantizaçãoExemplo
42 42 86 42 42 133 82 82
112 123 211 153 153 123 112 112
145 211 153 153 211 153 145 189
178 211 211 211 145 211 211 153
178 145 211 211 153 153 211 133
112 91 91 82 189 189 123 180
133 42 112 89 78 42 42 123
145 211 211 211 145 211 153 123
1. Determinar 4 limiares/5 níveisa. Subdivisão uniforme
0 - 5051 - 101102 - 152152 – 202203 - 255
b. Algoritmo de populosidade211, 153, 42, 145, 112
c. Algoritmo de corte medianoMedianas:
89, 123, 145, 189
Quantize em 5 níveis
42 7
78 1
82 3
86 1
89 1
91 2
112 5
123 5
133 3
145 6
153 9
178 2
180 1
189 3
211 15
Ocorrências
EA978 – 2s2008 - Ting
QuantizaçãoExemplo
42 42 86 42 42 133 82 82
112 123 211 153 153 123 112 112
145 211 153 153 211 153 145 189
178 211 211 211 145 211 211 153
178 145 211 211 153 153 211 63
112 91 91 82 189 189 124 180
68 42 112 89 78 42 42 124
145 211 211 211 145 211 153 124
1. Determinar 4 limiares/5 níveisa. Subdivisão uniformeb. Algoritmo de populosidadec. Algoritmo de corte mediano
2. Determinar o nível de quantização
51
102
152
203
75.4
108.7
139
211
175
EA978 – 2s2008 - Ting
18
QuantizaçãoExemplo
42 42 86 42 42 133 82 82
112 123 211 153 153 123 112 112
145 211 153 153 211 153 145 189
178 211 211 211 145 211 211 153
178 145 211 211 153 153 211 63
112 91 91 82 189 189 124 180
68 42 112 89 78 42 42 124
145 211 211 211 145 211 153 124
1. Determinar 4 limiares/5 níveisa. Subdivisão uniformeb. Algoritmo de populosidadec. Algoritmo de corte mediano
2. Determinar o nível de quantização3. Aplicar a função de transferência sobre a
imagema. 0 - 50 → 0; 51 – 101 → 51
102 – 151 → 102; 152 – 202 → 152203 – 255 → 203
b. 0 – 77 → 42; 78 – 128 → 112129 – 149 → 145; 150 – 182 → 153183 – 255 → 211
c. 42 – 89 → 75.4; 90 – 123 → 108.7124 – 145 → 139; 146 – 189 → 175190 – 255 → 211EA978 – 2s2008 - Ting
QuantizaçãoExemplo
0 0 51 0 0 102 51 51
102 102 211 152 152 102 102 102
102 211 152 152 211 152 102 152
152 211 211 211 102 211 211 152
152 102 211 211 152 152 211 51
102 51 51 51 152 152 102 152
51 0 102 102 51 0 0 102
102 211 211 211 102 211 152 102
75 75 75 75 75 139 75 75
109 109 211 175 175 109 109 109
139 211 175 175 211 175 139 175
175 211 211 211 139 211 211 175
175 139 211 211 175 175 211 75
109 109 109 75 175 175 139 175
75 75 109 75 75 75 75 139
139 211 211 211 139 211 175 139
Subdivisão Uniforme Corte MedianoEA978 – 2s2008 - Ting
19
Como “emular” mais níveis de intensidade com um número reduzido de bits?
EA978 – 2s2008 - Ting
Meio-Tom e Dithering
21
Meio-Tom Clássico
(1999)
EA978 – 2s2008 - Ting
Meio-Tom DigitalAglomerado de Pixels
Resolução espacial x Resolução de intensidades
22
EA978 – 2s2008 - Ting
Meio-Tom Digital
Aglomerado de Pixels
Padrões indesejáveis!!!
EA978 – 2s2008 - Ting
Meio-Tom DigitalDispersão de pixels: Máscaras de Padrão
(Patterning)
23
Meio-Tom DigitalMáscaras de Padrão
Máscaras de Padrão
DitheringAumento da resolução de intensidades sem sacrificar a resolução
espacial
24
Dithering
Dithering
Nível de Intensidade 0
Nível de Intensidade 1
Nível de Intensidade 3
Nível de Intensidade 2
25
EA978 – 2s2008 - Ting
DitheringAlgoritmo
Para cada linha yPara cada coluna x
determinar a posição na matriz de ditheri = x mod n; j = y mod n;
Se (I(x,y) <= I(Dn(i,j))) entãoP(x,y) = Preto;
senãoP(x,y) = Branco
3 10 2D2 =
DitheringExemplo
26
DitheringExemplo
42 42 86 42 42 133 82 82
112 123 211 153 153 123 112 112
145 211 153 153 211 153 145 189
178 211 211 211 145 211 211 153
178 145 211 211 153 153 211 133
112 91 91 82 189 189 123 180
133 42 112 89 78 42 42 123
145 211 211 211 145 211 153 123
1. Determinar 4 limiares
Quantize em 5 níveis com 1 bit
EA978 – 2s2008 - Ting
DitheringExemplo
42 42 86 42 42 133 82 82
112 123 211 153 153 123 112 112
145 211 153 153 211 153 145 189
178 211 211 211 145 211 211 153
178 145 211 211 153 153 211 133
112 91 91 82 189 189 123 180
133 42 112 89 78 42 42 123
145 211 211 211 145 211 153 123
1. Determinar 4 limiaresa. Subdivisão uniforme
0 - 5051 - 101102 - 152152 – 202203 - 255
b. Algoritmo de corte mediano89, 123, 145, 189
Quantize em 5 níveis com 1 bit
42 7
78 1
82 3
86 1
89 1
91 2
112 5
123 5
133 3
145 6
153 9
178 2
180 1
189 3
211 15
Ocorrências
EA978 – 2s2008 - Ting
27
DitheringExemplo
42 42 86 42 42 133 82 82
112 123 211 153 153 123 112 112
145 211 153 153 211 153 145 189
178 211 211 211 145 211 211 153
178 145 211 211 153 153 211 63
112 91 91 82 189 189 124 180
68 42 112 89 78 42 42 124
145 211 211 211 145 211 153 124
1. Determinar 4 limiaresa. Subdivisão uniforme
0 - 5051 - 101102 - 152152 – 202203 - 255
b. Algoritmo de corte mediano89, 123, 145, 189
2. Construir máscara de dithera. b.
3. Varrer a imagem
203102
51 152
189123
89 145
EA978 – 2s2008 - Ting
DitheringExemplo
42 42 86 42 42 133 82 82
112 123 211 153 153 123 112 112
145 211 153 153 211 153 145 189
178 211 211 211 145 211 211 153
178 145 211 211 153 153 211 63
112 91 91 82 189 189 124 180
68 42 112 89 78 42 42 124
145 211 211 211 145 211 153 124
1. Determinar 4 limiaresa. Subdivisão uniforme
0 - 5051 - 101102 - 152152 – 202203 - 255
b. Algoritmo de corte mediano89, 123, 145, 189
2. Construir máscara de dithera. b.
3. Varrer a imagem
203102
51 152
189123
89 145
203102
51 152
0 0
1 0
EA978 – 2s2008 - Ting
28
DitheringExemplo
42 42 86 42 42 133 82 82
112 123 211 153 153 123 112 112
145 211 153 153 211 153 145 189
178 211 211 211 145 211 211 153
178 145 211 211 153 153 211 63
112 91 91 82 189 189 124 180
68 42 112 89 78 42 42 124
145 211 211 211 145 211 153 124
211 145
42 153
0 0 0 0 0 0 0 0
1 0 1 0 1 0 1 0
42 42 86 42 42 133 82 82
112 123 211 153 153 123 112 112
145 211 153 153 211 153 145 189
178 211 211 211 145 211 211 153
178 145 211 211 153 153 211 63
112 91 91 82 189 189 124 180
68 42 112 89 78 42 42 124
145 211 211 211 145 211 153 124
189123
89 145
0 0 0 0 0 1 0 0
1 0 1 1 1 0 1 0
0 1 0 1 1 1 0 1
1 1 1 1 1 1 1 1
0 1 1 1 0 1 1 0
1 0 1 0 1 1 1 1
0 0 0 0 0 0 0 1
1 1 1 1 1 1 1 01 1 1 1 1 1 1 0
0 0 0 0 0 0 0 0
1 0 1 0 1 1 1 1
0 0 0 1 0 1 0 1
1 1 1 1 1 1 1 0
0 1 0 1 0 1 0 1
EA978 – 2s2008 - Ting
DitheringDifusão de Erro
difundir erros entre pixels vizinhos
30
EA978 – 2s2008 - Ting
Meio-Tom e Dithering
• Aproximação por meio-tom digital– pixels são agrupado, emulando meio-tom analógio– sacrifica a resolução espacial
• Dithering ordenado– pixels são dispersos – minimiza artefatos visuais em regiões de
luminância constante– mantém a mesma resolução espacial
• Dithering por difusão de erro– minimiza o erro de quantização através da
distribuição de erros
Artifícios para redução de erros e/ou aumento das intensidades
Exemplos
Original
Dithering
Floyd-Steinberg
Patterning