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

RGBPrime2YPrimeIQFunctor< T > Class Template Reference

Convert non-linear (gamma corrected) R'G'B' into Y'IQ 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
 
 RGBPrime2YPrimeIQFunctor ()
 
 RGBPrime2YPrimeIQFunctor (component_type max)
 

Detailed Description

template<class T>
class vigra::RGBPrime2YPrimeIQFunctor< T >

Convert non-linear (gamma corrected) R'G'B' into Y'IQ components.

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

According to the PAL analog video standard, 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}\\
    I & = & 0.596\enspace R / R_{max} - 0.274\enspace G / G_{max} - 0.322\enspace B / B_{max} \\
    Q & = & 0.212\enspace R / R_{max} - 0.523\enspace G / G_{max} + 0.311\enspace B / B_{max}
    \end{array}
\]

By default, $ R_{max} = G_{max} = B_{max} = 255 $. This default can be overridden in the constructor. Y' represents the luminance ("brightness") of the color. The transformation is scaled so that the following bounds apply:

\[    \begin{array}{rcl}
    0 \leq & Y' & \leq 1 \\
    -0.596 \leq & I & \leq 0.596 \\
    -0.523 \leq & Q & \leq 0.523
    \end{array}
\]

Traits defined:

FunctorTraits::isUnaryFunctor is true (VigraTrueType)

Member Typedef Documentation

◆ component_type

template<class T>
typedef NumericTraits<T>::RealPromote component_type

the result's component type

◆ argument_type

template<class T>
typedef TinyVector<T, 3> argument_type

the functor's argument type

◆ result_type

template<class T>
typedef TinyVector<component_type, 3> result_type

the functor's result type

◆ value_type

Constructor & Destructor Documentation

◆ RGBPrime2YPrimeIQFunctor() [1/2]

template<class T>
RGBPrime2YPrimeIQFunctor ( )

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

◆ RGBPrime2YPrimeIQFunctor() [2/2]

template<class T>
RGBPrime2YPrimeIQFunctor ( component_type max)

constructor

  • max - the maximum value for each RGB component

Member Function Documentation

◆ operator()()

template<class T>
template<class V>
result_type operator() ( V 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.12.2 (Mon Apr 14 2025)