26 #ifndef MLN_MORPHO_THICKENING_HH
27 # define MLN_MORPHO_THICKENING_HH
34 # include <mln/morpho/hit_or_miss.hh>
48 template <
typename I,
typename Wfg,
typename Wbg>
51 const Window<Wfg>& win_fg, const Window<Wbg>& win_bg);
54 # ifndef MLN_INCLUDE_ONLY
59 template <
typename I,
typename Wfg,
typename Wbg>
62 thickening_tests(
const Image<I>& input_,
63 const Window<Wfg>& win_fg_,
64 const Window<Wbg>& win_bg_)
66 const I& input = exact(input_);
67 const Wfg& win_fg = exact(win_fg_);
68 const Wbg& win_bg = exact(win_bg_);
71 mln_precondition(input.is_valid());
72 mln_precondition(win_bg.is_centered());
73 mln_precondition(! win_fg.is_empty());
74 mln_precondition((win_fg && win_bg).is_empty());
85 template <
typename I,
typename Wfg,
typename Wbg>
91 trace::entering(
"morpho::thickening");
93 internal::thickening_tests(input, win_fg, win_bg);
98 trace::exiting(
"morpho::thickening");
102 # endif // ! MLN_INCLUDE_ONLY
109 #endif // ! MLN_MORPHO_THICKENING_HH