27 #ifndef SCRIBO_PRIMITIVE_EXTRACT_LINES_THICK_HH
28 # define SCRIBO_PRIMITIVE_EXTRACT_LINES_THICK_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>
42 # include <scribo/primitive/extract/components.hh>
69 template <
typename I,
typename N,
typename V,
typename W>
70 component_set<mln_ch_value(I,V)>
77 # ifndef MLN_INCLUDE_ONLY
83 template <
typename I,
typename N,
typename V,
typename W>
85 lines_thick_tests(
const Image<I>& input,
89 mlc_equal(mln_value(I),
bool)::check();
90 mlc_bool(mln_site_(I)::dim == 2)::check();
93 mln_precondition(
exact(input).is_valid());
94 mln_precondition(
exact(nbh).is_valid());
95 mln_precondition(
exact(win).is_valid());
107 template <
typename I,
typename N,
typename V,
typename W>
109 component_set<mln_ch_value(I,V)>
114 mln_trace(
"scribo::primitive::lines_thick");
116 internal::lines_thick_tests(input_, nbh_, nlines, win_);
118 const I& input =
exact(input_);
119 const N& nbh =
exact(nbh_);
120 const W& win =
exact(win_);
123 component_set<mln_ch_value(I,V)> output
124 = primitive::extract::
components(filter, nbh, nlines);
130 # endif // !MLN_INCLUDE_ONLY
138 #endif // ! SCRIBO_PRIMITIVE_EXTRACT_VERTICAL_LINES_THICK_HH