LTI-Lib latest version v1.9 - last update 10 Apr 2010

lti::splitImageToGSL Class Reference
[Color Analysis]

Split image in its l1, l2 and l3 components, as described in T. More...

#include <ltiSplitImageToGSL.h>

Inheritance diagram for lti::splitImageToGSL:
Inheritance graph
[legend]
Collaboration diagram for lti::splitImageToGSL:
Collaboration graph
[legend]

List of all members.

Public Member Functions

virtual const char * getTypeName () const
virtual functorclone () const
virtual bool apply (const image &img, channel &l1, channel &l2, channel &l3) const
virtual bool apply (const image &img, channel8 &l1, channel8 &l2, channel8 &l3) const
virtual bool apply (const rgbPixel &pixel, float &l1, float &l2, float &l3) const
virtual bool apply (const rgbPixel &pixel, ubyte &l1, ubyte &l2, ubyte &l3) const
virtual bool getFirst (const image &img, channel &l1) const
virtual bool getFirst (const image &img, channel8 &l1) const
virtual bool getSecond (const image &img, channel &l2) const
virtual bool getSecond (const image &img, channel8 &l2) const
virtual bool getThird (const image &img, channel &l3) const
virtual bool getThird (const image &img, channel8 &l3) const

Detailed Description

Split image in its l1, l2 and l3 components, as described in T.

Gevers and A. Smeulders "Color-based object recognition" Pattern Recognition, Vol. 32, 1999, pp. 453-464.

This color space is appropriate when trying to detect only material changes, but ignoring shadow, shape or highlight edges.

The channels are defined as follows:

\[ \begin{aligned} l_1 &= \frac{|R-G|}{|R-G| + |R-B| + |G-B|}\\ l_2 &= \frac{|R-B|}{|R-G| + |R-B| + |G-B|}\\ l_3 &= \frac{|G-B|}{|R-G| + |R-B| + |G-B|} \end{aligned} \]

There is no merge functor for this split method.


Member Function Documentation

virtual bool lti::splitImageToGSL::apply ( const rgbPixel pixel,
ubyte l1,
ubyte l2,
ubyte l3 
) const [virtual]

split the pixel in red green and blue values.

The values of each pixel will be between 0 and 255

Parameters:
pixel the pixel to be splitted
l1 first channel
l2 second channel
l3 third channel

Implements lti::splitImage.

virtual bool lti::splitImageToGSL::apply ( const rgbPixel pixel,
float &  l1,
float &  l2,
float &  l3 
) const [virtual]

split the pixel in red green and blue values.

The values of each pixel will be between 0.0f and 1.0f

Parameters:
pixel the pixel to be splitted
l1 first channel
l2 second channel
l3 third channel

Implements lti::splitImage.

virtual bool lti::splitImageToGSL::apply ( const image img,
channel8 l1,
channel8 l2,
channel8 l3 
) const [virtual]

split the image in red green and blue channels.

The values of each pixel will be between 0 and 255

Parameters:
img the image to be splitted
l1 first channel
l2 second channel
l3 third channel

Implements lti::splitImage.

virtual bool lti::splitImageToGSL::apply ( const image img,
channel l1,
channel l2,
channel l3 
) const [virtual]

split the image in red green and blue channels.

The values of each pixel will be between 0.0f and 1.0f

Parameters:
img the image to be splitted
l1 first channel
l2 second channel
l3 third channel

Implements lti::splitImage.

virtual functor* lti::splitImageToGSL::clone (  )  const [virtual]

returns a pointer to a clone of the functor.

Implements lti::functor.

virtual bool lti::splitImageToGSL::getFirst ( const image img,
channel8 l1 
) const [virtual]

Returns the first of the three channels into which the image is split.

If you need only one channel, this might be faster than calling apply().

Parameters:
img the source image
l1 the extracted channel

Reimplemented from lti::splitImage.

virtual bool lti::splitImageToGSL::getFirst ( const image img,
channel l1 
) const [virtual]

Returns the first of the three channels into which the image is split.

If you need only one channel, this might be faster than calling apply().

Parameters:
img the source image
l1 the extracted channel

Reimplemented from lti::splitImage.

virtual bool lti::splitImageToGSL::getSecond ( const image img,
channel8 l2 
) const [virtual]

Returns the second of the three channels into which the image is split.

If you need only one channel, this might be faster than calling apply().

Parameters:
img the source image
l2 the extracted channel

Reimplemented from lti::splitImage.

virtual bool lti::splitImageToGSL::getSecond ( const image img,
channel l2 
) const [virtual]

Returns the second of the three channels into which the image is split.

If you need only one channel, this might be faster than calling apply().

Parameters:
img the source image
l2 the extracted channel

Reimplemented from lti::splitImage.

virtual bool lti::splitImageToGSL::getThird ( const image img,
channel8 l3 
) const [virtual]

Returns the third of the three channels into which the image is split.

If you need only one channel, this might be faster than calling apply().

Parameters:
img the source image
l3 the extracted channel

Reimplemented from lti::splitImage.

virtual bool lti::splitImageToGSL::getThird ( const image img,
channel l3 
) const [virtual]

Returns the third of the three channels into which the image is split.

If you need only one channel, this might be faster than calling apply().

Parameters:
img the source image
l3 the extracted channel

Reimplemented from lti::splitImage.

virtual const char* lti::splitImageToGSL::getTypeName (  )  const [virtual]

returns the name of this type

Reimplemented from lti::splitImage.


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

Generated on Sat Apr 10 15:27:53 2010 for LTI-Lib by Doxygen 1.6.1