latest version v1.9 - last update 10 Apr 2010 |
A class for edge based strcutural saliency calculations. More...
#include <ltiEdgeSaliency.h>
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 |
edgeSaliency & | copy (const edgeSaliency &other) |
virtual functor * | clone () const |
const parameters & | getParameters () const |
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.
lti::edgeSaliency::edgeSaliency | ( | ) |
default constructor
lti::edgeSaliency::edgeSaliency | ( | const edgeSaliency & | other | ) |
copy constructor
other | the object to be copied |
virtual lti::edgeSaliency::~edgeSaliency | ( | ) | [virtual] |
destructor
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!
src | channel8 with the source data (binary edges, black background) | |
dest | channel8 where the result will be left. |
Applies strcuctural saliency computation on-copy.
src | channel8 with the source data (binary edges, black background) | |
dest | channel where the result will be left. |
Reimplemented from lti::modifier.
Applies strcuctural saliency computation on-copy.
src | channel8 with the source data (binary edges, black background). | |
dest | channel8 where the result will be left. |
Reimplemented from lti::modifier.
bool lti::edgeSaliency::apply | ( | channel & | srcdest | ) | const [virtual] |
Applies structural saliency computation on-place.
srcdest | channel8 with the source data (binary edges, black bakcground!).The result will be left here too. |
Reimplemented from lti::modifier.
bool lti::edgeSaliency::apply | ( | channel8 & | srcdest | ) | const [virtual] |
Applies structural saliency computation on-place.
srcdest | channel8 with the source data (binary edges, black bakcground!).The result will be left here too. |
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.