27 #ifndef MLN_MORPHO_COMPLEMENTATION_HH
28 # define MLN_MORPHO_COMPLEMENTATION_HH
37 # include <mln/data/compare.hh>
38 # include <mln/logical/not.hh>
39 # include <mln/arith/revert.hh>
68 # ifndef MLN_INCLUDE_ONLY
78 complementation_(trait::image::kind::logic,
79 const Image<I>& input)
87 complementation_inplace_(trait::image::kind::logic,
99 complementation_(trait::image::kind::any,
100 const Image<I>& input)
105 template <
typename I>
108 complementation_inplace_(trait::image::kind::any,
119 template <
typename I>
123 mln_trace(
"morpho::complementation");
124 mln_precondition(
exact(input).is_valid());
126 mln_concrete(I) output = impl::complementation_(mln_trait_image_kind(I)(),
132 template <typename I>
136 mln_trace(
"morpho::complementation_inplace");
137 mln_precondition(
exact(input).is_valid());
139 impl::complementation_inplace_(mln_trait_image_kind(I)(),
144 # endif // ! MLN_INCLUDE_ONLY
151 #endif // ! MLN_MORPHO_COMPLEMENTATION_HH