26 #ifndef MLN_MORPHO_CLOSING_APPROX_STRUCTURAL_HH
27 # define MLN_MORPHO_CLOSING_APPROX_STRUCTURAL_HH
33 # include <mln/morpho/approx/dilation.hh>
34 # include <mln/morpho/approx/erosion.hh>
53 template <
typename I,
typename W>
55 structural(const Image<I>& input, const Window<W>& win);
59 # ifndef MLN_INCLUDE_ONLY
62 template <
typename I,
typename W>
67 trace::entering(
"morpho::closing::approx::structural");
69 mln_precondition(exact(input).is_valid());
70 mln_precondition(! exact(win).is_empty());
72 using mln::morpho::approx::dilation;
73 using mln::morpho::approx::erosion;
79 mln_postcondition(output >= input);
81 trace::exiting(
"morpho::closing::approx::structural");
86 # endif // ! MLN_INCLUDE_ONLY
97 #endif // ! MLN_MORPHO_CLOSING_APPROX_STRUCTURAL_HH