27 #ifndef MLN_MORPHO_CLOSING_LEVELING_HH
28 # define MLN_MORPHO_CLOSING_LEVELING_HH
34 # include <mln/morpho/includes.hh>
35 # include <mln/morpho/leveling_filter.hh>
51 template <
typename I,
typename N,
typename A>
53 leveling(const Image<I>& input, const Neighborhood<N>& nbh,
54 const Accumulator<A>& accu, const mln_result(A)& lambda);
59 # ifndef MLN_INCLUDE_ONLY
62 template <
typename I,
typename N,
typename A>
65 leveling(const Image<I>& input, const Neighborhood<N>& nbh,
66 const Accumulator<A>& accu, const mln_result(A)& lambda)
68 mln_trace(
"morpho::closing::leveling");
70 mln_precondition(
exact(input).is_valid());
71 mln_precondition(mlc_not_equal(mln_trait_accumulator_when_pix(A),
72 trait::accumulator::when_pix::not_ok)::
value);
74 mln_concrete(I) output;
78 mln_postcondition(output >= input);
84 # endif // ! MLN_INCLUDE_ONLY
93 #endif // ! MLN_MORPHO_CLOSING_LEVELING_HH