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.


Protected Member Functions

void make_set (const point_type &x)
 Make a new component from a point.
  • x Root of the component.


void link (const point_type &x, const point_type &y)
 link two components
  • x A point of the first component.
  • y A point of the second component.


point_type find_root (const point_type &x)
 find the root of a component.
  • x A point of the 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
  • n A point of the first component.
  • p A point of the second component.



Static Protected Member Functions

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

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
  • is_closing Choose between closing and opening.
  • input Input image.
  • ng Neighborhood to use.
  • lambda Threshold.
  • env Environment.


The documentation for this struct was generated from the following files:
Generated on Thu Apr 15 20:17:01 2004 for Olena by doxygen 1.3.6-20040222