27 #include <mln/io/magick/load.hh>
28 #include <mln/io/pbm/save.hh>
29 #include <mln/io/pgm/save.hh>
31 #include <mln/data/stretch.hh>
32 #include <mln/data/convert.hh>
33 #include <mln/data/saturate.hh>
35 #include <mln/fun/v2v/rgb_to_luma.hh>
37 #include <scribo/binarization/local_threshold.hh>
38 #include <scribo/binarization/sauvola.hh>
39 #include <scribo/debug/usage.hh>
41 const char *args_desc[][2] =
43 {
"input.*",
"An image." },
44 {
"output.pbm",
"A binary image." },
45 {
"mean.pgm",
"The local mean image." },
46 {
"stddev.pgm",
"The local standard deviation image." },
47 {
"threshold.pgm",
"Threshold image." },
48 {
"alpham.pgm",
"alpha * m values" },
49 {
"alphacond.pbm",
"Boolean image. True if s < (alpha * m / 2)" },
51 {
"mean_factor",
"Mean value factor (default 1)." },
52 {
"stddev_factor",
"Standard deviation value factor (default 2)." },
55 {
"w",
"Window size (default 101)." },
56 {
"k",
"Sauvola's formulae parameter (default 0.34)." },
61 int main(
int argc,
char *argv[])
64 using namespace scribo::binarization;
66 if (argc < 5 || argc >= 13)
68 "Binarization based on Sauvola's algorithm.",
69 "input.* output.pbm mean.pgm stddev.pgm threshold.pgm alpham.pgm "
70 "alphacond.pbm <mean_factor> <stddev_factor> <alphamfact> <w> <k>",
87 std::cout <<
"Using w=" << w <<
" and k=" << k << std::endl;
90 scribo::binarization::internal::mean_image_output = argv[3];
92 scribo::binarization::internal::stddev_image_output = argv[4];
94 scribo::binarization::internal::threshold_image_output = argv[5];
96 scribo::binarization::internal::alpham_image_output = argv[6];
98 scribo::binarization::internal::alphacond_image_output = argv[7];
101 scribo::binarization::internal::mean_debug_factor = atof(argv[8]);
103 scribo::binarization::internal::mean_debug_factor = 1;
105 scribo::binarization::internal::stddev_debug_factor = atof(argv[9]);
107 scribo::binarization::internal::stddev_debug_factor = 2;
109 scribo::binarization::internal::alpham_debug_factor = atof(argv[10]);
111 scribo::binarization::internal::alpham_debug_factor = 2;