17 #include <mln/core/image/image2d.hh>
18 #include <mln/core/alias/neighb2d.hh>
19 #include <mln/io/pbm/all.hh>
20 #include <mln/value/int_u.hh>
21 #include <mln/literal/colors.hh>
22 #include <mln/draw/box.hh>
24 #include <scribo/core/component_set.hh>
25 #include <scribo/core/line_set.hh>
26 #include <scribo/primitive/extract/components.hh>
27 #include <scribo/primitive/group/from_single_link.hh>
28 #include <scribo/primitive/link/with_single_left_link_dmax_ratio.hh>
29 #include <scribo/primitive/link/with_single_right_link_dmax_ratio.hh>
30 #include <scribo/primitive/link/merge_double_link.hh>
31 #include <scribo/primitive/link/internal/dmax_width_and_height.hh>
33 #include <scribo/filter/object_links_bbox_h_ratio.hh>
35 int main(
int argc,
char *argv[])
38 using namespace scribo;
39 using namespace scribo::primitive;
41 if (argc != 3 && argc != 4)
43 std::cerr <<
"Usage : " << argv[0] <<
" input.pbm out.pbm [hratio = 2.5]" << std::endl;
44 std::cerr <<
"Group components and makes sure size ratio is correct." << std::endl;
61 left_link = primitive::link::with_single_left_link_dmax_ratio(
68 right_link = primitive::link::with_single_right_link_dmax_ratio(
76 merged_links = primitive::link::merge_double_link(left_link,
81 hratio = atof(argv[3]);
88 groups = group::from_single_link(hratio_filtered_links);
96 for_all_lines(l, lines)
97 if (lines(l).is_valid())
98 mln::draw::
box(output, lines(l).
bbox(), true);
100 io::pbm::
save(output, argv[2]);