26 #ifndef MLN_MORPHO_OPENING_VOLUME_HH
27 # define MLN_MORPHO_OPENING_VOLUME_HH
33 # include <mln/morpho/opening/leveling.hh>
34 # include <mln/morpho/attribute/volume.hh>
45 template <
typename I,
typename N>
47 volume(const Image<I>& input, const Neighborhood<N>& nbh,
51 # ifndef MLN_INCLUDE_ONLY
53 template <
typename I,
typename N>
56 volume(const Image<I>& input, const Neighborhood<N>& nbh,
59 trace::entering(
"morpho::opening::volume");
60 mln_precondition(exact(input).is_valid());
62 mln_concrete(I) output;
63 output = opening::leveling(input, nbh, attribute::volume<I>(), lambda);
65 trace::exiting("morpho::opening::volume");
69 # endif // ! MLN_INCLUDE_ONLY
78 #endif // ! MLN_MORPHO_OPENING_VOLUME_HH