oln::morpho::slow::f_tarjan_map< I, D, Env > Struct Template Reference

#include <attribute_closing_opening_map.hh>

Collaboration diagram for oln::morpho::slow::f_tarjan_map< I, D, Env >:

Collaboration graph
[legend]
List of all members.

Public Types

typedef abstract::non_vectorial_image<
I > 
input_type
 Image type (abstract).
typedef oln::mute< I >::ret img_type
 Image type (concrete).
typedef mlc::exact< input_type
>::ret::point_type 
point_type
 Associated point type.
typedef mlc::exact< input_type
>::ret::value_type 
value_type
 Value type fo the image.
typedef mute< input_type,
point_type >::ret 
parent_type
 Image of points.
typedef mute< input_type,
bool >::ret 
is_proc_type
 Image of bool.
typedef oln::morpho::attr::attr_traits<
D >::lambda_type 
lambda_type
 Threshold type.

Public Member Functions

template<class N>
 f_tarjan_map (bool is_closing, const input_type &input, const abstract::neighborhood< N > &ng, const lambda_type &lambda, const Env &env=Env())
 Perform an attribute opening/closing.
oln::mute< I >::ret res ()
 Return the result of the opening/closing.
template<class N>
 f_tarjan_map (bool is_closing, const typename f_tarjan_map< I, D, Env >::input_type &input, const abstract::neighborhood< N > &ng, const typename f_tarjan_map< I, D, Env >::lambda_type &lambda, const Env &env)

Protected Member Functions

void make_set (const point_type &x)
 Make a new component from a point.
void link (const point_type &x, const point_type &y)
 link two components
point_type find_root (const point_type &x)
 find the root of a component.
bool equiv (const point_type &x, const point_type &y) const
 check if two components are equivalent.
void do_union (const point_type &n, const point_type &p)
 link two components if they have to be linked

Static Protected Member Functions

static const point_type inactive ()
 Return the value of an inactive point.
static const point_type active ()
 Return the value of an active point.

Protected Attributes

const bool is_closing
 Do you want a closing or an openng ?
const input_typeinput
 Input image.
lambda_type lambda
 Trheshold.
parent_type parent
 Give a parent of a point.
is_proc_type is_proc
 Tell if a point has already been preceded.
img_type output
 Image to store the result.
std::map< point_type, D, oln::internal::default_less<
point_type > > 
auxdata
 Map to store attributes.
Env env
 The envronment.

Detailed Description

template<class I, class D, class Env = morpho::env::NullEnv>
struct oln::morpho::slow::f_tarjan_map< I, D, Env >

Attribute closing using map. Smaller memory usage, but slower computation than the attribute_closing_opening

See "Fast morphological attribute operations using Tarjan's union-find algorithm" by Michael H. F. Wilkinson and Jos B. T. M. Roerdink

Parameters:
I Image exact type.
D Attribute exact type.
Env Type of environment.

Definition at line 65 of file attribute_closing_opening_map.hh.


Constructor & Destructor Documentation

template<class I, class D, class Env = morpho::env::NullEnv>
template<class N>
oln::morpho::slow::f_tarjan_map< I, D, Env >::f_tarjan_map ( bool  is_closing,
const input_type input,
const abstract::neighborhood< N > &  ng,
const lambda_type lambda,
const Env &  env = Env() 
)

Perform an attribute opening/closing.

Parameters:
N Exact type of neighborhood


Member Function Documentation

template<class I, class D, class Env = morpho::env::NullEnv>
void oln::morpho::slow::f_tarjan_map< I, D, Env >::make_set ( const point_type x  )  [protected]

Make a new component from a point.

Referenced by oln::morpho::slow::f_tarjan_map< I, D, Env >::f_tarjan_map().

template<class I, class D, class Env = morpho::env::NullEnv>
void oln::morpho::slow::f_tarjan_map< I, D, Env >::link ( const point_type x,
const point_type y 
) [protected]

link two components

template<class I, class D, class Env = morpho::env::NullEnv>
point_type oln::morpho::slow::f_tarjan_map< I, D, Env >::find_root ( const point_type x  )  [protected]

find the root of a component.

template<class I, class D, class Env = morpho::env::NullEnv>
void oln::morpho::slow::f_tarjan_map< I, D, Env >::do_union ( const point_type n,
const point_type p 
) [protected]

link two components if they have to be linked

Referenced by oln::morpho::slow::f_tarjan_map< I, D, Env >::f_tarjan_map().


The documentation for this struct was generated from the following files:
Generated on Tue Feb 20 20:29:18 2007 for Olena by  doxygen 1.5.1