29 #include <mln/core/image/image2d.hh>
30 #include <mln/io/pbm/load.hh>
31 #include <mln/value/int_u16.hh>
32 #include <mln/draw/box_plain.hh>
33 #include <mln/pw/all.hh>
34 #include <mln/core/image/dmorph/image_if.hh>
35 #include <mln/data/convert.hh>
36 #include <mln/literal/colors.hh>
37 #include <mln/math/round.hh>
39 #include <scribo/debug/usage.hh>
41 #include <scribo/core/component_set.hh>
42 #include <scribo/core/object_links.hh>
43 #include <scribo/core/object_groups.hh>
45 #include <scribo/text/extract_lines_with_features.hh>
46 #include <scribo/estim/components_features.hh>
48 #include <scribo/io/xml/save.hh>
51 const char *args_desc[][2] =
58 int main(
int argc,
char* argv[])
60 using namespace scribo;
66 "input.pbm out_prefix",
74 std::string prefix = argv[2];
77 typedef value::int_u8 V;
91 for_all_lines(l, lines)
92 if (lines(l).is_textline())
97 for_all_line_comps(cid, lines(l).component_ids())
99 unsigned id = lines(l).component_ids()(cid);
100 if (comp_set(
id).features().boldness <
min)
101 min = comp_set(
id).features().boldness;
105 for_all_line_comps(cid, lines(l).component_ids())
107 unsigned id = lines(l).component_ids()(cid);
109 | (
pw::value(comp_set.labeled_image()) == pw::cst(
id))).rw(),
110 mln::math::round<V>(
min));
124 for_all_lines(l, lines)
125 if (lines(l).is_textline())
130 for_all_line_comps(cid, lines(l).component_ids())
132 unsigned id = lines(l).component_ids()(cid);
133 if (comp_set(
id).features().boldness <
max)
134 max = comp_set(
id).features().boldness;
138 for_all_line_comps(cid, lines(l).component_ids())
140 unsigned id = lines(l).component_ids()(cid);
142 | (
pw::value(comp_set.labeled_image()) == pw::cst(
id))).rw(),
143 mln::math::round<V>(
max));
158 for_all_lines(l, lines)
159 if (lines(l).is_textline())
162 for_all_line_comps(cid, lines(l).component_ids())
164 unsigned id = lines(l).component_ids()(cid);
166 | (
pw::value(comp_set.labeled_image()) == pw::cst(
id))).rw(),
167 mln::math::round<V>(lines(l).boldness()));
181 for_all_lines(l, lines)
182 if (lines(l).is_textline())
185 for_all_line_comps(cid, lines(l).component_ids())
187 unsigned id = lines(l).component_ids()(cid);
189 | (
pw::value(comp_set.labeled_image()) == pw::cst(
id))).rw(),
190 mln::math::round<V>(lines(l).boldness_reliability()));