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

#include <mln/core/image/imorph/labeled_image.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
void init_ (const I &ima, const typename I::value &nlabels)
void init_from_ (const labeled_image< I > &model)
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)
labeled_image< I > & 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 ()
 labeled_image (const I &ima, const typename I::value &nlabels)
 labeled_image (const I &ima, const typename I::value &nlabels, const util::array< mln_box(I)> &bboxes)
Relabel according to a function.

Merge or delete labels according to the given function.

These methods ensure that the labeling remains contiguous.

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

Protected Member Functions

void relabel_ (const Function_v2v< F > &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
< labeled_image< I > > > 
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 labeled_image< I > 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 labeled_image
< tag::image_< I > > 
skeleton
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>
class mln::labeled_image< I >

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 108 of file labeled_image.hh.

Constructor & Destructor Documentation

template<typename I>
mln::labeled_image< I >::labeled_image ( )

Constructor without argument.

template<typename I>
mln::labeled_image< I >::labeled_image ( const I &  ima,
const typename I::value &  nlabels 
)

Constructor from an image ima and the number of labels nlabels.

template<typename I>
mln::labeled_image< I >::labeled_image ( const I &  ima,
const typename I::value &  nlabels,
const util::array< mln_box(I)> &  bboxes 
)

Constructor from an image ima, the number of labels nlabels and the object bounding boxes.

Member Function Documentation

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

Return the bounding box of the component label.

const util::array<bbox_t>& mln::labeled_image_base< I, labeled_image< I > >::bboxes ( ) const
inherited

Return the component bounding boxes.

mln::metal::const_< const I >::ret* mln::internal::image_morpher< const I , const I::value , I::domain_t , labeled_image< I > >::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 , labeled_image< I > >::delegatee_ ( )
inherited

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

void mln::internal::image_base< const I::value , I::domain_t , labeled_image< I > >::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 , labeled_image< I > >::domain ( ) const
inherited
bool mln::internal::image_base< const I::value , I::domain_t , labeled_image< I > >::has ( const psite p) const
inherited

Test if p belongs to the image domain.

bool mln::internal::image_identity< const I , I::domain_t , labeled_image< I > >::has ( const typename const I ::psite p) const
inherited
template<typename I>
void mln::labeled_image< I >::init_ ( const I &  ima,
const typename I::value &  nlabels 
)

INTERNAL_API Deferred initialization from a labeled image ima and the number of labels nlabels.

template<typename I>
void mln::labeled_image< I >::init_from_ ( const labeled_image< I > &  model)

Duplicate the underlying image and create a new labeled_image.

void mln::labeled_image_base< I, labeled_image< I > >::init_update_data_ ( )
protectedinherited
bool mln::internal::image_morpher< const I , const I::value , I::domain_t , labeled_image< I > >::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, labeled_image< I > >.

I ::value mln::labeled_image_base< I, labeled_image< I > >::nlabels ( ) const
inherited

Return the number of labels;.

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

Give the number of sites of the image domain.

rvalue mln::internal::image_identity< const I , I::domain_t , labeled_image< I > >::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 , labeled_image< I > >::operator() ( const typename I::domain_t ::psite p)
inherited

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

void mln::labeled_image_base< I, labeled_image< I > >::prepare_update_data_ ( const typename I::value &  lbl,
const typename I::value &  new_lbl 
)
protectedinherited
void mln::labeled_image_base< I, labeled_image< I > >::relabel ( const Function_v2v< F > &  f)
inherited
void mln::labeled_image_base< I, labeled_image< I > >::relabel ( const Function_v2b< F > &  f)
inherited

Labels may be removed.

This overload make sure the labeling is still contiguous.

void mln::labeled_image_base< I, labeled_image< I > >::relabel_ ( const Function_v2v< F > &  f)
protectedinherited
void mln::labeled_image_base< I, labeled_image< I > >::relabel_ ( const Function_v2b< F > &  f)
protectedinherited
labeled_image< I > & mln::internal::image_morpher< const I , const I::value , I::domain_t , labeled_image< I > >::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.

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

Return the domain of the component with label label.

const I & mln::internal::image_morpher< const I , const I::value , I::domain_t , labeled_image< I > >::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 , labeled_image< I > >::unmorph_ ( ) const
inherited

Give the morphed image (const version).

void mln::labeled_image_base< I, labeled_image< I > >::update_data ( const fun::i2v::array< typename I::value > &  relabel_fun)
protectedinherited

Update bounding boxes information.

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

Return the value space of the image.

Member Data Documentation

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

INTERNAL_API Internal data, sharable by several images.

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

Member Typedef Documentation

typedef accu::shape::bbox<typename I ::psite>::result mln::labeled_image_base< I, labeled_image< I > >::bbox_t
inherited

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 , labeled_image< I > >::bkd_piter
inherited

Backward Site_Iterator associated type.

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

typedef Image<void> mln::Image< labeled_image< I > >::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 , labeled_image< I > >::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 , labeled_image< I > >::domain_t
inherited

Site_Set associated type.

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

typedef labeled_image< I > mln::Object< labeled_image< I > >::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 , labeled_image< I > >::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 , labeled_image< I > >::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 , labeled_image< I > >::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 , labeled_image< I > >::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 , labeled_image< I > >::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 , labeled_image< I > >::site
inherited

Site associated type.

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

template<typename I>
typedef labeled_image< tag::image_<I> > mln::labeled_image< I >::skeleton

Skeleton.

Definition at line 116 of file labeled_image.hh.

typedef mln::value::set<const I::value > mln::internal::image_base< const I::value , I::domain_t , labeled_image< I > >::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 , labeled_image< I > >::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 , labeled_image< I > >::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 , labeled_image< I > >::value
inherited

Value associated type.

Definition at line 137 of file image_identity.hh.