26 #ifndef MLN_MORPHO_OPENING_APPROX_STRUCTURAL_HH
27 # define MLN_MORPHO_OPENING_APPROX_STRUCTURAL_HH
33 # include <mln/morpho/approx/dilation.hh>
34 # include <mln/morpho/approx/erosion.hh>
52 template <
typename I,
typename W>
54 structural(const Image<I>& input, const Window<W>& win);
58 # ifndef MLN_INCLUDE_ONLY
61 template <
typename I,
typename W>
66 trace::entering(
"morpho::opening::approx::structural");
68 mln_precondition(exact(input).is_valid());
69 mln_precondition(! exact(win).is_empty());
71 using mln::morpho::approx::dilation;
72 using mln::morpho::approx::erosion;
78 mln_postcondition(output <= input);
80 trace::exiting(
"morpho::opening::approx::structural");
85 # endif // ! MLN_INCLUDE_ONLY
96 #endif // ! MLN_MORPHO_OPENING_APPROX_STRUCTURAL_HH