27 #ifndef MLN_MORPHO_CONTRAST_HH
28 # define MLN_MORPHO_CONTRAST_HH
37 # include <mln/morpho/top_hat.hh>
52 template <
typename I,
typename W>
53 mln_concrete(I)
contrast(const Image<I>& input, const Window<W>&
win);
56 # ifndef MLN_INCLUDE_ONLY
58 template <
typename I,
typename W>
60 mln_concrete(I)
contrast(const Image<I>& input, const Window<W>& win)
62 mln_trace(
"morpho::contrast");
63 mln_precondition(
exact(input).is_valid());
64 mln_precondition(!
exact(win).is_empty());
66 mln_concrete(I) output =
69 fun::v2v::
saturate<mln_value(I)>() );
74 # endif // ! MLN_INCLUDE_ONLY
81 #endif // ! MLN_MORPHO_CONTRAST_HH