27 #ifndef SCRIBO_TEXT_CLEAN_HH
28 # define SCRIBO_TEXT_CLEAN_HH
34 # include <mln/core/concept/image.hh>
35 # include <mln/core/concept/weighted_window.hh>
36 # include <mln/core/routine/extend.hh>
38 # include <mln/morpho/skeleton_constrained.hh>
39 # include <mln/morpho/dilation.hh>
41 # include <mln/topo/skeleton/is_simple_point.hh>
42 # include <mln/topo/skeleton/crest.hh>
44 # include <mln/logical/not.hh>
48 # include <mln/debug/filename.hh>
49 # include <mln/io/pbm/save.hh>
51 #include <mln/labeling/wrap.hh>
52 #include <mln/win/octagon2d.hh>
54 #include <mln/arith/revert.hh>
56 #include <mln/transform/distance_front.hh>
59 #include <mln/linear/gaussian.hh>
60 #include <mln/value/int_u8.hh>
62 #include <mln/data/convert.hh>
63 #include <mln/value/rgb8.hh>
64 #include <mln/io/pgm/all.hh>
66 #include <scribo/core/line_info.hh>
67 #include <scribo/upsampling/bs2x.hh>
68 #include <scribo/upsampling/eagle.hh>
69 #include <scribo/subsampling/bilinear.hh>
71 #include <scribo/text/clean_inplace.hh>
91 template <
typename L,
typename I>
96 # ifndef MLN_INCLUDE_ONLY
98 template <
typename L,
typename I>
100 clean(const line_info<L>& line, const
Image<I>& input_)
102 mln_trace(
"scribo::text::clean");
104 const I& input =
exact(input_);
105 mlc_bool(mln_site_(I)::dim == 2)::check();
106 mlc_equal(mln_value(I),
bool)::check();
107 mln_precondition(input.is_valid());
108 mln_precondition(line.is_valid());
117 # endif // ! MLN_INCLUDE_ONLY
123 #endif // ! SCRIBO_TEXT_CLEAN_HH