[ VIGRA Homepage | Function Index | Class Index | Namespaces | File List | Main Page ]
Convert non-linear (gamma corrected) R'G'B' into Y'PbPr color difference components. 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 | |
| template<class V> | |
| result_type | operator() (V const &rgb) const |
| RGBPrime2YPrimePbPrFunctor () | |
| RGBPrime2YPrimePbPrFunctor (component_type max) | |
Convert non-linear (gamma corrected) R'G'B' into Y'PbPr color difference components.
#include <vigra/colorconversions.hxx>
Namespace: vigra
According to ITU-R Recommendation BT.601, the functor realizes the transformation
![\[ \begin{array}{rcl}
Y' & = & 0.299\enspace R / R_{max} + 0.587\enspace G / G_{max} + 0.114\enspace B / B_{max}\\
Pb & = & -0.1687358916\enspace R / R_{max} + 0.3312641084\enspace G / G_{max} + 0.5\enspace B / B_{max} \\
Pr & = & 0.5\enspace R / R_{max} + 0.4186875892\enspace G / G_{max} + 0.0813124108\enspace B / B_{max}
\end{array}
\]](form_48.png)
By default, 
![\[ \begin{array}{rcl}
0 \leq & Y' & \leq 1 \\
-0.5 \leq & Pb & \leq 0.5 \\
-0.5 \leq & Pr & \leq 0.5
\end{array}
\]](form_49.png)
Traits defined:
FunctorTraits::isUnaryFunctor is true (VigraTrueType)
| typedef NumericTraits<T>::RealPromote component_type |
the result's component type
| typedef TinyVector<T, 3> argument_type |
the functor's argument type
| typedef TinyVector<component_type, 3> result_type |
the functor's result type
| typedef TinyVector<component_type, 3> value_type |
| RGBPrime2YPrimePbPrFunctor | ( | ) |
default constructor. The maximum value for each RGB component defaults to 255.
| RGBPrime2YPrimePbPrFunctor | ( | component_type | max | ) |
constructor
apply the transformation
|
© Ullrich Köthe (ullrich.koethe@iwr.uni-heidelberg.de) |