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

details RGBValue< T, RED_IDX, GREEN_IDX, BLUE_IDX > Class Template Reference VIGRA

Class for a single RGB value. More...

#include <vigra/rgbvalue.hxx>

Inheritance diagram for RGBValue< T, RED_IDX, GREEN_IDX, BLUE_IDX >:
TinyVector< VALUETYPE, 3 > TinyVectorBase< VALUETYPE, SIZE, VALUETYPE[SIZE], TinyVector< VALUETYPE, SIZE > >

Public Types

enum  
 
typedef Base::const_iterator const_iterator
 
typedef Base::iterator iterator
 
typedef Base::NormType NormType
 
typedef Base::SquaredNormType SquaredNormType
 
typedef Base::value_type value_type
 
- Public Types inherited from TinyVectorBase< VALUETYPE, SIZE, VALUETYPE[SIZE], TinyVector< VALUETYPE, SIZE > >
enum  
 
typedef value_type const * const_iterator
 
typedef VALUETYPE const * const_pointer
 
typedef VALUETYPE const & const_reference
 
typedef std::ptrdiff_t difference_type
 
typedef value_typeiterator
 
typedef SquareRootTraits
< SquaredNormType >
::SquareRootResult 
NormType
 
typedef VALUETYPE * pointer
 
typedef VALUETYPE & reference
 
typedef double scalar_multiplier
 
typedef unsigned int size_type
 
typedef NormTraits< VALUETYPE >
::SquaredNormType 
SquaredNormType
 
typedef VALUETYPE value_type
 

Public Member Functions

value_typeblue ()
 
value_type const & blue () const
 
value_typegreen ()
 
value_type const & green () const
 
value_type luminance () const
 
NormType magnitude () const
 
RGBValue operator- () const
 
template<class U , unsigned int R, unsigned int G, unsigned int B>
RGBValueoperator= (RGBValue< U, R, G, B > const &r)
 
RGBValueoperator= (TinyVector< value_type, 3 > const &r)
 
value_typered ()
 
value_type const & red () const
 
 RGBValue (value_type first, value_type second, value_type third)
 
 RGBValue (value_type gray)
 
 RGBValue (const_pointer i)
 
 RGBValue (const_pointer i, ReverseCopyTag reverse)
 
 RGBValue ()
 
template<class U , unsigned int R, unsigned int G, unsigned int B>
 RGBValue (RGBValue< U, R, G, B > const &r)
 
 RGBValue (TinyVector< value_type, 3 > const &r)
 
template<class V >
void setBlue (V value)
 
template<class V >
void setGreen (V value)
 
template<class V >
void setRed (V value)
 
SquaredNormType squaredMagnitude () const
 
- Public Member Functions inherited from TinyVector< VALUETYPE, 3 >
TinyVectorcopy (TinyVectorBase< U, USIZE, DATA, DERIVED > const &r)
 
TinyVectoroperator= (TinyVector const &r)
 
TinyVectoroperator= (TinyVectorBase< U, SIZE, DATA, DERIVED > const &r)
 
TinyVectoroperator= (Diff2D const &r)
 
TinyVectoroperator= (value_type const &v)
 
 TinyVector (value_type const &initial)
 
 TinyVector (lemon::Invalid const &)
 
 TinyVector (Diff2D const &initial)
 
 TinyVector (value_type const &i1, value_type const &i2)
 
 TinyVector (value_type const &i1, value_type const &i2, value_type const &i3)
 
 TinyVector (value_type const &i1, value_type const &i2, value_type const &i3, value_type const &i4)
 
 TinyVector (value_type const &i1, value_type const &i2, value_type const &i3, value_type const &i4, value_type const &i5)
 
 TinyVector ()
 
 TinyVector (SkipInitializationTag)
 
 TinyVector (TinyVector const &r)
 
 TinyVector (U const *data)
 
 TinyVector (const_pointer data, ReverseCopyTag)
 
 TinyVector (TinyVectorBase< U, SIZE, DATA, DERIVED > const &r)
 
- Public Member Functions inherited from TinyVectorBase< VALUETYPE, SIZE, VALUETYPE[SIZE], TinyVector< VALUETYPE, SIZE > >
bool all () const
 
bool any () const
 
iterator begin ()
 
const_iterator begin () const
 
const_iterator cbegin () const
 
const_iterator cend () const
 
iterator end ()
 
const_iterator end () const
 
void init (Iterator i, Iterator end)
 
void init (value_type initial)
 
NormType magnitude () const
 
VALUETYPE const & maximum () const
 
VALUETYPE const & minimum () const
 
DERIVED & operator%= (TinyVectorBase< T1, SIZE, VALUETYPE, TinyVector< VALUETYPE, SIZE > > const &r)
 
DERIVED & operator*= (TinyVectorBase< T1, SIZE, VALUETYPE, TinyVector< VALUETYPE, SIZE > > const &r)
 
DERIVED & operator*= (double r)
 
DERIVED & operator+= (TinyVectorBase< T1, SIZE, VALUETYPE, TinyVector< VALUETYPE, SIZE > > const &r)
 
DERIVED & operator+= (double r)
 
DERIVED & operator-= (TinyVectorBase< T1, SIZE, VALUETYPE, TinyVector< VALUETYPE, SIZE > > const &r)
 
DERIVED & operator-= (double r)
 
DERIVED & operator/= (TinyVectorBase< T1, SIZE, VALUETYPE, TinyVector< VALUETYPE, SIZE > > const &r)
 
DERIVED & operator/= (double r)
 
reference operator[] (difference_type i)
 
const_reference operator[] (difference_type i) const
 
size_type size () const
 
SquaredNormType squaredMagnitude () const
 
TinyVectorView< VALUETYPE, TO-FROM > subarray () const
 

Additional Inherited Members

- Static Public Member Functions inherited from TinyVectorBase< VALUETYPE, SIZE, VALUETYPE[SIZE], TinyVector< VALUETYPE, SIZE > >
static TinyVector< VALUETYPE,
SIZE > 
linearSequence (VALUETYPE start=VALUETYPE(), VALUETYPE step=VALUETYPE(1))
 Factory function for a linear sequence. More...
 
static TinyVector< VALUETYPE,
SIZE > 
unitVector (int k)
 Factory function for a unit vector for dimension k.
 

Detailed Description

template<class T, unsigned int RED_IDX, unsigned int GREEN_IDX, unsigned int BLUE_IDX>
class vigra::RGBValue< T, RED_IDX, GREEN_IDX, BLUE_IDX >

Class for a single RGB value.

This class contains three values (of the specified type) that represent red, green, and blue color channels. By means of the template parameters RED_IDX, GREEN_IDX, BLUE_IDX, the indices 0, 1, 2 can be assigned to the three colors arbitrarily, so that, for example, a BGR type can be created as

typedef RGBValue<unsigned char, 2,1,0> BGRValue;

The standard order red=0, green=1, blue=2 is the default. There are three possibilities to access the color values: accessor functions (red(), green(), blue()), index operator (operator[](dx), where the rgb[RED_IDX] returns red etc.) and iterator (STL-compatible random access iterator that references the three colors in turn). The latter two methods, together with the necessary embedded typedefs, ensure compatibility of a RGBValue with a STL vector.

Arithmetic operations are defined as component-wise applications of these operations. Addition, subtraction, and multiplication of two RGBValues (+=, -=, *=, +, -, *, unary -), multiplication and division of an RGBValue with a double, and NumericTraits/PromoteTraits are defined, so that RGBValue fulfills the requirements of a Linear Algebra.

A number of accessors are provided that support access to RGBValues as a whole, to a selected color component, or to the luminance value.

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

Examples:
graph_agglomerative_clustering.cxx, invert.cxx, invert_explicitly.cxx, invert_tutorial.cxx, palette.cxx, resize.cxx, and smooth_explicitly.cxx.

Member Typedef Documentation

typedef Base::value_type value_type

STL-compatible definition of valuetype

typedef Base::iterator iterator

STL-compatible definition of iterator

typedef Base::const_iterator const_iterator

STL-compatible definition of const iterator

typedef Base::SquaredNormType SquaredNormType

squared norm type (result of squaredManitude())

typedef Base::NormType NormType

norm type (result of magnitude())

Member Enumeration Documentation

anonymous enum

Color index positions

Constructor & Destructor Documentation

RGBValue ( value_type  first,
value_type  second,
value_type  third 
)

Construct from explicit color values. first, second, third are written in this order, irrespective of how the color indices are specified.

RGBValue ( value_type  gray)

Construct gray value.

RGBValue ( const_pointer  i)
explicit

Copy from raw memory. The order is preserved, irrespective of how the color indices are specified.

RGBValue ( const_pointer  i,
ReverseCopyTag  reverse 
)

Construct by reverse copying from raw memory.

RGBValue ( )

Default constructor (sets all components to 0)

RGBValue ( RGBValue< U, R, G, B > const &  r)

Copy constructor.

RGBValue ( TinyVector< value_type, 3 > const &  r)

construct from TinyVector

Member Function Documentation

RGBValue& operator= ( RGBValue< U, R, G, B > const &  r)

Copy assignment.

RGBValue& operator= ( TinyVector< value_type, 3 > const &  r)

assign TinyVector.

RGBValue operator- ( ) const

Unary negation (construct RGBValue with negative values)

value_type& red ( )

Access red component.

value_type& green ( )

Access green component.

value_type& blue ( )

Access blue component.

value_type const& red ( ) const

Get red component.

value_type const& green ( ) const

Get green component.

value_type const& blue ( ) const

Get blue component.

value_type luminance ( ) const

Calculate luminance.

NormType magnitude ( ) const

Calculate magnitude.

SquaredNormType squaredMagnitude ( ) const

Calculate squared magnitude.

void setRed ( value)

Set red component. The type V of the passed in value is automatically converted to VALUETYPE.

void setGreen ( value)

Set green component.The type V of the passed in value is automatically converted to VALUETYPE.

void setBlue ( value)

Set blue component.The type V of the passed in value is automatically converted to VALUETYPE.


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

© 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)