27 #ifndef SCRIBO_BINARIZATION_WOLF_FAST_HH
28 # define SCRIBO_BINARIZATION_WOLF_FAST_HH
34 # include <mln/core/concept/image.hh>
35 # include <scribo/binarization/internal/wolf_functor_fast.hh>
36 # include <scribo/binarization/internal/local_threshold_core.hh>
37 # include <scribo/binarization/internal/global_max_stddev_functor.hh>
38 # include <scribo/util/integral_sum_sum2_global_min_functor.hh>
94 # ifndef MLN_INCLUDE_ONLY
102 mln_trace(
"scribo::binarization::wolf_fast");
104 mln_precondition(
exact(input).is_valid());
111 sub_domains = scribo::util::compute_sub_domains(input, 1, 3);
118 integral = scribo::util::init_integral_image(input, 3, fi,
119 sub_domains[2].first(),
120 sub_domains[2].second());
130 internal::global_max_stddev<I> f_max_stddev;
131 scribo::canvas::integral_browsing(integral, 1, window_size,
132 window_size, 3, f_max_stddev);
135 internal::wolf_functor_fast<I>
136 f(input, K, fi.global_min(), f_max_stddev.max_stddev);
137 scribo::canvas::integral_browsing(integral, 1, window_size,
144 template <
typename I>
148 return wolf_fast(input, window_size, SCRIBO_DEFAULT_WOLF_K);
152 template <
typename I>
160 # endif // ! MLN_INCLUDE_ONLY
168 #endif // ! SCRIBO_BINARIZATION_WOLF_FAST_HH