26 #ifndef MLN_DEBUG_SUPERPOSE_HH
27 # define MLN_DEBUG_SUPERPOSE_HH
33 # include <mln/core/concept/image.hh>
34 # include <mln/core/image/dmorph/image_if.hh>
35 # include <mln/value/concept/scalar.hh>
36 # include <mln/value/concept/symbolic.hh>
37 # include <mln/value/rgb8.hh>
38 # include <mln/data/fill.hh>
39 # include <mln/data/convert.hh>
40 # include <mln/pw/all.hh>
41 # include <mln/literal/colors.hh>
64 template <
typename I,
typename J>
66 superpose(const Image<I>& input_, const Image<J>& object_,
67 const value::rgb8& object_color);
70 template <typename I, typename J>
71 mln_ch_value(I,value::rgb8)
72 superpose(const Image<I>& input, const Image<J>&
object);
75 # ifndef MLN_INCLUDE_ONLY
77 template <
typename I,
typename J>
80 const value::
rgb8& object_color)
82 trace::entering(
"debug::superpose");
84 const I& input = exact(input_);
85 const J&
object = exact(object_);
88 mlc_or(mlc_or(mlc_is_a(mln_value(J), value::Scalar),
89 mlc_is(mln_value(J),
bool)),
90 mlc_is_a(mln_value(J), value::Symbolic))::check();
92 mln_precondition(input.is_valid());
93 mln_precondition(
object.is_valid());
94 mln_precondition(input.domain() ==
object.domain());
100 trace::exiting(
"debug::superpose");
104 template <
typename I,
typename J>
111 # endif // ! MLN_INCLUDE_ONLY
117 #endif // ! MLN_DEBUG_SUPERPOSE_HH