27 #ifndef SCRIBO_PRIMITIVE_EXTRACT_LINES_V_THICK_AND_SINGLE_HH
28 # define SCRIBO_PRIMITIVE_EXTRACT_LINES_V_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_v_thick.hh>
44 # include <scribo/primitive/extract/lines_v_single.hh>
77 template <
typename I,
typename N,
typename V>
78 component_set<mln_ch_value(I,V)>
82 unsigned min_line_length,
87 # ifndef MLN_INCLUDE_ONLY
93 template <
typename I,
typename N,
typename V>
95 lines_v_thick_and_single_tests(
const Image<I>& input,
98 unsigned min_line_length,
101 mlc_equal(mln_value(I),
bool)::check();
102 mlc_bool(mln_site_(I)::dim == 2)::check();
105 mln_precondition(
exact(input).is_valid());
106 mln_precondition(
exact(nbh).is_valid());
110 (void) min_line_length;
119 template <
typename I,
typename N,
typename V>
121 component_set<mln_ch_value(I,V)>
125 unsigned min_line_length,
128 mln_trace(
"scribo::primitive::lines_v_thick_and_single");
130 internal::lines_v_thick_and_single_tests(input, nbh,
132 min_line_length, h_w_ratio);
134 component_set<mln_ch_value(I,V)>
135 output = lines_v_thick(input, nbh, nlines, min_line_length);
143 # endif // !MLN_INCLUDE_ONLY
151 #endif // ! SCRIBO_PRIMITIVE_EXTRACT_LINES_V_THICK_AND_SINGLE_HH