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

lti::edgeSaliency Class Reference

A class for edge based strcutural saliency calculations. More...

#include <ltiEdgeSaliency.h>

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

List of all members.

Classes

class  parameters
 the parameters for the class edgeSaliency More...

Public Member Functions

 edgeSaliency ()
 edgeSaliency (const edgeSaliency &other)
virtual ~edgeSaliency ()
virtual const char * getTypeName () const
bool apply (channel8 &srcdest) const
bool apply (channel &srcdest) const
bool apply (const channel8 &src, channel8 &dest) const
bool apply (const channel &src, channel &dest) const
virtual bool apply (const channel8 &src, channel &dest) const
edgeSaliencycopy (const edgeSaliency &other)
virtual functorclone () const
const parametersgetParameters () const

Detailed Description

A class for edge based strcutural saliency calculations.

Structural Saliency as proposed by A. Shashua and S. Ullman extracts salient information out of edge images. A salient structure in our terms is a long line of pixels with low curvation. This modifier can be used to produce input data for a feature map as well as a preprocessing stage for further segmentation. The methods work on binary (!) edge maps (lti::channel or lti::channel8), where a white pixel should mark an edge point and a black pixel is part of the background. Edge data like that can be generated by the edge detectors lti::susanEdges or lti::cannyEdges. The behaviour of the edgeSaliency methods can be controled by 8 parameters in a very wide range, where the optimal values have to be adapted to the actual problem.

For more information see A. Shashua, S.Ullman 1988: Structural Saliency, Proceedings of the international conference on Computer Vision, 482-488 (ISBN 0-8186-0883-8)

Usage:

  // ---- preparations to obtain binary edges --- //

  lti::splitImageToRGB rgb;
  lti::channel8 R, G, B, edges;
  lti::image theimage;

  // load an image
  ...

  // rgb or any other channel split
  rgb.apply(theimage, R, G, B);


  lti::susanEdges susanedge;
  lti::susanEdges::parameters edgeparams;

  edgeparams.gamma = 10;
  susanedge.setParameters(edgeparams);

  // extract binary edges from red channel
  susanedge.apply(R, edges);

  // --- actual saliency part --- //

  lti::edgeSaliency sal;
  lti::channel salmap;
  lti::edgeSaliency::parameters salparam;

  salparam.iterations = 20;
  salparam.couplingCenter = 0.2;
  salparam.couplingNeighbour = 0.0;
  salparam.rho = 0.6;
  salparam.initialSigma = 1.0;
  salparam.gamma = 0.5;
  salparam.curvationTable=lti::edgeSaliency::parameters::biased;

  sal.setParameters(salparam);

  sal.apply(edges, salmap);

  // ready. the saliency map is in salmap now.

Constructor & Destructor Documentation

lti::edgeSaliency::edgeSaliency (  ) 

default constructor

lti::edgeSaliency::edgeSaliency ( const edgeSaliency other  ) 

copy constructor

Parameters:
other the object to be copied
virtual lti::edgeSaliency::~edgeSaliency (  )  [virtual]

destructor


Member Function Documentation

virtual bool lti::edgeSaliency::apply ( const channel8 src,
channel dest 
) const [virtual]

Applies strcuctural saliency computation on-copy.

This is the fastest method, since all other apply members refer to this method using additional casts or copy operations!

Parameters:
src channel8 with the source data (binary edges, black background)
dest channel8 where the result will be left.
Returns:
true if successful, false otherwise.
bool lti::edgeSaliency::apply ( const channel src,
channel dest 
) const [virtual]

Applies strcuctural saliency computation on-copy.

Parameters:
src channel8 with the source data (binary edges, black background)
dest channel where the result will be left.
Returns:
true if successful, false otherwise.

Reimplemented from lti::modifier.

bool lti::edgeSaliency::apply ( const channel8 src,
channel8 dest 
) const [virtual]

Applies strcuctural saliency computation on-copy.

Parameters:
src channel8 with the source data (binary edges, black background).
dest channel8 where the result will be left.
Returns:
true if successful, false otherwise.

Reimplemented from lti::modifier.

bool lti::edgeSaliency::apply ( channel srcdest  )  const [virtual]

Applies structural saliency computation on-place.

Parameters:
srcdest channel8 with the source data (binary edges, black bakcground!).The result will be left here too.
Returns:
true if successful, false otherwise.

Reimplemented from lti::modifier.

bool lti::edgeSaliency::apply ( channel8 srcdest  )  const [virtual]

Applies structural saliency computation on-place.

Parameters:
srcdest channel8 with the source data (binary edges, black bakcground!).The result will be left here too.
Returns:
true if successful, false otherwise.

Reimplemented from lti::modifier.

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

returns a pointer to a clone of the functor.

Implements lti::functor.

edgeSaliency& lti::edgeSaliency::copy ( const edgeSaliency other  ) 

copy data of "other" functor.

Reimplemented from lti::functor.

const parameters& lti::edgeSaliency::getParameters (  )  const

returns used parameters

Reimplemented from lti::modifier.

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

returns the name of this type ("edgeSaliency")

Reimplemented from lti::modifier.


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

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