Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members  

Basic_color< RGB_converter > Class Template Reference

#include <color.h>

List of all members.

Public Types

typedef RGB_converter::component_type component_type
typedef component_type distance_type
typedef RGB_converter converter_type

Public Methods

 Basic_color ()
 Basic_color (const char r, const char g, const char b)
 Basic_color (const float r, const float g, const float b)
 Basic_color (const double r, const double g, const double b)
 Basic_color (const Basic_color< RGB_converter > &c)
Basic_color< RGB_converter > & operator= (const Basic_color< RGB_converter > &c)
bool operator== (const Basic_color< RGB_converter > &c) const
bool operator!= (const Basic_color< RGB_converter > &c) const
bool is_not_a_color () const
 Test if the color is not initialzed.

void write_to_bytes (std::ostream &out) const
 Write the color in a binary format to a stream.

void read_from_bytes (std::istream &in)
 Read the color in a binary format from a stream.

void get_RGB (char *const r, char *const g, char *const b) const
 Return the RGB components.

void get_RGB (float *const r, float *const g, float *const b) const
 Return the RGB components.

void get_RGB (double *const r, double *const g, double *const b) const
 Return the RGB components.

void get_space_position (component_type *const x_space, component_type *const y_space, component_type *const z_space) const
 Return the 3D position in the color space.

template<typename Space_vector> void get_space_position (Space_vector *const space_vector) const
void set_space_position (const component_type x_space, const component_type y_space, const component_type z_space)
 Change the 3D position in the color space.

template<typename Space_vector> void set_space_position (const Space_vector &space_vector)

Static Public Methods

distance_type square_distance (const Basic_color< RGB_converter > &c1, const Basic_color< RGB_converter > &c2)
 Compute the square distance in the color space.

distance_type distance (const Basic_color< RGB_converter > &c1, const Basic_color< RGB_converter > &c2)
 Compute the distance in the color space.

void main_conversion_output (std::ostream &out=std::cout)
void cycle (const double alpha, Basic_color< RGB_converter > *const result, const Basic_color< RGB_converter > &clr_0=red, const Basic_color< RGB_converter > &clr_1=blue, const Basic_color< RGB_converter > &clr_2=yellow, const Basic_color< RGB_converter > &clr_3=magenta)
template<typename Basic_color_iterator> void mean (Basic_color_iterator first, Basic_color_iterator last, Basic_color< RGB_converter > *const result)
 Compute the mean color of a color set.

template<typename Basic_color_iterator, typename Weight_iterator> void mean (Basic_color_iterator first_clr, Basic_color_iterator last_clr, Weight_iterator first_w, Weight_iterator last_w, Basic_color< RGB_converter > *const result)
 Compute the mean color of a color set.

template<typename Basic_color_iterator> void robust_mean (Basic_color_iterator first, Basic_color_iterator last, Basic_color< RGB_converter > *const result, const unsigned int n_iter=1)
 Compute a robust mean of a color set. The colors whose distance to the mean is over the standard deviation are discarded.

template<typename Basic_color_iterator, typename Weight_iterator> void robust_mean (Basic_color_iterator first_clr, Basic_color_iterator last_clr, Weight_iterator first_w, Weight_iterator last_w, Basic_color< RGB_converter > *const result, const unsigned int n_iter=1)
 Compute a robust mean of a color set. The colors whose distance to the mean is over the standard deviation are discarded.

template<typename Basic_color_iterator> distance_type square_deviation (const Basic_color_iterator first, const Basic_color_iterator last)
 Compute the variance of color set.

template<typename Basic_color_iterator> distance_type square_deviation (const Basic_color_iterator first, const Basic_color_iterator last, Basic_color< RGB_converter > *const mean_color)
 Compute the variance of color set.


Static Public Attributes

const Basic_color< RGB_converter > black
 Predefined color.

const Basic_color< RGB_converter > grey
 Predefined color.

const Basic_color< RGB_converter > white
 Predefined color.

const Basic_color< RGB_converter > red
 Predefined color.

const Basic_color< RGB_converter > green
 Predefined color.

const Basic_color< RGB_converter > blue
 Predefined color.

const Basic_color< RGB_converter > cyan
 Predefined color.

const Basic_color< RGB_converter > magenta
 Predefined color.

const Basic_color< RGB_converter > yellow
 Predefined color.


Friends

std::ostream & operator (std::ostream &s, const Basic_color< RGB_converter > &c)
 "ASCII" output


Detailed Description

template<typename RGB_converter>
class Basic_color< RGB_converter >

An object with the following functions must provided: The coordinate type must also be given (float by default).


Member Typedef Documentation

template<typename RGB_converter>
typedef RGB_converter::component_type Basic_color< RGB_converter >::component_type
 

template<typename RGB_converter>
typedef RGB_converter Basic_color< RGB_converter >::converter_type
 

template<typename RGB_converter>
typedef component_type Basic_color< RGB_converter >::distance_type
 


Constructor & Destructor Documentation

template<typename RGB_converter>
Basic_color< RGB_converter >::Basic_color  
 

template<typename RGB_converter>
Basic_color< RGB_converter >::Basic_color const char    r,
const char    g,
const char    b
 

template<typename RGB_converter>
Basic_color< RGB_converter >::Basic_color const float    r,
const float    g,
const float    b
 

template<typename RGB_converter>
Basic_color< RGB_converter >::Basic_color const double    r,
const double    g,
const double    b
 

template<typename RGB_converter>
Basic_color< RGB_converter >::Basic_color const Basic_color< RGB_converter > &    c
 


Member Function Documentation

template<typename RGB_converter>
void Basic_color< RGB_converter >::cycle const double    alpha,
Basic_color< RGB_converter > *const    result,
const Basic_color< RGB_converter > &    clr_0 = red,
const Basic_color< RGB_converter > &    clr_1 = blue,
const Basic_color< RGB_converter > &    clr_2 = yellow,
const Basic_color< RGB_converter > &    clr_3 = magenta
[static]
 

template<typename RGB_converter>
Basic_color< RGB_converter >::distance_type Basic_color< RGB_converter >::distance const Basic_color< RGB_converter > &    c1,
const Basic_color< RGB_converter > &    c2
[inline, static]
 

Compute the distance in the color space.

Slower than square_distance(). Use sqrtf() to be improved for 'double'.

template<typename RGB_converter>
void Basic_color< RGB_converter >::get_RGB double *const    r,
double *const    g,
double *const    b
const [inline]
 

Return the RGB components.

template<typename RGB_converter>
void Basic_color< RGB_converter >::get_RGB float *const    r,
float *const    g,
float *const    b
const [inline]
 

Return the RGB components.

template<typename RGB_converter>
void Basic_color< RGB_converter >::get_RGB char *const    r,
char *const    g,
char *const    b
const [inline]
 

Return the RGB components.

template<typename RGB_converter>
template<typename Space_vector>
void Basic_color< RGB_converter >::get_space_position Space_vector *const    space_vector const [inline]
 

Be careful : (x,y,z) do not always correspond to the 3 classical color components.

Space_vector must implement a operator[] and a typedef value_type.

template<typename RGB_converter>
void Basic_color< RGB_converter >::get_space_position component_type *const    x_space,
component_type *const    y_space,
component_type *const    z_space
const [inline]
 

Return the 3D position in the color space.

Be careful: (x,y,z) does not always correspond to the 3 parameters of the color in HSV.

template<typename RGB_converter>
bool Basic_color< RGB_converter >::is_not_a_color   [inline]
 

Test if the color is not initialzed.

template<typename RGB_converter>
void Basic_color< RGB_converter >::main_conversion_output std::ostream &    out = std::cout [static]
 

Display the main colors noth in RGB and the color space coordinate system. Mainly a debug tool.

template<typename RGB_converter>
template<typename Basic_color_iterator, typename Weight_iterator>
void Basic_color< RGB_converter >::mean Basic_color_iterator    first_clr,
Basic_color_iterator    last_clr,
Weight_iterator    first_w,
Weight_iterator    last_w,
Basic_color< RGB_converter > *const    result
[static]
 

Compute the mean color of a color set.

template<typename RGB_converter>
template<typename Basic_color_iterator>
void Basic_color< RGB_converter >::mean Basic_color_iterator    first,
Basic_color_iterator    last,
Basic_color< RGB_converter > *const    result
[static]
 

Compute the mean color of a color set.

template<typename RGB_converter>
bool Basic_color< RGB_converter >::operator!= const Basic_color< RGB_converter > &    c const [inline]
 

template<typename RGB_converter>
Basic_color< RGB_converter > & Basic_color< RGB_converter >::operator= const Basic_color< RGB_converter > &    c [inline]
 

template<typename RGB_converter>
bool Basic_color< RGB_converter >::operator== const Basic_color< RGB_converter > &    c const [inline]
 

template<typename RGB_converter>
void Basic_color< RGB_converter >::read_from_bytes std::istream &    in [inline]
 

Read the color in a binary format from a stream.

template<typename RGB_converter>
template<typename Basic_color_iterator, typename Weight_iterator>
void Basic_color< RGB_converter >::robust_mean Basic_color_iterator    first_clr,
Basic_color_iterator    last_clr,
Weight_iterator    first_w,
Weight_iterator    last_w,
Basic_color< RGB_converter > *const    result,
const unsigned int    n_iter = 1
[static]
 

Compute a robust mean of a color set. The colors whose distance to the mean is over the standard deviation are discarded.

template<typename RGB_converter>
template<typename Basic_color_iterator>
void Basic_color< RGB_converter >::robust_mean Basic_color_iterator    first,
Basic_color_iterator    last,
Basic_color< RGB_converter > *const    result,
const unsigned int    n_iter = 1
[static]
 

Compute a robust mean of a color set. The colors whose distance to the mean is over the standard deviation are discarded.

template<typename RGB_converter>
template<typename Space_vector>
void Basic_color< RGB_converter >::set_space_position const Space_vector &    space_vector [inline]
 

See get_space_position().

template<typename RGB_converter>
void Basic_color< RGB_converter >::set_space_position const component_type    x_space,
const component_type    y_space,
const component_type    z_space
[inline]
 

Change the 3D position in the color space.

template<typename RGB_converter>
template<typename Basic_color_iterator>
Basic_color< RGB_converter >::distance_type Basic_color< RGB_converter >::square_deviation const Basic_color_iterator    first,
const Basic_color_iterator    last,
Basic_color< RGB_converter > *const    mean_color
[static]
 

Compute the variance of color set.

template<typename RGB_converter>
template<typename Basic_color_iterator>
Basic_color< RGB_converter >::distance_type Basic_color< RGB_converter >::square_deviation const Basic_color_iterator    first,
const Basic_color_iterator    last
[inline, static]
 

Compute the variance of color set.

template<typename RGB_converter>
Basic_color< RGB_converter >::distance_type Basic_color< RGB_converter >::square_distance const Basic_color< RGB_converter > &    c1,
const Basic_color< RGB_converter > &    c2
[inline, static]
 

Compute the square distance in the color space.

template<typename RGB_converter>
void Basic_color< RGB_converter >::write_to_bytes std::ostream &    out const [inline]
 

Write the color in a binary format to a stream.


Friends And Related Function Documentation

template<typename RGB_converter>
std::ostream& operator std::ostream &    s,
const Basic_color< RGB_converter > &    c
[friend]
 

"ASCII" output


Member Data Documentation

template<typename RGB_converter>
const Basic_color< RGB_converter > Basic_color< RGB_converter >::black [static]
 

Predefined color.

template<typename RGB_converter>
const Basic_color< RGB_converter > Basic_color< RGB_converter >::blue [static]
 

Predefined color.

template<typename RGB_converter>
const Basic_color< RGB_converter > Basic_color< RGB_converter >::cyan [static]
 

Predefined color.

template<typename RGB_converter>
const Basic_color< RGB_converter > Basic_color< RGB_converter >::green [static]
 

Predefined color.

template<typename RGB_converter>
const Basic_color< RGB_converter > Basic_color< RGB_converter >::grey [static]
 

Predefined color.

template<typename RGB_converter>
const Basic_color< RGB_converter > Basic_color< RGB_converter >::magenta [static]
 

Predefined color.

template<typename RGB_converter>
const Basic_color< RGB_converter > Basic_color< RGB_converter >::red [static]
 

Predefined color.

template<typename RGB_converter>
const Basic_color< RGB_converter > Basic_color< RGB_converter >::white [static]
 

Predefined color.

template<typename RGB_converter>
const Basic_color< RGB_converter > Basic_color< RGB_converter >::yellow [static]
 

Predefined color.


The documentation for this class was generated from the following file:
Generated on Fri Aug 20 15:03:52 2004 by doxygen1.2.18