21
Trabalho de Cores Correção de imagens de quadros do Portinari

Trabalho de Cores Correção de imagens de quadros do Portinari

Embed Size (px)

Citation preview

Page 1: Trabalho de Cores Correção de imagens de quadros do Portinari

Trabalho de Cores

Correção de imagens de quadros do Portinari

Page 2: Trabalho de Cores Correção de imagens de quadros do Portinari

Descrição do problema

• Os quadros do Projeto Portinari foram fotografados e digitalizados

sob condições desconhecidas e a única referência confiável sobre as

cores das imagens é a presença de um padrão de cores Kodak Q-14

em grande parte das imagens digitalizadas.

• O Padrão Q-14 possui as seguintes amostras de cor:

– 19 tons de cinza

– 16 tons coloridos

• Do padrão de cores Q-14 podemos obter:

– Os valores RGB de cada uma das amostras de cor por medição direta

nas imagens

– Os valores colorimétricos XYZ ou Lab a partir de medidas espectrais

diretas de outros padrões Kodak Q-14

Page 3: Trabalho de Cores Correção de imagens de quadros do Portinari

Descrição do problema

• Dada uma amostra de n cores na forma:

• Descobrir os valores XYZ ou Lab correspondentes a todos os pixels da

imagem

• Converter os valores XYZ ou Lab de todos os pixels para valores RGB

em algum espaço de cor padrão; como o sRGB, ProPhotoRGB ou

AdobeRGB; para gerar uma imagem “bem comportada” para que

possa ser editada ou impressa adequadamente

ni

ZYXbgr iiiAssociadoiii

1

),,(),,(

Page 4: Trabalho de Cores Correção de imagens de quadros do Portinari

Mapeamento de RGB em XYZ/Lab

• As operações de mapeamento entre os valores RGB em

XYZ/Lab seguem a arquitetura do ICC (International Color

Consortium) [1] usada nos perfis de cor

• A sequência de operações é:

1. Aplicação de uma “Tone Response Curve” em cada um dos

canais R, G e B isoladamente

2. Transformação do RGB resultante da etapa anterior em Lab

através de uma matriz 3x3

– A matriz 3x3 converte para XYZ e depois as equações de XYZ para

Lab são usadas

3. Correção dos valores Lab através de uma função discreta de

interpolação Lab -> Lab

Page 5: Trabalho de Cores Correção de imagens de quadros do Portinari

Tone Response Curve

• O objetivo da Tone Reponse Curve é acertar mapemanto de cada canal R, G e B nos valores de luminância corretos

• Isso é feito através de 3 splines cúbicas que corrigem os valores R, G e B para que fiquem proporcionais as coordenadas Y dos valores XYZ

• Essas 3 splines são construídas a partir dos 19 tons de cinza do padrão Q-14

• As splines são:

),,(' 11 rYYrrspliner nn

),,(' 11 gYYggsplineg nn

),,(' 11 bYYbbsplineb nn

Page 6: Trabalho de Cores Correção de imagens de quadros do Portinari

Tone Response Curve

• Os valores Y das splines são suavisados por um filtro de Savitzky-Golay [2] para obtenção de transições de tons mais suaves nas fotografias

• Após a aplicação das “Tone Response Curves”, os tons neutros das imagens estão mapeados corretamente. Isto é, os tons de cinza da imagem tem a propriedade:

• O mapeamento correto dos tons de cinza é a correção mais importante a ser feita de uma imagem e usualmente é a primeira etapa em muitos workflows de processamento de imagens

''' bgr

Page 7: Trabalho de Cores Correção de imagens de quadros do Portinari

Mapeamento linear

• O mapeamento linear obtém uma transformação linear entre os valores r’,g’ e b’ e os valores XYZ

• Visando preservar o balanceamento dos tons de cinza obtido no “Tone Response Curve”, foi empregado o método “White-Point preserving Least Squares Regression” [3] que faz um mapeamento linear dos valores RGB em XYZ que mantém os tons de cinza neutros

• Este método é uma variação da regressão de mínimos quadrados que atende a seguinte restrição:

• Onde Xw, Yw, Zw são as coordenadas do white-point da imagem

)1,1,1(),,( www ZYX

Page 8: Trabalho de Cores Correção de imagens de quadros do Portinari

Mapeamento linear

• O mapeamento linear é construído da seguinte forma:

• Os valores Lab de referência são obtidos pelas equações normais de conversão de XYZ de referência para Lab [4]:

'

'

'

b

g

r

M

Z

Y

X

WPPLS

RGB

RGB

RGB

)(_ RGBLabXYZ XYZfrgbLab

Page 9: Trabalho de Cores Correção de imagens de quadros do Portinari

Interpolação discreta

• A interpolação discreta é feita a partir de funções radiais [5], que

possuem a seguinte forma geral:

• Onde ||x|| é a norma euclidiana de x, xi são os valores discretos e

conhecidos de x e um exemplo de função radial é:

• Onde α é uma constante

)()(1

n

iii xxcxf

22)( xx

ki Rxx ,

Page 10: Trabalho de Cores Correção de imagens de quadros do Portinari

Interpolação discreta

• Como temos que fazer um mapeamento do R3 no R3, na forma:

• Precisamos de 3 funções radiais:

entradaentrada baLbaL ),,(),,(

)__(1

n

iipixelicorrigido rgblabrgbLabclL

)__(1

n

iipixelicorrigido rgblabrgblabcaa

)__(1

n

iipixelicorrigido rgblabrgblabcbb

Page 11: Trabalho de Cores Correção de imagens de quadros do Portinari

Função radial

• Os coeficientes ci de cada uma das 3 interpolações são obtidos da

seguinte forma:

• Seja Vc um vetor formado pelos coeficientes ci e os vetores VL Va Vb

formado pelas coordenadas L, a e b dos valores Lab de referência

do RGB do target:

n

cbcacl

c

c

V 1

,,

n

L

refL

refL

V

_

_ 1

n

a

refa

refa

V

_

_ 1

n

b

refb

refb

V

_

_ 1

)_,_,_(_ iiii refarefarefLrefLab

Page 12: Trabalho de Cores Correção de imagens de quadros do Portinari

Função Radial

• Seja MR a matriz obtida pela aplicação da função radial nas distâncias euclidianas entre todas as n coordenadas Lab obtidas a partir dos valores RGB do padrão Q-14:

)()()(

)()(

)()()(

21

2212

12111

nnnn

n

R

lablablablablablab

lablablablab

lablablablablablab

M

Page 13: Trabalho de Cores Correção de imagens de quadros do Portinari

Função Radial

• Podemos dizer que:

• Com isso:

cbcaclRbaL VMV ,,,,

baLRcbcacl VMV ,,1

,,

Page 14: Trabalho de Cores Correção de imagens de quadros do Portinari

Geração da imagem RGB corrigida

• A partir dos valores Lab corrigidos, os valores XYZ corrigidos são obtidos:

• A partir dos valores XYZ corrigidos, os valores RGB do espaço Prophoto

são gerados, segundo a sua especificação [6] (anteriormente conhecido

como ROMM RGB):

)( corrigidoXYZLabcorrigido LabfXYZ

corrigido

corrigido

corrigido

ophoto

corrigido

corrigido

corrigido

Z

Y

X

M

B

G

R

Pr'

'

'

8.1'

8.1'

8.1'

)(

)(

)(

corrigido

corrigido

corrigido

corrigido

corrigido

corrigido

B

G

R

B

G

R

Page 15: Trabalho de Cores Correção de imagens de quadros do Portinari

Geração da imagem RGB corrigida

• O espaço Prophoto RGB foi escolhido por causa do seu grande

gamut, visando evitar ao máximo clipping de cores durante o

mapeamento XYZ para RGB final.

• Em função do grande gamut e para evitar posterização nas

imagens, o programa gerou imagens em 16 bits/pixel.

Page 16: Trabalho de Cores Correção de imagens de quadros do Portinari

Testes com câmeras digitais

• Visando testar o procedimento de correção em um ambiente controlado, foi gerada uma imagem a partir de uma câmera digital contendo além do Target Q-14 da Kodak, o target ColorChecker SG da GretagMacbeth

• O Colorchecker SG foi especialmente desenvolvido para a medição de câmeras digitais e possui 140 cores cujos valores Lab são conhecidos

• O Colorchecker SG será usado para avaliar a precisão do procedimento de correção de cores

Page 17: Trabalho de Cores Correção de imagens de quadros do Portinari

Antes de depois

• As imagens antes e depois do processamento:

Antes Depois

Page 18: Trabalho de Cores Correção de imagens de quadros do Portinari

Medidas do teste

• Foi avaliado o erro em cada uma das 140 amostras de cor do Colochecher SG

• Também foi avaliado a neutralidade das cores dos tons de cinza

• A fórmula do cálculo do erro é:

222 )()()( imagemrefimagemrefimagemref bbaaLLE

Page 19: Trabalho de Cores Correção de imagens de quadros do Portinari

Resultados do teste

Imagem Erro médio Erro máximo

Original 10.6 45.3

Mapeamento

Linear5.52 34.5

Mapeamento

Linear + Radial5.82 31.4

• Resultado do teste nas 140 amostras

Page 20: Trabalho de Cores Correção de imagens de quadros do Portinari

Comentários

• O erro médio diminuiu a metade nos dois mapeamentos

• O erro médio estando abaixo de 6 Delta-E é considerado aceitado pela indústria de reprodução gráfica

• Embora o mapeamento radial apresente um erro médio um pouco superior ao mapeamento linear, o mapeamento radial apresenta um melhor mapeamento nos tons neutros

Page 21: Trabalho de Cores Correção de imagens de quadros do Portinari

Referências

[1] International Color Consortium, “Image technology colour management — Architecture, profile format, and data structure”, http://www.color.org/ICC1v42_2006-05.pdf

[2] Press, William H. et al., “Numerical Recipes in C”, second edition, Cambridge University Press

[3] Finlayson, Graham et al., “Constrained least-squares regression in color spaces”, Journal of Electronic Imaging 6(4), Outubro de 1997

[4] http://www.brucelindbloom.com/index

[5] Qiao, Yue et al., “Developing a Computational Radial Basis Function (RBF) Architecture for Nonlinear Scattered Color Data, 22nd International Conference on Digital Printing Technology, Society for Imaging Science and Technology, 2006

[6] http://www.color.org/rommrgb.pdf