
* src/debug/Makefile.am: Add new target. * src/debug/center_pixel_stats.cc: New debug tool. --- scribo/ChangeLog | 8 +++++ scribo/src/debug/Makefile.am | 2 + scribo/src/debug/center_pixel_stats.cc | 52 ++++++++++++++++++++++++++++++++ 3 files changed, 62 insertions(+), 0 deletions(-) create mode 100644 scribo/src/debug/center_pixel_stats.cc diff --git a/scribo/ChangeLog b/scribo/ChangeLog index 253021d..dc66eb2 100644 --- a/scribo/ChangeLog +++ b/scribo/ChangeLog @@ -1,5 +1,13 @@ 2010-11-15 Guillaume Lazzara <z@lrde.epita.fr> + Add a new debug tool. + + * src/debug/Makefile.am: Add new target. + + * src/debug/center_pixel_stats.cc: New debug tool. + +2010-11-15 Guillaume Lazzara <z@lrde.epita.fr> + * scribo/canvas/integral_browsing.hh: Cleanup comments. 2010-11-15 Guillaume Lazzara <z@lrde.epita.fr> diff --git a/scribo/src/debug/Makefile.am b/scribo/src/debug/Makefile.am index d203f5c..e236dc4 100644 --- a/scribo/src/debug/Makefile.am +++ b/scribo/src/debug/Makefile.am @@ -18,6 +18,7 @@ include $(top_srcdir)/scribo/scribo.mk noinst_PROGRAMS = \ + center_pixel_stats \ show_info_x_height \ show_info_median_inter_characters \ show_links_left_right_links_validation \ @@ -46,6 +47,7 @@ noinst_PROGRAMS = \ show_objects_thin +center_pixel_stats_SOURCES = center_pixel_stats.cc show_info_x_height_SOURCES = show_info_x_height.cc show_info_median_inter_characters_SOURCES = show_info_median_inter_characters.cc show_links_left_right_links_validation_SOURCES = show_links_left_right_links_validation.cc diff --git a/scribo/src/debug/center_pixel_stats.cc b/scribo/src/debug/center_pixel_stats.cc new file mode 100644 index 0000000..c9d154d --- /dev/null +++ b/scribo/src/debug/center_pixel_stats.cc @@ -0,0 +1,52 @@ +#include <mln/core/image/image2d.hh> +#include <mln/accu/stat/deviation.hh> +#include <mln/accu/stat/mean.hh> +#include <mln/accu/pair.hh> +#include <mln/data/compute.hh> +#include <mln/io/pgm/load.hh> + +#include <scribo/binarization/sauvola_threshold_image.hh> + +#include <scribo/debug/usage.hh> + + +const char *args_desc[][2] = +{ + { "input.pgm", "A graylevel image." }, + {0, 0} +}; + + + +int main(int argc, char *argv[]) +{ + using namespace mln; + using namespace scribo::binarization::internal; + + if (argc != 2) + return scribo::debug::usage(argv, + "Give statistics for the center pixel " + "of an image. The whole image is considered " + "as a window centered to that pixel.", + "input.* input.pgm", + args_desc); + + typedef value::int_u8 V; + image2d<V> input; + io::pgm::load(input, argv[1]); + + typedef accu::stat::deviation<V> dev_t; + typedef accu::stat::mean<V> mean_t; + + float mean = data::compute(mean_t(), input); + dev_t dev(mean); + float stddev = data::compute(dev, input); + + std::cout << "mean = " << mean + << " - stddev = " << stddev + << std::endl; + std::cout << "center = " << input.domain().pcenter() + << " - threshold = " + << sauvola_threshold_formula(mean, stddev, 0.34, 128) + << std::endl; +} -- 1.5.6.5
participants (1)
-
Guillaume Lazzara