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

Public Types | Public Member Functions
RGB2XYZFunctor< T > Class Template Reference

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

#include <vigra/colorconversions.hxx>

List of all members.

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.7.0 (Thu Aug 25 2011)