Base class Morpher providing an improved interface for labeled image. More...
#include <labeled_image_base.hh>
Public Types | |
typedef accu::shape::bbox < typename I::psite >::result | bbox_t |
Type of the bounding component bounding boxes. | |
typedef I::domain_t::bkd_piter | bkd_piter |
Backward Site_Iterator associated type. | |
typedef Image< void > | category |
typedef const I | delegatee |
Delegatee associated type. | |
typedef I::domain_t | domain_t |
Site_Set associated type. | |
typedef E | exact_t |
typedef I::domain_t::fwd_piter | fwd_piter |
Forward Site_Iterator associated type. | |
typedef internal::morpher_lvalue_ < const I >::ret | lvalue |
Return type of read-write access. | |
typedef fwd_piter | piter |
Site_Iterator associated type; default definition is fwd_piter. | |
typedef I::domain_t::psite | psite |
Point_Site associated type. | |
typedef const I::rvalue | rvalue |
Return type of read-only access. | |
typedef I::domain_t::site | site |
Site associated type. | |
typedef mln::value::set< const I::value > | t_eligible_values_set |
Eligible-value-set associated type. | |
typedef mln::value::set < typename mln::value::super_value< const I::value >::ret > | t_values_space |
Value space associated type. | |
typedef const I | unmorph |
Unmorph image associated type. | |
typedef const I::value | value |
Value associated type. | |
Public Member Functions | |
const bbox_t & | bbox (const typename I::value &label) const |
Return the bounding box of the component label . | |
const util::array< bbox_t > & | bboxes () const |
Return the component bounding boxes. | |
mln::metal::const_< const I > ::ret * | delegatee_ () const |
Return the delegatee_ pointer; default code. | |
const I * | delegatee_ () |
Return the delegatee_ pointer (non-const version); default code. | |
void | destroy () |
Detach data from an image (free it if nobody else hold it). | |
const const I::domain_t & | domain () const |
bool | has (const psite &p) const |
Test if p belongs to the image domain. | |
bool | has (const typename const I::psite &p) const |
const util::tracked_ptr < internal::data< E > > & | hook_data_ () const |
Hook to the image data. | |
const void * | id_ () const |
Give an identifier of this image. | |
unsigned | index_of_point (const P &p) const |
Give the offset of the site p . | |
bool | is_valid () const |
Test if this image has been initialized; default impl. | |
I::value | nlabels () const |
Return the number of labels;. | |
std::size_t | nsites () const |
Give the number of sites of the image domain. | |
rvalue | operator() (const typename I::domain_t::psite &p) const |
Read-only access of pixel value at point site p . | |
lvalue | operator() (const typename I::domain_t::psite &p) |
Read-write access of pixel value at point site p . | |
E & | rw () |
State that the morpher is writable. | |
p_if< mln_box(I), fun::eq_v2b_expr_< pw::value_ < I >, pw::cst_< typename I::value > > > | subdomain (const typename I::value &label) const |
Return the domain of the component with label label . | |
mln::metal::const_< const I > ::ret & | unmorph_ () const |
Give the morphed image (const version). | |
const I & | unmorph_ () |
Give the morphed image (mutable version). | |
const t_eligible_values_set & | values_eligible () const |
const t_values_space & | values_space () const |
Return the value space of the image. | |
labeled_image_base () | |
ConstructorsConstructor without argument. | |
template<typename F > | |
void | relabel (const Function_v2v< F > &f) |
Relabel according to a function. | |
template<typename F > | |
void | relabel (const Function_v2b< F > &f) |
Labels may be removed. | |
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) |
Update bounding boxes information. | |
void | init_update_data_ () |
Called during relabeling. | |
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 | |
util::tracked_ptr < internal::data< E > > | data_ |
Private Types | |
typedef internal::image_identity < const I, typename I::domain_t, E > | super_ |
Base class Morpher providing an improved interface for labeled image.
I | The 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 116 of file labeled_image_base.hh.
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 124 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 118 of file core/internal/image_base.hh.
typedef Image<void> mln::Image< E >::category [inherited] |
Reimplemented from mln::Object< E >.
Definition at line 75 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 57 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 105 of file core/internal/image_base.hh.
typedef E mln::Object< E >::exact_t [inherited] |
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 115 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 140 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 123 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 108 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 137 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 111 of file core/internal/image_base.hh.
typedef internal::image_identity< const I, typename I ::domain_t, E > mln::labeled_image_base< I, E >::super_ [private] |
Reimplemented in mln::labeled_image< I >.
Definition at line 120 of file labeled_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 91 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 98 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 68 of file image_morpher.hh.
typedef const I ::value mln::internal::image_identity< const I , I::domain_t , E >::value [inherited] |
Value associated type.
Reimplemented from mln::internal::image_base< const I::value, I::domain_t, E >.
Definition at line 134 of file image_identity.hh.
mln::labeled_image_base< I, E >::labeled_image_base | ( | ) | [inline] |
ConstructorsConstructor without argument.
Definition at line 217 of file labeled_image_base.hh.
const labeled_image_base< I, E >::bbox_t & mln::labeled_image_base< I, E >::bbox | ( | const typename I::value & | label | ) | const |
Return the bounding box of the component label
.
Definition at line 305 of file labeled_image_base.hh.
References mln::internal::image_base< const I::value, I::domain_t, E >::data_.
Referenced by mln::labeled_image_base< I, E >::subdomain().
const util::array< typename labeled_image_base< I, E >::bbox_t > & mln::labeled_image_base< I, E >::bboxes | ( | ) | const |
Return the component bounding boxes.
Definition at line 313 of file labeled_image_base.hh.
References mln::internal::image_base< const I::value, I::domain_t, E >::data_.
mln::metal::const_< const I >::ret* mln::internal::image_morpher< const I , const I::value , I::domain_t , E >::delegatee_ | ( | ) | const [inherited] |
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] |
const util::tracked_ptr< internal::data<E> >& mln::internal::image_base< const I::value , I::domain_t , E >::hook_data_ | ( | ) | const [inherited] |
Hook to the image data.
const void* mln::internal::image_base< const I::value , I::domain_t , E >::id_ | ( | ) | const [inherited] |
Give an identifier of this image.
When several image variables designate the same image, they share the same identifier.
unsigned mln::internal::check::image_fastest_< E, mln::metal::equal< mln_trait_image_speed(E), trait::image::speed::fastest >::eval >::index_of_point | ( | const P & | p | ) | const [inherited] |
Give the offset of the site p
.
[in] | p | A site. |
p
. void mln::labeled_image_base< I, E >::init_update_data_ | ( | ) | [protected] |
Called during relabeling.
Definition at line 369 of file labeled_image_base.hh.
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 >.
I::value mln::labeled_image_base< I, E >::nlabels | ( | ) | const [inline] |
Return the number of labels;.
Definition at line 273 of file labeled_image_base.hh.
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
.
void mln::labeled_image_base< I, E >::prepare_update_data_ | ( | const typename I::value & | lbl, | |
const typename I::value & | new_lbl | |||
) | [protected] |
Definition at line 359 of file labeled_image_base.hh.
void mln::labeled_image_base< I, E >::relabel | ( | const Function_v2b< F > & | f | ) | [inline] |
Labels may be removed.
This overload make sure the labeling is still contiguous.
Definition at line 252 of file labeled_image_base.hh.
References mln::internal::image_base< const I::value, I::domain_t, E >::data_, mln::exact(), mln::labeling::relabel_inplace(), mln::make::relabelfun(), and mln::labeled_image_base< I, E >::update_data().
void mln::labeled_image_base< I, E >::relabel | ( | const Function_v2v< F > & | f | ) | [inline] |
Relabel according to a function.
Merge or delete labels according to the given function. This method ensures that the labeling remains contiguous.
We may have merged or deleted labels.
Definition at line 226 of file labeled_image_base.hh.
References mln::internal::image_base< const I::value, I::domain_t, E >::data_, mln::exact(), mln::labeling::relabel_inplace(), mln::make::relabelfun(), and mln::labeled_image_base< I, E >::update_data().
void mln::labeled_image_base< I, E >::relabel_ | ( | const Function_v2v< F > & | f | ) | [protected] |
Definition at line 333 of file labeled_image_base.hh.
void mln::labeled_image_base< I, E >::relabel_ | ( | const Function_v2b< F > & | f | ) | [protected] |
Definition at line 342 of file labeled_image_base.hh.
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.
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
.
Definition at line 322 of file labeled_image_base.hh.
References mln::labeled_image_base< I, E >::bbox(), mln::pw::cst(), mln::internal::image_base< const I::value, I::domain_t, E >::data_, and mln::pw::value().
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).
const I & mln::internal::image_morpher< const I , const I::value , I::domain_t , E >::unmorph_ | ( | ) | [inherited] |
Give the morphed image (mutable version).
void mln::labeled_image_base< I, E >::update_data | ( | const fun::i2v::array< typename I::value > & | relabel_fun | ) | [protected] |
Update bounding boxes information.
Definition at line 281 of file labeled_image_base.hh.
References mln::internal::image_base< const I::value, I::domain_t, E >::data_, mln::exact(), mln::convert::from_to(), mln::value::next(), and mln::util::array< T >::size().
Referenced by mln::labeled_image_base< I, E >::relabel().
void mln::labeled_image_base< I, E >::update_data_ | ( | const fun::i2v::array< typename I::value > & | relabel_fun | ) | [protected] |
Definition at line 350 of file labeled_image_base.hh.
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.
util::tracked_ptr< internal::data<E> > mln::internal::image_base< const I::value , I::domain_t , E >::data_ [protected, inherited] |