27 #ifndef MLN_MORPHO_OPENING_ALGEBRAIC_HH
28 # define MLN_MORPHO_OPENING_ALGEBRAIC_HH
34 # include <mln/morpho/includes.hh>
35 # include <mln/morpho/algebraic_filter.hh>
51 template <
typename I,
typename N,
typename A>
57 # ifndef MLN_INCLUDE_ONLY
60 template <
typename I,
typename N,
typename A>
66 mln_trace(
"morpho::opening::algebraic");
68 mln_precondition(
exact(input).is_valid());
69 mln_precondition(mlc_not_equal(mln_trait_accumulator_when_pix(A),
70 trait::accumulator::when_pix::not_ok)::
value);
72 mln_concrete(I) output;
76 mln_postcondition(output <= input);
82 # endif // ! MLN_INCLUDE_ONLY
91 #endif // ! MLN_MORPHO_OPENING_ALGEBRAIC_HH