VandY {munsellinterpol}R Documentation

Convert Munsell Value V to Luminance Factor Y, and back again

Description

Convert non-linear Munsell Value V to linear Luminance Factor Y, and back again

Usage

YfromV( V, which='ASTM' )
VfromY( Y, which='ASTM' )

Arguments

V

a numeric vector with elements in the interval [0,10]

Y

a numeric vector with elements in the interval [0,100]

which

one of the strings in the first column of this table

reference
'ASTM' ASTM D-1535 (2008)
'OSA' Newhall, et. al. (1943)
'MgO' Newhall, et. al. (1943)
'Munsell' Munsell, et. al. (1933)
'Priest' Priest, et. al. (1920)

Partial matching is enabled, and it is case insensitive.

Details

'Priest' is the earliest (1920) transfer function in this package. It is implemented as:

V = sqrt(Y) ~~~~~~and~~~~~~ Y = V^2

One readily checks that when V=10, Y=100, and vice-versa. This transfer function has been implemented in colorimeters, using analog electric circuits. It is used in Hunter Lab - the precursor of CIE Lab.

'Munsell' is the next (1933) transfer function, and was proposed by Munsell's son (Alexander Ector Orr Munsell) and co-workers. It is implemented as:

V = sqrt( 1.474*Y - 0.00474*Y^2 )

Y = 50 * ( (1474 - sqrt(1474^2 - 4*4740*V^2)) / 474 )

One readily checks that when V=10, Y=100, and vice-versa. The luminance factor Y is absolute, AKA relative to the perfect reflecting diffuser.

'Priest' and 'Munsell' are included in this package for historical interest only.

The remaining three define Y as a quintic polynomial in V.

The next one historically - 'MgO' - is implemented as:

Y = (((((8404*V - 210090)*V + 2395100)*V - 2311100)*V + 10000000)*V ) / 10000000

One readily checks that when V=10, Y=102.568. This Y is larger than 100, because the authors decided to make Y relative to a clean surface of MgO, instead of the perfect reflecting diffuser. In their words:

Nowadays, the perfect reflecting diffuser is preferred over MgO. For users who would like to modify this quintic as little as possible, with the perfect reflecting diffuser in mind (going back to 'MUNSELL'), I offer 'OSA', which is given by this quintic of my own design

Y = (((((8404*V - 210090)*V + 2395100)*V - 2311100)*V + 10000000)*V ) / 10256800

ASTM had a similar modification in mind, but did it a little differently by scaling each coefficient. 'ASTM' is given by this quintic:

Y = ( ((((81939*V - 2048400)*V + 23352000)*V - 22533000)*V + 119140000)*V ) / 1.e8

One readily checks that when V=10, Y=100 exactly (for both 'OSA' and 'ASTM').

The inverses - from Y to V - of all 3 quintics are implemented as 3 splinefun()s at a large number (about 300) of points. These inverses are both fast and accurate. The round-trip Y → V → Y is accurate to 7 digits after the decimal. The round-trip V → Y → V is accurate to 8 digits after the decimal.

Value

a numeric vector the same length as the input

Note

The quintic functions 'ASTM' and 'OSA' are very close. They agree at the endpoints 0 and 10 exactly, and the largest difference is near V=6.767 where they differ by about 0.0007.

Author(s)

Glenn Davis

References

Priest, I. G. Gibson, K. S. and McNicholas, H. J. An Examination of the Munsell Color System. I. Spectral and and Total Reflection and the Munsell Scale of Value. Technologic Papers of the Bureau of Standards, No. 167. pp. 1-33. Washington D.C. 1920.

Munsell, A. E. O., L. L. Sloan, and I. H. Godlove. Neutral Value Scales. I. Munsell Neutral Value Scale. Journal of the Optical Society of America. Vol. 23. Issue 11. pp. 394-411. November 1933.

Newhall, Sidney M., Dorothy Nickerson, Deane B. Judd. Final Report of the O.S.A. Subcommitte on the Spacing of the Munsell Colors. Journal of the Optical Society of America. Vol. 33. No. 7. pp. 385-418. July 1943.

ASTM D 1535-08. Standard Practice for Specifying Color by the Munsell System. 2008

See Also

MunsellToxyY(), xyYtoMunsell()

Examples

VfromY( c(0,50,100) )
##  [1]  0.00000  7.53772 10.00000

[Package munsellinterpol version 3.0-0 Index]