MunsellToRGB: Convert a Munsell specification to RGB coordinates

View source: R/RGB.R

MunsellToRGBR Documentation

Convert a Munsell specification to RGB coordinates

Description

MunsellToRGB Converts a Munsell specification to RGB coordinates, by interpolating over the extrapolated Munsell renotation data

Usage

MunsellToRGB( MunsellSpec, space='sRGB', which='scene', maxSignal=255, 
    adapt='Bradford', ... ) 

Arguments

MunsellSpec

a numeric Nx3 matrix with HVC values in the rows, or a vector that can be converted to such a matrix, by row.
MunsellSpec can also be a character vector with Munsell Notations, which is converted to an Nx3 matrix using HVCfromMunsellName().

space

the name of an installed RGB space. Spaces 'sRGB' and 'AdobeRGB' are pre-installed, and others can be installed with spacesRGB::installRGB().

which

either 'scene' or 'display'; passed to spacesRGB::RGBfromXYZ()

maxSignal

maximum of the non-linear signal RGB; Other popular values are 1, 100, 1023, and 65535

adapt

method for chromatic adaptation, see spacesXYZ::CAT() for valid values. Also see Details.

...

other parameters passed to MunsellToxyY()

Details

The conversion is done with these steps:

  • HVC \rarrow xyY using MunsellToxyY() with .... This xyY is for Illuminant C.

  • xyY \rarrow XYZ using spacesXYZ::XYZfromxyY()

  • XYZ is adapted from Illuminant C to the white-point (with which) of the RGB space, using spacesXYZ::adaptXYZ(), with the given chromatic adaptation method adapt

  • XYZ \rarrow RGB using spacesRGB::RGBfromXYZ() with the given space, which, and maxSignal

Value

a data.frame with these columns:

SAMPLE_NAME

a character N-vector equal to the original MunsellSpec if that was a character vector. Or the Munsell notation string converted from the input matrix HVC.

xyY

an Nx3 matrix with xyY values in the rows, that are adapted to Illuminant C. This is an intermediate result that is sometimes useful, e.g. it can be passed to IsWithinMacAdamLimits(). The rownames of xyY are copied from those of HVC, unless the rownames of HVC are NULL when they are set to SAMPLE_NAME.

RGB

an Nx3 matrix with non-linear RGB signal values in the rows. All values are clamped to the appropriate cube, e.g. [0,255]^3. The rownames of RGB are copied from those of xyY.

OutOfGamut

logical vector, TRUE means the result was out of gamut (the cube) before clamping it

In case of error, it returns NULL.

Author(s)

Jose Gama and Glenn Davis

References

Paul Centore 2014 The Munsell and Kubelka-Munk Toolbox https://www.munsellcolourscienceforpainters.com/MunsellAndKubelkaMunkToolbox/MunsellAndKubelkaMunkToolbox.html

See Also

MunsellToXYZ(), IsWithinMacAdamLimits(), spacesRGB::installRGB(), spacesRGB::RGBfromXYZ(), spacesXYZ::XYZfromxyY(), spacesXYZ::CAT()

Examples

MunsellToRGB( c('7.6P 8.9/2.2', 'N 3/'), space='AdobeRGB' )
##     SAMPLE_NAME      xyY.x      xyY.y      xyY.Y     RGB.R     RGB.G     RGB.B OutOfGamut
##  1 7.6P 8.9/2.2  0.3109520  0.3068719 74.6134498 227.72419 220.18659 229.23297      FALSE
##  2         N 3/  0.3101000  0.3163000  6.3911778  73.01793  73.01793  73.01793      FALSE


munsellinterpol documentation built on April 8, 2022, 9:07 a.m.