$extrastylesheet
Olena  User documentation 2.1
An Image Processing Platform
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
mln::labeled_image_base< I, E > Class Template Reference

#include <mln/core/internal/labeled_image_base.hh>

Public Member Functions

const bbox_tbbox (const typename I::value &label) const
const util::array< bbox_t > & bboxes () const
mln::metal::const_< const I >
::ret
delegatee_ () const
const I * delegatee_ ()
void destroy ()
const const I::domain_t & domain () const
bool has (const psite &p) const
bool has (const typename const I::psite &p) const
bool is_valid () const
I::value nlabels () const
std::size_t nsites () const
rvalue operator() (const typename I::domain_t::psite &p) const
lvalue operator() (const typename I::domain_t::psite &p)
E & rw ()
p_if< mln_box(I),
fun::eq_v2b_expr_< pw::value_
< I >, pw::cst_< typename
I::value > > > 
subdomain (const typename I::value &label) const
const I & unmorph_ ()
mln::metal::const_< const I >
::ret
unmorph_ () const
const t_eligible_values_setvalues_eligible () const
const t_values_spacevalues_space () const
Constructors.
 labeled_image_base ()
Relabel according to a function.

Merge or delete labels according to the given function.

These methods ensure that the labeling remains contiguous.

template<typename F >
void relabel (const Function_v2v< F > &f)
template<typename F >
void relabel (const Function_v2b< F > &f)

Protected Member Functions

template<typename F >
void relabel_ (const Function_v2v< F > &f)
template<typename F >
void relabel_ (const Function_v2b< F > &f)
void update_data (const fun::i2v::array< typename I::value > &relabel_fun)
Methods called during relabeling.
void init_update_data_ ()
void prepare_update_data_ (const typename I::value &lbl, const typename I::value &new_lbl)
void update_data_ (const fun::i2v::array< typename I::value > &relabel_fun)

Protected Attributes

mln::util::tracked_ptr
< internal::data< E > > 
data_

Public Types

typedef accu::shape::bbox
< typename I::psite >::result 
bbox_t
typedef I::domain_t::bkd_piter bkd_piter
typedef Image< void > category
typedef const I delegatee
typedef I::domain_t domain_t
typedef E exact_t
typedef I::domain_t::fwd_piter fwd_piter
typedef
internal::morpher_lvalue_
< const I >::ret 
lvalue
typedef fwd_piter piter
typedef I::domain_t::psite psite
typedef const I::rvalue rvalue
typedef I::domain_t::site site
typedef mln::value::set< const
I::value > 
t_eligible_values_set
typedef mln::value::set
< typename
mln::value::super_value< const
I::value >::ret
t_values_space
typedef const I unmorph
typedef const I::value value

Detailed Description

template<typename I, typename E>
class mln::labeled_image_base< I, E >

Base class Morpher providing an improved interface for labeled image.

Template Parameters
IThe label image type.

This image type allows to access every site set at a given label.

This image type guaranties that labels are contiguous (from 1 to n).

Definition at line 118 of file labeled_image_base.hh.

Constructor & Destructor Documentation

template<typename I, typename E>
mln::labeled_image_base< I, E >::labeled_image_base ( )

Constructor without argument.

Member Function Documentation

template<typename I, typename E>
const bbox_t& mln::labeled_image_base< I, E >::bbox ( const typename I::value &  label) const

Return the bounding box of the component label.

template<typename I, typename E>
const util::array<bbox_t>& mln::labeled_image_base< I, E >::bboxes ( ) const

Return the component bounding boxes.

mln::metal::const_< const I >::ret* mln::internal::image_morpher< const I , const I::value , I::domain_t , E >::delegatee_ ( ) const
inherited

INTERNAL_API Return the delegatee_ pointer; default code.

const I * mln::internal::image_morpher< const I , const I::value , I::domain_t , E >::delegatee_ ( )
inherited

Return the delegatee_ pointer (non-const version); default code.

void mln::internal::image_base< const I::value , I::domain_t , E >::destroy ( )
inherited

Detach data from an image (free it if nobody else hold it).

const const I ::domain_t& mln::internal::image_identity< const I , I::domain_t , E >::domain ( ) const
inherited
bool mln::internal::image_base< const I::value , I::domain_t , E >::has ( const psite p) const
inherited

Test if p belongs to the image domain.

bool mln::internal::image_identity< const I , I::domain_t , E >::has ( const typename const I ::psite p) const
inherited
template<typename I, typename E>
void mln::labeled_image_base< I, E >::init_update_data_ ( )
protected
bool mln::internal::image_morpher< const I , const I::value , I::domain_t , E >::is_valid ( ) const
inherited

Test if this image has been initialized; default impl.

Reimplemented from mln::internal::image_base< const I::value, I::domain_t, E >.

template<typename I, typename E>
I ::value mln::labeled_image_base< I, E >::nlabels ( ) const

Return the number of labels;.

std::size_t mln::internal::image_base< const I::value , I::domain_t , E >::nsites ( ) const
inherited

Give the number of sites of the image domain.

rvalue mln::internal::image_identity< const I , I::domain_t , E >::operator() ( const typename I::domain_t ::psite p) const
inherited

Read-only access of pixel value at point site p.

lvalue mln::internal::image_identity< const I , I::domain_t , E >::operator() ( const typename I::domain_t ::psite p)
inherited

Read-write access of pixel value at point site p.

template<typename I, typename E>
void mln::labeled_image_base< I, E >::prepare_update_data_ ( const typename I::value &  lbl,
const typename I::value &  new_lbl 
)
protected
template<typename I, typename E>
template<typename F >
void mln::labeled_image_base< I, E >::relabel ( const Function_v2v< F > &  f)
template<typename I, typename E>
template<typename F >
void mln::labeled_image_base< I, E >::relabel ( const Function_v2b< F > &  f)

Labels may be removed.

This overload make sure the labeling is still contiguous.

template<typename I, typename E>
template<typename F >
void mln::labeled_image_base< I, E >::relabel_ ( const Function_v2v< F > &  f)
protected
template<typename I, typename E>
template<typename F >
void mln::labeled_image_base< I, E >::relabel_ ( const Function_v2b< F > &  f)
protected
E& mln::internal::image_morpher< const I , const I::value , I::domain_t , E >::rw ( )
inherited

State that the morpher is writable.

This allows for C++ to use it as a mutable object even if it is a temporary object.

template<typename I, typename E>
p_if<mln_box(I), fun::eq_v2b_expr_<pw::value_<I>, pw::cst_<typename I ::value> > > mln::labeled_image_base< I, E >::subdomain ( const typename I::value &  label) const

Return the domain of the component with label label.

const I & mln::internal::image_morpher< const I , const I::value , I::domain_t , E >::unmorph_ ( )
inherited

INTERNAL_API Give the morphed image (mutable version).

mln::metal::const_< const I >::ret& mln::internal::image_morpher< const I , const I::value , I::domain_t , E >::unmorph_ ( ) const
inherited

Give the morphed image (const version).

template<typename I, typename E>
void mln::labeled_image_base< I, E >::update_data ( const fun::i2v::array< typename I::value > &  relabel_fun)
protected

Update bounding boxes information.

template<typename I, typename E>
void mln::labeled_image_base< I, E >::update_data_ ( const fun::i2v::array< typename I::value > &  relabel_fun)
protected
const t_eligible_values_set& mln::internal::image_base< const I::value , I::domain_t , E >::values_eligible ( ) const
inherited
const t_values_space& mln::internal::image_base< const I::value , I::domain_t , E >::values_space ( ) const
inherited

Return the value space of the image.

Member Data Documentation

mln::util::tracked_ptr< internal::data<E> > mln::internal::image_base< const I::value , I::domain_t , E >::data_
protectedinherited

INTERNAL_API Internal data, sharable by several images.

Definition at line 176 of file core/internal/image_base.hh.

Member Typedef Documentation

template<typename I, typename E>
typedef accu::shape::bbox<typename I ::psite>::result mln::labeled_image_base< I, E >::bbox_t

Type of the bounding component bounding boxes.

Definition at line 126 of file labeled_image_base.hh.

typedef I::domain_t ::bkd_piter mln::internal::image_base< const I::value , I::domain_t , E >::bkd_piter
inherited

Backward Site_Iterator associated type.

Definition at line 122 of file core/internal/image_base.hh.

template<typename E>
typedef Image<void> mln::Image< E >::category
inherited

Definition at line 78 of file core/concept/image.hh.

typedef const I mln::internal::image_morpher< const I , const I::value , I::domain_t , E >::delegatee
inherited

Delegatee associated type.

Definition at line 60 of file image_morpher.hh.

typedef I::domain_t mln::internal::image_base< const I::value , I::domain_t , E >::domain_t
inherited

Site_Set associated type.

Definition at line 109 of file core/internal/image_base.hh.

template<typename E>
typedef E mln::Object< E >::exact_t
inherited

Definition at line 105 of file object.hh.

typedef I::domain_t ::fwd_piter mln::internal::image_base< const I::value , I::domain_t , E >::fwd_piter
inherited

Forward Site_Iterator associated type.

Definition at line 119 of file core/internal/image_base.hh.

typedef internal::morpher_lvalue_< const I >::ret mln::internal::image_identity< const I , I::domain_t , E >::lvalue
inherited

Return type of read-write access.

Definition at line 143 of file image_identity.hh.

typedef fwd_piter mln::internal::image_base< const I::value , I::domain_t , E >::piter
inherited

Site_Iterator associated type; default definition is fwd_piter.

Definition at line 127 of file core/internal/image_base.hh.

typedef I::domain_t ::psite mln::internal::image_base< const I::value , I::domain_t , E >::psite
inherited

Point_Site associated type.

Definition at line 112 of file core/internal/image_base.hh.

typedef const I ::rvalue mln::internal::image_identity< const I , I::domain_t , E >::rvalue
inherited

Return type of read-only access.

Definition at line 140 of file image_identity.hh.

typedef I::domain_t ::site mln::internal::image_base< const I::value , I::domain_t , E >::site
inherited

Site associated type.

Definition at line 115 of file core/internal/image_base.hh.

typedef mln::value::set<const I::value > mln::internal::image_base< const I::value , I::domain_t , E >::t_eligible_values_set
inherited

Eligible-value-set associated type.

Definition at line 95 of file core/internal/image_base.hh.

typedef mln::value::set< typename mln::value::super_value<const I::value >::ret > mln::internal::image_base< const I::value , I::domain_t , E >::t_values_space
inherited

Value space associated type.

Definition at line 102 of file core/internal/image_base.hh.

typedef const I mln::internal::image_morpher< const I , const I::value , I::domain_t , E >::unmorph
inherited

Unmorph image associated type.

Definition at line 72 of file image_morpher.hh.

typedef const I ::value mln::internal::image_identity< const I , I::domain_t , E >::value
inherited

Value associated type.

Definition at line 137 of file image_identity.hh.