27 #ifndef SCRIBO_PRIMITIVE_EXTRACT_LINES_H_THICK_AND_SINGLE_HH
28 # define SCRIBO_PRIMITIVE_EXTRACT_LINES_H_THICK_AND_SINGLE_HH
35 # include <mln/core/concept/image.hh>
36 # include <mln/core/concept/window.hh>
37 # include <mln/core/concept/neighborhood.hh>
39 # include <mln/morpho/opening/structural.hh>
41 # include <scribo/core/macros.hh>
43 # include <scribo/primitive/extract/lines_h_thick.hh>
44 # include <scribo/primitive/extract/lines_h_single.hh>
79 template <
typename I,
typename N,
typename V>
80 component_set<mln_ch_value(I,V)>
84 unsigned min_line_length,
89 # ifndef MLN_INCLUDE_ONLY
95 template <
typename I,
typename N,
typename V>
97 lines_h_thick_and_single_tests(
const Image<I>& input,
100 unsigned min_line_length,
103 mlc_equal(mln_value(I),
bool)::check();
104 mlc_bool(mln_site_(I)::dim == 2)::check();
107 mln_precondition(
exact(input).is_valid());
108 mln_precondition(
exact(nbh).is_valid());
112 (void) min_line_length;
121 template <
typename I,
typename N,
typename V>
123 component_set<mln_ch_value(I,V)>
127 unsigned min_line_length,
130 mln_trace(
"scribo::primitive::lines_h_thick_and_single");
132 internal::lines_h_thick_and_single_tests(input, nbh,
136 component_set<mln_ch_value(I,V)>
137 output = lines_h_thick(input, nbh, nlines, min_line_length);
145 # endif // !MLN_INCLUDE_ONLY
153 #endif // ! SCRIBO_PRIMITIVE_EXTRACT_LINES_H_THICK_AND_SINGLE_HH