27 #ifndef SCRIBO_DEBUG_LINKS_DECISION_IMAGE_HH
28 # define SCRIBO_DEBUG_LINKS_DECISION_IMAGE_HH
34 # include <mln/core/concept/image.hh>
35 # include <mln/data/convert.hh>
36 # include <mln/value/rgb8.hh>
37 # include <mln/literal/colors.hh>
38 # include <mln/draw/box.hh>
39 # include <mln/draw/line.hh>
41 # include <scribo/core/object_links.hh>
57 template <
typename I,
typename L>
60 const object_links<L>& links,
61 const object_links<L>& filtered_links);
63 # ifndef MLN_INCLUDE_ONLY
65 template <
typename I,
typename L>
68 const object_links<L>& links,
69 const object_links<L>& filtered_links)
71 mln_trace(
"scribo::debug::links_decision_image");
72 const I& input =
exact(input_);
74 const component_set<L>& comps = links.components();
76 mln_precondition(input.is_valid());
77 mln_precondition(comps.is_valid());
78 mln_precondition(links.is_valid());
79 mln_precondition(filtered_links.is_valid());
80 mln_precondition(links.size() == filtered_links.size());
86 for_all_comps(i, comps)
89 for_all_links(i, links)
92 value::rgb8
value = literal::green;
93 if (links(i) != filtered_links(i))
97 p1 = comps(i).mass_center(),
98 p2 = comps(links(i)).mass_center();
100 mln::draw::
line(links_decision_image, p1, p2, value);
103 return links_decision_image;
107 # endif // ! MLN_INCLUDE_ONLY
114 #endif // ! SCRIBO_DEBUG_LINKS_DECISION_IMAGE_HH