[ VIGRA Homepage | Function Index | Class Index | Namespaces | File List | Main Page ]

details XYZ2LuvFunctor< T > Class Template Reference VIGRA

Convert standardized tri-stimulus XYZ into perceptual uniform CIE L*u*v*. More...

#include <vigra/colorconversions.hxx>

Public Types

typedef TinyVector< T, 3 > argument_type
 
typedef NumericTraits< T >
::RealPromote 
component_type
 
typedef TinyVector
< component_type, 3 > 
result_type
 
typedef TinyVector
< component_type, 3 > 
value_type
 

Detailed Description

template<class T>
class vigra::XYZ2LuvFunctor< T >

Convert standardized tri-stimulus XYZ into perceptual uniform CIE L*u*v*.

#include <vigra/colorconversions.hxx>
Namespace: vigra

The functor realizes the transformation

\[ \begin{array}{rcl} L^{*} & = & 116 \left( \frac{Y}{Y_n} \right)^\frac{1}{3}-16 \quad \mbox{if} \quad 0.008856 < \frac{Y}{Y_n}\\ & & \\ L^{*} & = & 903.3\enspace \frac{Y}{Y_n} \quad \mbox{otherwise} \\ & & \\ u' & = & \frac{4 X}{X+15 Y + 3 Z}, \quad v' = \frac{9 Y}{X+15 Y + 3 Z}\\ & & \\ u^{*} & = & 13 L^{*} (u' - u_n'), \quad v^{*} = 13 L^{*} (v' - v_n') \end{array} \]

where $(X_n, Y_n, Z_n) = (0.950456, 1.0, 1.088754)$ is the reference white point of standard illuminant D65, and $u_n' = 0.197839, v_n'=0.468342$ are the quantities $u', v'$ calculated for this point. $L^{*}$ represents the lightness ("brightness") of the color, and $u^{*}, v^{*}$ code the chromaticity. (Instead of the rationals $\frac{216}{24389}$ and $\frac{24389}{27}$, the original standard gives the rounded values 0.008856 and 903.3. As Bruce Lindbloom points out, the rounded values give raise to a discontinuity which is removed by the accurate rationals. This bug will be fixed in future versions of the CIE Luv standard.)

Traits defined:

FunctorTraits::isUnaryFunctor is true (VigraTrueType)

Member Typedef Documentation

typedef NumericTraits<T>::RealPromote component_type

the result's component type

typedef TinyVector<T, 3> argument_type

the functor's argument type

the functor's result type

Deprecated:
use argument_type and result_type

The documentation for this class was generated from the following file:

© Ullrich Köthe (ullrich.koethe@iwr.uni-heidelberg.de)
Heidelberg Collaboratory for Image Processing, University of Heidelberg, Germany

html generated using doxygen and Python
vigra 1.11.1 (Fri May 19 2017)