mln::labeling Namespace Reference

Namespace of labeling routines. More...


Namespaces

namespace  impl
 Implementation namespace of labeling namespace.

Functions

template<typename I, typename N, typename L>
mln::trait::ch_value< I, L >::ret background (const Image< I > &input, const Neighborhood< N > &nbh, L &nlabels)
template<typename I, typename N, typename L>
mln::trait::ch_value< I, L >::ret blobs (const Image< I > &input, const Neighborhood< N > &nbh, L &nlabels)
 Connected component labeling of the binary objects of a binary image.
template<typename I, typename N, typename L, typename A>
util::couple
< mln::trait::ch_value< I, L >
::ret, util::array< typename
A::result > > 
blobs_and_compute (const Image< I > &input, const Neighborhood< N > &nbh, L &nlabels, const Accumulator< A > &accu)
template<typename V, typename L>
mln::trait::ch_value< L, V >::ret colorize (const V &value, const Image< L > &labeled_image, const typename L::value &nlabels)
 Create a new color image from a labeled image and fill each component with a random color.
template<typename A, typename L>
util::array
< mln_meta_accu_result(A,
typename L::psite)> 
compute (const Meta_Accumulator< A > &a, const Image< L > &label, const typename L::value &nlabels)
 Compute an accumulator onto the pixel sites of each component domain of label.
template<typename A, typename L>
util::array< typename A::result > compute (const Accumulator< A > &a, const Image< L > &label, const typename L::value &nlabels)
 Compute an accumulator onto the pixel sites of each component domain of label.
template<typename A, typename I, typename L>
util::array
< mln_meta_accu_result(A,
typename I::value)> 
compute (const Meta_Accumulator< A > &a, const Image< I > &input, const Image< L > &label, const typename L::value &nlabels)
 Compute an accumulator onto the pixel values of the image input.
template<typename A, typename I, typename L>
util::array< typename A::result > compute (const Accumulator< A > &a, const Image< I > &input, const Image< L > &label, const typename L::value &nlabels)
 Compute an accumulator onto the pixel values of the image input.
template<typename A, typename I, typename L>
util::array< typename A::result > compute (util::array< A > &a, const Image< I > &input, const Image< L > &label, const typename L::value &nlabels)
 Compute an accumulator onto the pixel values of the image input.
template<typename A, typename I, typename L>
mln::trait::ch_value< L,
mln_meta_accu_result(A,
typename I::value) >::ret 
compute_image (const Meta_Accumulator< A > &accu, const Image< I > &input, const Image< L > &labels, const typename L::value &nlabels)
 Compute an accumulator onto the pixel values of the image input.
template<typename A, typename I, typename L>
mln::trait::ch_value< L,
typename A::result >::ret 
compute_image (const Accumulator< A > &accu, const Image< I > &input, const Image< L > &labels, const typename L::value &nlabels)
 Compute an accumulator onto the pixel values of the image input.
template<typename A, typename I, typename L>
mln::trait::ch_value< L,
typename A::result >::ret 
compute_image (const util::array< typename A::result > &a, const Image< I > &input, const Image< L > &labels, const typename L::value &nlabels)
 Compute an accumulator onto the pixel values of the image input.
template<typename I, typename N, typename L>
fill_holes (const Image< I > &input, const Neighborhood< N > &nbh, L &nlabels)
 Filling holes of a single object in a binary image.
template<typename I, typename N, typename L>
mln::trait::ch_value< I, L >::ret flat_zones (const Image< I > &input, const Neighborhood< N > &nbh, L &nlabels)
 Connected component labeling of the flat zones of an image.
template<typename I, typename N, typename L>
mln::trait::ch_value< I, L >::ret foreground (const Image< I > &input, const Neighborhood< N > &nbh, L &nlabels)
template<typename I>
mln::trait::concrete< I >::ret pack (const Image< I > &label, typename I::value &new_nlabels, fun::i2v::array< typename I::value > &repack_fun)
 Relabel a labeled image in order to have a contiguous labeling.
template<typename I>
void pack_inplace (Image< I > &label, typename I::value &new_nlabels, fun::i2v::array< typename I::value > &repack_fun)
 Relabel inplace a labeled image in order to have a contiguous labeling.
template<typename I, typename N, typename L>
mln::trait::ch_value< I, L >::ret regional_maxima (const Image< I > &input, const Neighborhood< N > &nbh, L &nlabels)
template<typename I, typename N, typename L>
mln::trait::ch_value< I, L >::ret regional_minima (const Image< I > &input, const Neighborhood< N > &nbh, L &nlabels)
template<typename I, typename F>
mln::trait::concrete< I >::ret relabel (const Image< I > &label, const typename I::value &nlabels, const Function_v2v< F > &fv2v)
 Remove components and relabel a labeled image.
template<typename I, typename F>
mln::trait::concrete< I >::ret relabel (const Image< I > &label, const typename I::value &nlabels, typename I::value &new_nlabels, const Function_v2b< F > &fv2b)
 Remove components and relabel a labeled image.
template<typename I, typename F>
void relabel_inplace (Image< I > &label, typename I::value &nlabels, const Function_v2v< F > &fv2v)
 Remove components and relabel a labeled image inplace.
template<typename I, typename F>
void relabel_inplace (Image< I > &label, typename I::value &nlabels, const Function_v2b< F > &fv2b)
 Remove components and relabel a labeled image inplace.
template<typename I, typename J>
mln::trait::concrete< I >::ret superpose (const Image< I > &lhs, const typename I::value &lhs_nlabels, const Image< J > &rhs, const typename J::value &rhs_nlabels, typename I::value &new_nlabels)
 Superpose two labeled image.
template<typename I, typename N, typename L>
mln::trait::ch_value< I, L >::ret value (const Image< I > &input, const typename I::value &val, const Neighborhood< N > &nbh, L &nlabels)
 Connected component labeling of the image sites at a given value.
template<typename I>
mln::trait::ch_value< I,
mln::value::label_8 >::ret 
wrap (const Image< I > &input)
 Wrap labels such as 0 -> 0 and [1, lmax] maps to [1, Lmax] (using modulus).
template<typename V, typename I>
mln::trait::ch_value< I, V >::ret wrap (const V &value_type, const Image< I > &input)
 Wrap labels such as 0 -> 0 and [1, lmax] maps to [1, Lmax] (using modulus).


Detailed Description

Namespace of labeling routines.

Function Documentation

template<typename I, typename N, typename L>
mln::trait::ch_value< I, L >::ret mln::labeling::background ( const Image< I > &  input,
const Neighborhood< N > &  nbh,
L &  nlabels 
) [inline]

Connected component labeling of the background part in a binary image.

Parameters:
[in] input The input image.
[in] nbh The connexity of the background.
[out] nlabels The number of labels.
Returns:
The label image.
Precondition:
The input image has to be binary (checked at compile-time).
This routine actually calls mln::labeling::value with the value set to false.

See also:
mln::labeling::value

References value().

Referenced by fill_holes().

template<typename I, typename N, typename L>
mln::trait::ch_value< I, L >::ret mln::labeling::blobs ( const Image< I > &  input,
const Neighborhood< N > &  nbh,
L &  nlabels 
) [inline]

Connected component labeling of the binary objects of a binary image.

Parameters:
[in] input The input image.
[in] nbh The connexity of the objects.
[out] nlabels The Number of labels. Its value is set in the algorithms.
Returns:
The label image.
Precondition:
The input image has to be binary (checked at compile-time).
A fast queue is used so that the algorithm is not recursive and can handle large binary objects (blobs).

References mln::canvas::labeling::blobs().

Referenced by mln::graph::labeling().

template<typename I, typename N, typename L, typename A>
util::couple< mln::trait::ch_value< I, L >::ret, util::array< typename A::result > > mln::labeling::blobs_and_compute ( const Image< I > &  input,
const Neighborhood< N > &  nbh,
L &  nlabels,
const Accumulator< A > &  accu 
) [inline]

Label an image and compute given accumulators.

Parameters:
[in] input A binary image.
[in] nbh A neighborhood used for labeling.
[in,out] nlabels The number of labels found.
[in] accu An accumulator to be computed while labeling.

References mln::canvas::labeling::blobs(), and mln::make::couple().

template<typename V, typename L>
mln::trait::ch_value< L, V >::ret mln::labeling::colorize ( const V &  value,
const Image< L > &  labeled_image,
const typename L::value &  nlabels 
) [inline]

Create a new color image from a labeled image and fill each component with a random color.

litera::black is used for component 0, e.g. the background. Min and max values for RGB values can be set through the global variables mln::labeling::colorize_::min_value and mln::labeling::colorize_::max_value.

Parameters:
[in] value value type used in the returned image.
[in] labeled_image A labeled image (
See also:
labeling::blobs).
Parameters:
[in] nlabels Number of labels.

References mln::literal::black, and mln::data::transform().

template<typename A, typename L>
util::array< mln_meta_accu_result(A, typename L::psite)> mln::labeling::compute ( const Meta_Accumulator< A > &  a,
const Image< L > &  label,
const typename L::value &  nlabels 
) [inline]

Compute an accumulator onto the pixel sites of each component domain of label.

Parameters:
[in] a A meta-accumulator.
[in] label The labeled image.
[in] nlabels The number of labels in label.
Returns:
A mln::p_array of accumulator result (one result per label).

References compute().

template<typename A, typename L>
util::array< typename A::result > mln::labeling::compute ( const Accumulator< A > &  a_,
const Image< L > &  label_,
const typename L::value &  nlabels 
) [inline]

Compute an accumulator onto the pixel sites of each component domain of label.

Parameters:
[in] a An accumulator.
[in] label The labeled image.
[in] nlabels The number of labels in label.
Returns:
A mln::p_array of accumulator result (one result per label).
Compute an accumulator onto the pixel sites of each component domain of label.

Parameters:
[in] a_ An accumulator.
[in] label_ The labeled image.
[in] nlabels The number of labels in label.
Returns:
A mln::p_array of accumulator result (one result per label).

template<typename A, typename I, typename L>
util::array< mln_meta_accu_result(A, typename I::value)> mln::labeling::compute ( const Meta_Accumulator< A > &  a,
const Image< I > &  input,
const Image< L > &  label,
const typename L::value &  nlabels 
) [inline]

Compute an accumulator onto the pixel values of the image input.

for each component of the image label.

Parameters:
[in] a A meta-accumulator.
[in] input The input image.
[in] label The labeled image.
[in] nlabels The number of labels in label.
Returns:
A mln::p_array of accumulator result (one result per label).

References compute().

template<typename A, typename I, typename L>
util::array< typename A::result > mln::labeling::compute ( const Accumulator< A > &  a_,
const Image< I > &  input_,
const Image< L > &  label_,
const typename L::value &  nlabels 
) [inline]

Compute an accumulator onto the pixel values of the image input.

for each component of the image label.

Parameters:
[in] a An accumulator.
[in] input The input image.
[in] label The labeled image.
[in] nlabels The number of labels in label.
Returns:
A mln::p_array of accumulator result (one result per label).
Compute an accumulator onto the pixel values of the image input.

Parameters:
[in] a_ An accumulator.
[in] input_ The input image.
[in] label_ The labeled image.
[in] nlabels The number of labels in label.
Returns:
A mln::p_array of accumulator result (one result per label).

template<typename A, typename I, typename L>
util::array< typename A::result > mln::labeling::compute ( util::array< A > &  accus,
const Image< I > &  input_,
const Image< L > &  label_,
const typename L::value &  nlabels 
) [inline]

Compute an accumulator onto the pixel values of the image input.

for each component of the image label.

Parameters:
[in] a An array of accumulator.
[in] input The input image.
[in] label The labeled image.
[in] nlabels The number of labels in label.
Returns:
A mln::p_array of accumulator result (one result per label).
Compute an accumulator onto the pixel values of the image input.

Parameters:
[in] accus An array of accumulators.
[in] input_ The input image.
[in] label_ The labeled image.
[in] nlabels The number of labels in label.
Returns:
A mln::p_array of accumulator result (one result per label).

Referenced by compute(), compute_image(), fill_holes(), mln::make::p_edges_with_mass_centers(), and mln::make::p_vertices_with_mass_centers().

template<typename A, typename I, typename L>
mln::trait::ch_value< L, mln_meta_accu_result(A, typename I::value) >::ret mln::labeling::compute_image ( const Meta_Accumulator< A > &  accu,
const Image< I > &  input,
const Image< L > &  labels,
const typename L::value &  nlabels 
) [inline]

Compute an accumulator onto the pixel values of the image input.

for each component of the image label.

Parameters:
[in] accu The meta-accumulator.
[in] input The input image (values).
[in] labels The label image.
[in] nlabels The count of labels.
Returns:
The image where labels are replaced by the result of the accumulator.

References compute().

template<typename A, typename I, typename L>
mln::trait::ch_value< L, typename A::result >::ret mln::labeling::compute_image ( const Accumulator< A > &  accu,
const Image< I > &  input,
const Image< L > &  labels,
const typename L::value &  nlabels 
) [inline]

Compute an accumulator onto the pixel values of the image input.

for each component of the image label.

Parameters:
[in] accu The accumulator.
[in] input The input image (values).
[in] labels The label image.
[in] nlabels The count of labels.
Returns:
The image where labels are replaced by the result of the accumulator.

References compute().

template<typename A, typename I, typename L>
mln::trait::ch_value< L , typename A ::result >::ret mln::labeling::compute_image ( const util::array< typename A::result > &  a,
const Image< I > &  input,
const Image< L > &  labels,
const typename L::value &  nlabels 
) [inline]

Compute an accumulator onto the pixel values of the image input.

for each component of the image label.

Parameters:
[in] a The mln::p_array of accumulator result.
[in] input The input image (values).
[in] labels The label image.
[in] nlabels The count of labels.
Returns:
The image where labels are replaced by the result of the accumulator.

template<typename I, typename N, typename L>
I mln::labeling::fill_holes ( const Image< I > &  input,
const Neighborhood< N > &  nbh,
L &  nlabels 
) [inline]

Filling holes of a single object in a binary image.

Parameters:
[in] input The input image.
[in] nbh The connexity of the background.
[out] nlabels The number of labels.
Returns:
The binary image with a simple object without holes.
Precondition:
The input image has to be binary (checked at compile-time).
This routine actually calls mln::labeling::background

See also:
mln::labeling::background

References background(), compute(), mln::data::fill(), mln::initialize(), and mln::util::array< T >::nelements().

template<typename I, typename N, typename L>
mln::trait::ch_value< I, L >::ret mln::labeling::flat_zones ( const Image< I > &  input,
const Neighborhood< N > &  nbh,
L &  nlabels 
) [inline]

Connected component labeling of the flat zones of an image.

Parameters:
[in] input The input image.
[in] nbh The connexity of the flat zones.
[out] nlabels The number of labels.
Returns:
The label image.

template<typename I, typename N, typename L>
mln::trait::ch_value< I, L >::ret mln::labeling::foreground ( const Image< I > &  input,
const Neighborhood< N > &  nbh,
L &  nlabels 
) [inline]

Connected component labeling of the object part in a binary image.

Parameters:
[in] input The input image.
[in] nbh The connexity of the foreground.
[out] nlabels The number of labels.
Returns:
The label image.
Precondition:
The input image has to be binary (checked at compile-time).
This routine actually calls mln::labeling::value with the value set to true.

See also:
mln::labeling::value

References value().

template<typename I>
mln::trait::concrete< I >::ret mln::labeling::pack ( const Image< I > &  label,
typename I::value &  new_nlabels,
fun::i2v::array< typename I::value > &  repack_fun 
) [inline]

Relabel a labeled image in order to have a contiguous labeling.

Parameters:
[in] label The labeled image.
[out] new_nlabels The number of labels after relabeling.
[out] repack_fun The function used to repack the labels.
Returns:
The relabeled image.

References mln::data::compute(), mln::make::relabelfun(), and mln::data::transform().

template<typename I>
void mln::labeling::pack_inplace ( Image< I > &  label,
typename I::value &  new_nlabels,
fun::i2v::array< typename I::value > &  repack_fun 
) [inline]

Relabel inplace a labeled image in order to have a contiguous labeling.

Parameters:
[in] label The labeled image.
[out] new_nlabels The number of labels after relabeling.
[out] repack_fun The function used to repack the labels.

References mln::data::compute(), mln::make::relabelfun(), and mln::data::transform().

template<typename I, typename N, typename L>
mln::trait::ch_value< I, L >::ret mln::labeling::regional_maxima ( const Image< I > &  input,
const Neighborhood< N > &  nbh,
L &  nlabels 
) [inline]

Connected component labeling of the regional maxima of an image.

Parameters:
[in] input The input image.
[in] nbh The connexity of the regional maxima.
[out] nlabels The number of labeled regions.
Returns:
The label image.

template<typename I, typename N, typename L>
mln::trait::ch_value< I, L >::ret mln::labeling::regional_minima ( const Image< I > &  input,
const Neighborhood< N > &  nbh,
L &  nlabels 
) [inline]

Connected component labeling of the regional minima of an image.

Parameters:
[in] input The input image.
[in] nbh The connexity of the regional minima.
[out] nlabels The number of labeled regions.
Returns:
The label image.

Referenced by mln::morpho::meyer_wst().

template<typename I, typename F>
mln::trait::concrete< I >::ret mln::labeling::relabel ( const Image< I > &  label,
const typename I::value &  nlabels,
const Function_v2v< F > &  fv2v 
) [inline]

Remove components and relabel a labeled image.

Parameters:
[in] label the labeled image.
[in] nlabels the number of labels in label.
[in] fv2v function returning the new component id for each pixel value.
Returns:
the relabeled image.

References mln::data::transform().

template<typename I, typename F>
mln::trait::concrete< I >::ret mln::labeling::relabel ( const Image< I > &  label,
const typename I::value &  nlabels,
typename I::value &  new_nlabels,
const Function_v2b< F > &  fv2b 
) [inline]

Remove components and relabel a labeled image.

Parameters:
[in] label the labeled image.
[in] nlabels the number of labels in label.
[out] new_nlabels the number of labels after relabeling.
[in] fv2b function returning whether a label must be replaced by the background.
Returns:
the relabeled image.

References mln::make::relabelfun().

Referenced by superpose().

template<typename I, typename F>
void mln::labeling::relabel_inplace ( Image< I > &  label,
typename I::value &  nlabels,
const Function_v2v< F > &  fv2v 
) [inline]

Remove components and relabel a labeled image inplace.

Parameters:
[in,out] label the labeled image.
[in,out] nlabels the number of labels in label.
[in] fv2v function returning the new component id for each pixel value.

References mln::data::transform_inplace().

template<typename I, typename F>
void mln::labeling::relabel_inplace ( Image< I > &  label,
typename I::value &  nlabels,
const Function_v2b< F > &  fv2b 
) [inline]

Remove components and relabel a labeled image inplace.

Parameters:
[in,out] label the labeled image.
[in,out] nlabels the number of labels in label.
[in] fv2b function returning whether a label must be replaced by the background.

References mln::make::relabelfun().

Referenced by mln::labeled_image_base< I, E >::relabel().

template<typename I, typename J>
mln::trait::concrete< I >::ret mln::labeling::superpose ( const Image< I > &  lhs,
const typename I::value &  lhs_nlabels,
const Image< J > &  rhs,
const typename J::value &  rhs_nlabels,
typename I::value &  new_nlabels 
) [inline]

Superpose two labeled image.

Labels in lhs are preserved in the output. Labels of rhs are renumbered from the last label value of lhs. It avoids duplicate label values in several components.

Parameters:
[in] lhs A labeled image.
[in] lhs_nlabels The number of labels in lhs.
[in] rhs A labeled image.
[in] rhs_nlabels The number of labels in rhs.
[out] new_nlabels The number of labels in the output image.
Returns:
An image with all the components of rhs and lhs.
Precondition:
rhs and lhs must have the same domain.

The value type of rhs must be convertible towards lhs's.

References mln::duplicate(), mln::data::paste(), relabel(), and mln::literal::zero.

template<typename I, typename N, typename L>
mln::trait::ch_value< I, L >::ret mln::labeling::value ( const Image< I > &  input,
const typename I::value &  val,
const Neighborhood< N > &  nbh,
L &  nlabels 
) [inline]

Connected component labeling of the image sites at a given value.

Parameters:
[in] input The input image.
[in] val The value to consider.
[in] nbh The connectivity of components.
[out] nlabels The number of labels.
Returns:
The label image.

Referenced by background(), and foreground().

template<typename I>
mln::trait::ch_value< I, mln::value::label_8 >::ret mln::labeling::wrap ( const Image< I > &  input  )  [inline]

Wrap labels such as 0 -> 0 and [1, lmax] maps to [1, Lmax] (using modulus).

Use label_8 as label type.

Parameters:
[in] input The label image.
Returns:
A new image with values wrapped with type label_8.

References wrap().

template<typename V, typename I>
mln::trait::ch_value< I, V >::ret mln::labeling::wrap ( const V &  value_type,
const Image< I > &  input 
) [inline]

Wrap labels such as 0 -> 0 and [1, lmax] maps to [1, Lmax] (using modulus).

Parameters:
[in] value_type The type used to wrap the label type.
[in] input The label image.
Returns:
A new image with values wrapped with type V.

References mln::data::transform().

Referenced by wrap().


Generated on Thu Sep 9 19:32:36 2010 for Milena (Olena) by  doxygen 1.5.6