Viewing Object Colors in a Gallery

Similar documents
The Effect of the Aging Lens on Color Vision

"RAW" Conversion Options Too Much of a Good Thing? Dr. Tony Kaye ASIS FRPS 12 December 2009

YELLOW SLIDE SCANNER MINI-SHOOT-OUT CONDUCTED BY SPECTRAL MASTERS, INC.

To discuss. Color Science Color Models in image. Computer Graphics 2

Technical Report. Evaluating Solid State and Tungsten- Halogen Lighting for Imaging Artwork via Computer Simulation Roy S. Berns

Calibration-Based Auto White Balance Method for Digital Still Camera *

CIE tri-stimulus experiment. Color Value Functions. CIE 1931 Standard. Color. Diagram. Color light intensity for visual color match

011H Gray Cards. Gretagmacbeth $69.00

COLOR and the human response to light

DrawString vs. WWrite et al.:

COLOR. and the human response to light

Color Reproduction. Chapter 6

Color Theory: Defining Brown

19 Setting Up Your Monitor for Color Management

Digital Technology Group, Inc. Tampa Ft. Lauderdale Carolinas

1 Introduction. Analysis of color profile quality of digital projector. Original scientific paper. Iva Molek 1, Dejana Javoršek 2. Molek I. et al.

Does CIELUV Measure Image Color Quality?

Technical Report. A New Encoding System for Image Archiving of Cultural Heritage: ETRGB Roy S. Berns and Maxim Derhak

Calibration. Kent Messamore 7/23/2013. JKM 7/23/2013 Enhanced Images 1

SilverFast. Colour Management Tutorial. LaserSoft Imaging

Color Management For Digital Photography

CSE 332/564: Visualization. Fundamentals of Color. Perception of Light Intensity. Computer Science Department Stony Brook University

METHODS OF MEASUREMENT OF THE COLORIMETRIC FIDELITY OF TELEVISION CAMERAS. Measurement Procedures CONTENTS

PRINT BUSINESS OUTLOOK CONFERENCE 2016

Accelerated Light Fading Test Results

In Situ Measured Spectral Radiation of Natural Objects

Victor Ostromoukhov Université de Montréal. Victor Ostromoukhov - Université de Montréal

Colour Analysis of Unison Pastels

Image and video processing (EBU723U) Colour Images. Dr. Yi-Zhe Song

CS6640 Computational Photography. 6. Color science for digital photography Steve Marschner

Yearbook Color Management. Matthew Bernius. Rochester Institute of Technology School of Print Media

What s New in Capture NX

Digital Image Processing

Gemewizard. Imagine all the people talking the same color language

How G7 Makes Inkjet Color Management Better. Jim Raffel Some slides have been adapted from and are used with permission of SGIA and MeasureColor.

Introduction to Color Science (Cont)

Remote Director Version 2.6 with the Apple 20 LCD Display

Chapter 2 Fundamentals of Digital Imaging

Gernot Hoffmann. Sky Blue

H30: Specification of Colour, Munsell and NCS

Basics of Colors in Graphics Denbigh Starkey

Color Balancing Techniques

GT-782 Printer Driver ver

Introduction. The Spectral Basis for Color

Standard Viewing Conditions

Color Matching with ICC Profiles Take One

Color Temperature Color Balance Color Space Color Composition and Psychology. Instructor: David King

Future Electronics EZ-Color Seminar. Autumn Colour Technology

Myth #1. Blue, cyan, green, yellow, red, and magenta are seen in the rainbow.

Computer Graphics Si Lu Fall /27/2016

Color Science. What light is. Measuring light. CS 4620 Lecture 15. Salient property is the spectral power distribution (SPD)

Spectral reproduction from scene to hardcopy

Remote Director. Sony 23 SDM-P232W. Collaborative Soft Proofing using the I. MANUFACTURER INTRODUCTION. SWOP Application Data Sheet

xyy L*a*b* L*u*v* RGB

Introduction to Color Theory

Test 1: Example #2. Paul Avery PHY 3400 Feb. 15, Note: * indicates the correct answer.

Appendix 1: Lead-Glazed and Slipped Pottery Type Series

Additive. Subtractive

The RGB code. Part 1: Cracking the RGB code (from light to XYZ)

Introduction to computer vision. Image Color Conversion. CIE Chromaticity Diagram and Color Gamut. Color Models

Mark D. Fairchild and Garrett M. Johnson Munsell Color Science Laboratory, Center for Imaging Science Rochester Institute of Technology, Rochester NY

Andrew Rodney aka The Digital Dog

Color Management. A ShortCourse in. D e n n i s P. C u r t i n. Cover AA30470C. h t t p : / / w w w. ShortCourses. c o m

Color Appearance, Color Order, & Other Color Systems

University of British Columbia CPSC 414 Computer Graphics

LECTURE 07 COLORS IN IMAGES & VIDEO

The Elements of Art: Photography Edition. Directions: Copy the notes in red. The notes in blue are art terms for the back of your handout.

EFI Fiery Printer Profiler The impact of the black separation settings. Oliver Schorn, Senior Color Management & Research Engineer

any kind, you have two receptive fields, one the small center region, the other the surround region.

Conceptual Physics 11 th Edition

Color Science. CS 4620 Lecture 15

According to the proposed AWB methods as described in Chapter 3, the following

Developing the Color Temperature Histogram Method for Improving the Content-Based Image Retrieval

End-to-End Calibration 101. Sept 2015 Rob Redford

Matching Proof and Print under the Influence of OBA

Color and Color Model. Chap. 12 Intro. to Computer Graphics, Spring 2009, Y. G. Shin

ISET Selecting a Color Conversion Matrix

Applications of a Color-Naming Database

Color II: applications in photography

A prototype calibration target for spectral imaging

Colours and Control for Designers. This article is supported by...

Color and color constancy

EECS490: Digital Image Processing. Lecture #12

Communicating Color. Courtesy of: X-Rite Inc Street SE Grand Rapids MI (616)

Chapter Objectives. Color Management. Color Management. Chapter Objectives 1/27/12. Beyond Design

The 2 in 1 Grey White Balance Colour Card. user guide.

Color Management and Your Workflow. monaco

Color. Color. Colorfull world IFT3350. Victor Ostromoukhov Université de Montréal. Victor Ostromoukhov - Université de Montréal

Colors in Images & Video

Line Line Characteristic of Line are: Width Length Direction Focus Feeling Types of Line: Outlines Contour Lines Gesture Lines Sketch Lines

excite the cones in the same way.

The Advantages of the New HP Nine-Ink Color Printing System

Color II: applications in photography

The longevity of ink on paper for fine art prints. Carinna Parraman, Centre for Fine Print Research, University of the West of England, Bristol, UK

Report on generating a colour circle for testing in screenprinting and inkjet

The White Paper: Considerations for Choosing White Point Chromaticity for Digital Cinema

ICC Votable Proposal Submission Colorimetric Intent Image State Tag Proposal

Color Image Processing

Multimedia Systems and Technologies

ChromaLife100+ Technology Guide

Transcription:

Viewing Object Colors in a Gallery Glenn Davis <gdavis@gluonics.com> March 3, 2019 Introduction The goal of this colorspec vignette is to display rendered images of a popular color target with different illuminants, both with and without chromatic adaption methods. The figures are best viewed on a display calibrated for srgb. Featured functions in this vignette are: extradata(), and product(). library( colorspec ) library( spacesxyz ) library( spacesrgb ) # for function standardxyz() # for functions RGBfromXYZ() and plotpatchesrgb() Read the target spectra. This data has been kindly provided in CGATS format by [2]. ColorChecker is a Registered Trademark of X-Rite, and X-Rite is a Trademark. # read the Macbeth ColorCheck target path = system.file( 'extdata/targets/cc_avg30_spectrum_cgats.txt', package='colorspec') MacbethCC = readspectra( path ) # MacbethCC is a 'colorspec' object MacbethCC = MacbethCC[ order(macbethcc$sample_id), ] # still class 'colorspec' print( extradata(macbethcc), row.names=f ) SAMPLE_ID SAMPLE_NAME Munsell ISCC-NBS_Name LEFT TOP WIDTH HEIGHT 1 dark skin 3YR 3.7/3.2 moderate brown 7 9 29 29 2 light skin 2.2YR 6.47/4.1 light reddish brown 40 9 29 29 3 blue sky 4.3PB 4.95/5.5 moderate blue 73 9 29 29 4 foliage 6.7GY 4.2/4.1 moderate olive green 106 9 29 29 5 blue flower 9.7PB 5.47/6.7 light violet 139 9 29 29 6 bluish green 2.5BG 7/6 light bluish green 172 9 29 29 7 orange 5YR 6/11 strong orange 7 42 29 29 8 purplish blue 7.5PB 4/10.7 strong purplish blue 40 42 29 29 9 moderate red 2.5R 5/10 moderate red 73 42 29 29 10 purple 5P 3/7 deep purple 106 42 29 29 11 yellow green 5GY 7.1/9.1 strong yellow green 139 42 29 29 12 orange yellow 10YR 7/10.5 strong orange yellow 172 42 29 29 13 Blue 7.5PB 2.9/12.7 vivid purplish blue 7 75 29 29 14 Green 0.25G 5.4/8.65 strong yellowish green 40 75 29 29 15 Red 5R 4/12 strong red 73 75 29 29 16 Yellow 5Y 8/11.1 vivid yellow 106 75 29 29 17 Magenta 2.5RP 5/12 strong reddish purple 139 75 29 29 18 Cyan 5B 5/8 strong greenish blue 172 75 29 29 19 white N9.5/ white 7 108 29 29 20 neutral 8 N8/ light gray 40 108 29 29 21 neutral 6.5 N6.5/ light medium gray 73 108 29 29 1

22 neutral 5 N5/ medium gray 106 108 29 29 23 neutral 3.5 N3.5/ dark gray 139 108 29 29 24 black N2/ black 172 108 29 29 Note that MacbethCC is organized as df.row and contains extra data for each spectrum, notably the coordinates of the patch rectangle. Viewing with Illuminant D65 Build the material responder from Illuminant D65 and standard CMFs: D65.eye = product( D65.1nm, "artwork", xyz1931.1nm, wave='auto' ) # calibrate so the perfect-reflecting-diffuser is the 'official XYZ' # scale XYZ independently PRD = neutralmaterial( 1, wavelength(d65.eye) ) D65.eye = calibrate( D65.eye, stimulus=prd, response=standardxyz('d65'), method='scaling' ) Calculate XYZ and then RGB: XYZ = product( MacbethCC, D65.eye, wave='auto' ) RGB = RGBfromXYZ( XYZ, space='srgb', which='scene' )$RGB # this is *signal* srgb # add the rectangle data to RGB, so they can be plotted in proper places obj$rgb = RGB # display in proper location, and use the srgb display transfer function plotpatchesrgb( obj, space='srgb', which='signal', back='gray20', labels=false ) page 2 of 9

Figure 1: Rendering with Illuminant D65 and xyz1931.1nm obj.first = obj # save this reference object for later Here are the 8-bit device values: RGB8 = round( 255 * RGB ) print( RGB8 ) R G B dark skin 115 82 68 light skin 195 149 128 blue sky 93 123 157 foliage 91 108 65 blue flower 130 129 175 bluish green 98 191 170 orange 220 123 46 purplish blue 72 92 168 moderate red 194 84 97 purple 91 59 104 yellow green 161 189 62 orange yellow 229 161 40 Blue 42 63 147 Green 72 149 72 Red 175 50 57 Yellow 238 200 22 Magenta 188 84 150 page 3 of 9

Cyan 0 137 166 white 245 245 240 neutral 8 201 202 201 neutral 6.5 161 162 162 neutral 5 120 121 121 neutral 3.5 83 85 85 black 50 50 51 Note that all of these patches are inside the srgb gamut, exept for Cyan. Another way to do the same thing is use the built-in theoretical camera BT.709.RGB that computes srgb directly from spectra, and has already been calibrated. RGB = product( D65.1nm, MacbethCC, BT.709.RGB, wave='auto' ) # this is *linear* srgb obj$rgb = RGB plotpatchesrgb( obj, space='srgb', which='scene', back='gray20', labels=false ) Figure 2: Rendering with Illuminant D65 and Theoretical BT.709.RGB Camera Viewing with Illuminant D50 Build the material responder from Illuminant D50 and standard CMFs: page 4 of 9

D50.eye = product( D50.5nm, "artwork", xyz1931.5nm, wave='auto' ) # calibrate so the response to the perfect-reflecting-diffuser is the 'official XYZ' of D50 # scale XYZ independently PRD = neutralmaterial( 1, wavelength(d50.eye) ) D50.eye = calibrate( D50.eye, stimulus=prd, response=standardxyz('d50'), method='scaling' ) Calculate XYZ and then RGB: XYZ = product( MacbethCC, D50.eye, wave='auto' ) obj$rgb = RGBfromXYZ( XYZ, space='srgb' )$RGB # this is *signal* srgb plotpatchesrgb( obj, space='srgb', which='signal', back='gray20', labels=false ) Figure 3: Rendering with Illuminant D50 and xyz1931.5nm Since D50 is yellower than D65, the result has a yellow cast. Start over, but this time calibrate and adapt to D65 using the Bradford method. D50.eye = product( D50.5nm, "artwork", xyz1931.5nm, wave='auto' ) # calibrate so the response to the perfect-reflecting-diffuser is the 'official XYZ' of D65 # with this chromatic adaption the destination XYZ is a 3x3 matrix times the source XYZ PRD = neutralmaterial( 1, wavelength(d50.eye) ) XYZ.D65 = standardxyz('d65') page 5 of 9

D50toD65.eye = calibrate( D50.eye, stimulus=prd, response=xyz.d65, method='bradford' ) XYZ = product( MacbethCC, D50toD65.eye, wave='auto' ) obj$rgb = RGBfromXYZ( XYZ, space='srgb' )$RGB # this is *signal* srgb plotpatchesrgb( obj, space='srgb', which='signal', back='gray20', labels=false ) Figure 4: Rendering with Illuminant D50 and xyz1931.5nm, but then adapted to D65 The white-balance here is much improved. But it hard to compare colors in this figure with the ones way back in Figure 1. So combine the original D65 rendering in Figure 1 with this D50 rendering in Figure 4 by splitting each square into 2 triangles. We can do this by setting add=t in the second plot. plotpatchesrgb( obj.first, space='srgb', back='gray20', labels=f ) plotpatchesrgb( obj, space='srgb', labels=f, shape='bottomright', add=t ) page 6 of 9

Figure 5: Rendering with both D65 (Figure 1), and D50 then adapted to D65 (Figure 4) The top-left triangle has the color from Figure 1 and the bottom-right triangle has the color from Figure 4. There is a noticeable difference in the Red and Magenta patches. A Rendering with a Scanner Here we calculate a rendering on an RGB scanner. illustrates the similarity of the 2 RGB calculations. This is not really a gallery situation, but # Build a scanner from Illuminant F11 and the Flea2 camera scanner = product( subset(fs.5nm,'f11'), 'artwork', Flea2.RGB, wave='auto' ) # calibrate scanner so the response to the perfect-reflecting-diffuser is RGB=(1,1,1) # set the RGB gains independently PRD = neutralmaterial( 1, wavelength(scanner) ) scanner = calibrate( scanner, stimulus=prd, response=1, method='scaling' ) obj$rgb = product( MacbethCC, scanner, wave='auto' ) # this linear RGB is not linear srgb plotpatchesrgb( obj, space='srgb', which='scene', back='gray20', labels=false ) page 7 of 9

REFERENCES REFERENCES Figure 6: Rendering with a generic RGB scanner The colors are too pale; this time Cyan has a substantial Red signal. Some sort of color management is necessary in this scanner to improve accuracy. For an interactive viewer along these lines, see [1]. References [1] Lindbloom, Bruce. GretagMacbeth ColorChecker Calculator. http://brucelindbloom.com/ index.html?colorcheckercalculator.html. [2] Pascale, Danny. The ColorChecker, page 2. http://www.babelcolor.com/colorchecker-2. htm. Appendix This document was prepared March 3, 2019 with the following configuration: ˆ R version 3.5.2 (2018-12-20), i386-w64-mingw32 ˆ Running under: Windows 7 (build 7601) Service Pack 1 ˆ Matrix products: default ˆ Base packages: base, datasets, grdevices, graphics, methods, stats, utils page 8 of 9

REFERENCES REFERENCES ˆ Other packages: colorspec 0.8-3, knitr 1.21, spacesrgb 1.3-1, spacesxyz 1.0-4 ˆ Loaded via a namespace (and not attached): MASS 7.3-51.1, Rcpp 1.0.0, compiler 3.5.2, digest 0.6.18, evaluate 0.12, highr 0.7, htmltools 0.3.6, magrittr 1.5, microbenchmark 1.4-6, rmarkdown 1.11, stringi 1.2.4, stringr 1.3.1, tools 3.5.2, xfun 0.4, yaml 2.2.0 page 9 of 9