orgb: a practical opponent color space for computer ... · orgb: a practical opponent color space...
TRANSCRIPT
oRGB: A Practical Opponent ColorSpace for Computer Graphics[1]
Bratkova, M. and Boulos, S. and Shirley, P.
Review by Massimo Fierro
Color and Imaging LabKyungpook National University
March 14, 2009
M. Fierro (CILAB) Skin separation Mar 14, 09 1 / 16
Outline
Introduction
Testing
References
M. Fierro (CILAB) Skin separation Mar 14, 09 2 / 16
Introduction
Opponent color theory
Ewald Hering
Hering was the first to notice in the 1970s that there appeared to be twocouples of “pure” colors with respect to each other: red and green, blueand yellow.
M. Fierro (CILAB) Skin separation Mar 14, 09 3 / 16
Introduction
Opponent color spaces
Opponent color space characteristics
I 1 luminance axis
I 2 chrominance axis based on the opponent color theory.
Currently available opponent color spaces
Device dependant (magenta-cyan axis)
I YCbCr
I YIQ
I YCC
I NCS
Device independant
I L∗a∗b∗
I lαβ
M. Fierro (CILAB) Skin separation Mar 14, 09 4 / 16
Introduction
Proposed color space ideas
Desired features
I Opponent color space
I Similar in spirit to lαβ and L∗a∗b∗
I Useful for graphics applications
Design choices
I Device dependant color space (directly from R′G′B′)I Non-linear luma channel (instead of linear luminance)
M. Fierro (CILAB) Skin separation Mar 14, 09 5 / 16
Introduction
Magenta-cyan vs red-green
M. Fierro (CILAB) Skin separation Mar 14, 09 6 / 16
Introduction
Considerations on R′G′B′
M. Fierro (CILAB) Skin separation Mar 14, 09 7 / 16
Introduction
Proposed algorithm
Algorithm outline
1. From R′G′B′to L′C′C′: linear transform to white-black, yellow-blue,magenta-cyan color space
2. From L′C′C′to oRGB: nonuniform rotation around luma axis toobtain red-green axis
Notes
The second step is a compression/decompression of angles depending onthe quadrant to which the color attains.
M. Fierro (CILAB) Skin separation Mar 14, 09 8 / 16
Introduction
Proposed algorithm: mathematically
Steps
1.
24 L′
C′1
C′2
35 =
24 0.2990R′ + 0.5870G′ + 0.1140B′
0.5(R′ + G′)− B′
0.866(R′ − G′)
352. θo(θ) =
((3/2)θ if θ ≤ π/3
π/2 + (3/4) + (θ − π/3) if π ≥ θ ≥ π/3
3.
"C′
yb
C′rg
#= R(θo − θ)
»C′
1C′
2
–
where L′C′1C
′2 is Y CC and L′C′
ybC′rg is oRGB.
M. Fierro (CILAB) Skin separation Mar 14, 09 9 / 16
Introduction
oRGB properties
Properties
I Similar to HSV/HSB
I It’s axes reflect common “color naming”
I C ′yb and C ′rg are in the [−1, 1] range
I L′ is normalized ([0, 1])
M. Fierro (CILAB) Skin separation Mar 14, 09 10 / 16
Testing
oRGB testing
Sample applications
I Color adjustment
I Gamut mapping: custom algorithm
I Color transfer: various methods
I Cool to warm shading: similar to Amy Gooch et al.
M. Fierro (CILAB) Skin separation Mar 14, 09 11 / 16
Testing
Color adjustment
M. Fierro (CILAB) Skin separation Mar 14, 09 12 / 16
Testing
Cool to warm shading
M. Fierro (CILAB) Skin separation Mar 14, 09 13 / 16
Testing
Color transfer
M. Fierro (CILAB) Skin separation Mar 14, 09 14 / 16
Testing
Gamut mapping
M. Fierro (CILAB) Skin separation Mar 14, 09 15 / 16
References
Bibliography
M. Bratkova, S. Boulos, and P. Shirley.orgb: A practical opponent color space for computer graphics.Computer Graphics and Applications, IEEE, 29(1):42–55, Jan.-Feb.2009.
M. Fierro (CILAB) Skin separation Mar 14, 09 16 / 16