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

details RGB2XYZFunctor< T > Class Template Reference VIGRA

Convert linear (raw) RGB into standardized tri-stimulus XYZ. 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
 

Public Member Functions

result_type operator() (argument_type const &rgb) const
 
 RGB2XYZFunctor ()
 
 RGB2XYZFunctor (component_type max)
 

Detailed Description

template<class T>
class vigra::RGB2XYZFunctor< T >

Convert linear (raw) RGB into standardized tri-stimulus XYZ.

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

According to ITU-R Recommendation BT.709, the functor realizes the transformation

\[ \begin{array}{rcl} X & = & 0.412453\enspace R / R_{max} + 0.357580\enspace G / G_{max} + 0.180423\enspace B / B_{max}\\ Y & = & 0.212671\enspace R / R_{max} + 0.715160\enspace G / G_{max} + 0.072169\enspace B / B_{max} \\ Z & = & 0.019334\enspace R / R_{max} + 0.119193\enspace G / G_{max} + 0.950227\enspace B / B_{max} \end{array} \]

By default, $ R_{max} = G_{max} = B_{max} = 255 $. This default can be overridden in the constructor. X, Y, and Z are always positive and reach their maximum for white. The white point is obtained by transforming RGB(255, 255, 255). It corresponds to the D65 illuminant. Y represents the luminance ("brightness") of the color. The above transformation is officially defined in connection with the sRGB color space (i.e. when the RGB values are obtained by inverse gamma correction of sRGB), other color spaces use slightly different numbers or another standard illuminant (which gives raise to significantly different numbers).

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

Constructor & Destructor Documentation

default constructor. The maximum value for each RGB component defaults to 255.

constructor

  • max - the maximum value for each RGB component

Member Function Documentation

result_type operator() ( argument_type const &  rgb) const

apply the transformation


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)