27 #ifndef MLN_MORPHO_THICKENING_HH
28 # define MLN_MORPHO_THICKENING_HH
35 # include <mln/morpho/hit_or_miss.hh>
51 template <
typename I,
typename Wfg,
typename Wbg>
54 const Window<Wfg>& win_fg, const Window<Wbg>& win_bg);
57 # ifndef MLN_INCLUDE_ONLY
62 template <
typename I,
typename Wfg,
typename Wbg>
65 thickening_tests(
const Image<I>& input_,
66 const Window<Wfg>& win_fg_,
67 const Window<Wbg>& win_bg_)
69 const I& input =
exact(input_);
70 const Wfg& win_fg =
exact(win_fg_);
71 const Wbg& win_bg =
exact(win_bg_);
74 mln_precondition(input.is_valid());
75 mln_precondition(win_bg.is_centered());
76 mln_precondition(! win_fg.is_empty());
77 mln_precondition((win_fg && win_bg).is_empty());
88 template <
typename I,
typename Wfg,
typename Wbg>
92 const Window<Wfg>& win_fg, const Window<Wbg>& win_bg)
94 mln_trace(
"morpho::thickening");
96 internal::thickening_tests(input, win_fg, win_bg);
98 mln_concrete(I) output = morpho::
plus( input,
104 # endif // ! MLN_INCLUDE_ONLY
111 #endif // ! MLN_MORPHO_THICKENING_HH