This is a merge commit message of the following branches:
Merge: fd16f7e... 7b21118...
Conflicts:
milena/ChangeLog
milena/mln/core/point.hh
milena/tests/io/magick/save.cc
scribo/Makefile.am
scribo/core/def/lbl_type.hh
scribo/core/object_image.hh
scribo/demo/Makefile.am
scribo/src/binarization/sauvola_ms.cc
scribo/src/debug/Makefile.am
scribo/table/internal/connect_lines.hh
scribo/test.cc
scribo/tests/toolchain/Makefile.am
scribo/text/clean.hh
ChangeLog | 16 +
configure.ac | 15 +-
milena/ChangeLog | 74 ++
milena/img/BUG_lean_ascii.pgm.gz | Bin 75726 -> 0 bytes
milena/mln/accu/count_value.hh | 26 +-
milena/mln/canvas/labeling/video.hh | 8 +-
milena/mln/convert/from_to.hxx | 4 +
milena/mln/convert/impl/from_unsigned_to_value.hh | 10 +
milena/mln/convert/to_qimage.hh | 53 +-
milena/mln/convert/to_qimage_nocopy.hh | 2 +-
milena/mln/core/concept/gpoint.hh | 2 +-
milena/mln/core/image/image1d.hh | 6 +-
milena/mln/core/point.hh | 1 -
milena/mln/io/magick/load.hh | 42 +-
milena/mln/io/magick/save.hh | 33 +-
milena/mln/labeling/value.hh | 16 +-
milena/mln/labeling/value_and_compute.hh | 241 ++++
milena/mln/linear/ch_convolve.hh | 9 +-
milena/sandbox/ChangeLog | 578 +++++++++
milena/sandbox/bench/fastest.cc | 351 +++++
.../green/bench/transform/distance/Makefile.am | 150 +++
.../green/bench/transform/distance/distance.cc | 775 +++++++++++
.../sandbox/green/demo/annotating/bic/Makefile.am | 150 +++
milena/sandbox/green/demo/annotating/bic/bic.cc | 87 ++
.../sandbox/green/demo/annotating/hsv/Makefile.am | 152 +++
milena/sandbox/green/demo/annotating/hsv/hsv.cc | 607 +++++++++
.../sandbox/green/demo/annotating/lep/Makefile.am | 150 +++
milena/sandbox/green/demo/annotating/lep/lep.cc | 92 ++
.../green/demo/annotating/nb_color/Makefile.am | 150 +++
.../green/demo/annotating/nb_color/nb_color.cc | 101 ++
.../green/demo/annotating/project/Makefile.am | 150 +++
.../green/demo/annotating/project/project.cc | 210 +++
.../green/demo/annotating/rgb_64/Makefile.am | 150 +++
.../sandbox/green/demo/annotating/rgb_64/rgb_64.cc | 47 +
.../green/demo/annotating/rgb_64_9/Makefile.am | 150 +++
.../green/demo/annotating/rgb_64_9/rgb_64_9.cc | 97 ++
.../green/demo/annotating/stddev_color/Makefile.am | 150 +++
.../demo/annotating/stddev_color/stddev_color.cc | 124 ++
.../demo/annotating/stddev_color_16/Makefile.am | 150 +++
.../annotating/stddev_color_16/stddev_color_16.cc | 178 +++
.../green/demo/clustering/kmean_rgb/Makefile.am | 148 +++
.../green/demo/clustering/kmean_rgb/kmean_rgb.cc | 91 ++
.../demo/labeling/regional_maxima/Makefile.am | 2 +
.../labeling/regional_maxima/regional_maxima.cc | 906 ++++++++++---
.../demo/labeling/regional_maxima/thresholds.txt | 42 +
milena/sandbox/green/doc/annotating/class.txt | 42 +
.../green/doc/annotating/syntheseMillet2008.txt | 283 ++++
milena/sandbox/green/doc/annotating/testMillet2008 | 69 +
.../doc/regional_maxima/cmp_method/h0_input.pgm.gz | Bin 0 -> 18078 bytes
.../doc/regional_maxima/cmp_method/h2_mean.pgm.gz | Bin 0 -> 374 bytes
.../doc/regional_maxima/cmp_method/h2_merge.pgm.gz | Bin 0 -> 4491 bytes
.../doc/regional_maxima/cmp_method/h3_mean.pgm.gz | Bin 0 -> 391 bytes
.../doc/regional_maxima/cmp_method/h3_merge.pgm.gz | Bin 0 -> 10188 bytes
.../doc/regional_maxima/cmp_method/h4_mean.pgm.gz | Bin 0 -> 367 bytes
.../doc/regional_maxima/cmp_method/h4_merge.pgm.gz | Bin 0 -> 18078 bytes
.../doc/regional_maxima/cmp_method/h5_mean.pgm.gz | Bin 0 -> 372 bytes
.../doc/regional_maxima/cmp_method/h5_merge.pgm.gz | Bin 0 -> 12777 bytes
.../doc/regional_maxima/cmp_method/i2_mean.ppm.gz | Bin 0 -> 566650 bytes
.../doc/regional_maxima/cmp_method/i2_merge.ppm.gz | Bin 0 -> 1586150 bytes
.../doc/regional_maxima/cmp_method/i3_mean.ppm.gz | Bin 0 -> 573407 bytes
.../doc/regional_maxima/cmp_method/i3_merge.ppm.gz | Bin 0 -> 3050979 bytes
.../doc/regional_maxima/cmp_method/i4_mean.ppm.gz | Bin 0 -> 663621 bytes
.../doc/regional_maxima/cmp_method/i4_merge.ppm.gz | Bin 0 -> 3387044 bytes
.../doc/regional_maxima/cmp_method/i5_mean.ppm.gz | Bin 0 -> 653140 bytes
.../doc/regional_maxima/cmp_method/i5_merge.ppm.gz | Bin 0 -> 3217839 bytes
.../doc/regional_maxima/cmp_method/l2_input.pgm.gz | Bin 0 -> 423612 bytes
.../doc/regional_maxima/cmp_method/l3_input.pgm.gz | Bin 0 -> 420801 bytes
.../doc/regional_maxima/cmp_method/l4_input.pgm.gz | Bin 0 -> 486206 bytes
.../doc/regional_maxima/cmp_method/l5_input.pgm.gz | Bin 0 -> 479055 bytes
.../regional_maxima/cmp_method/reponse_theo.eml | 106 ++
.../doc/regional_maxima/cmp_method/s2_histo.txt | 31 +
.../doc/regional_maxima/cmp_method/s3_histo.txt | 31 +
.../doc/regional_maxima/cmp_method/s4_histo.txt | 31 +
.../doc/regional_maxima/cmp_method/s5_histo.txt | 31 +
.../doc/regional_maxima/cmp_method/synthese.txt | 223 ++++
.../doc/regional_maxima/cmp_quant/h0_input.pgm.gz | Bin 0 -> 18078 bytes
.../regional_maxima/cmp_quant/h5_mean_q2.pgm.gz | Bin 0 -> 247 bytes
.../regional_maxima/cmp_quant/h5_mean_q3.pgm.gz | Bin 0 -> 280 bytes
.../regional_maxima/cmp_quant/h5_mean_q4.pgm.gz | Bin 0 -> 319 bytes
.../regional_maxima/cmp_quant/h5_mean_q5.pgm.gz | Bin 0 -> 375 bytes
.../regional_maxima/cmp_quant/h5_mean_q6.pgm.gz | Bin 0 -> 392 bytes
.../regional_maxima/cmp_quant/h5_mean_q7.pgm.gz | Bin 0 -> 383 bytes
.../regional_maxima/cmp_quant/h5_mean_q8.pgm.gz | Bin 0 -> 470 bytes
.../regional_maxima/cmp_quant/h5_merge_q2.pgm.gz | Bin 0 -> 18081 bytes
.../regional_maxima/cmp_quant/h5_merge_q3.pgm.gz | Bin 0 -> 18081 bytes
.../regional_maxima/cmp_quant/h5_merge_q4.pgm.gz | Bin 0 -> 16358 bytes
.../regional_maxima/cmp_quant/h5_merge_q5.pgm.gz | Bin 0 -> 12780 bytes
.../regional_maxima/cmp_quant/h5_merge_q6.pgm.gz | Bin 0 -> 9694 bytes
.../regional_maxima/cmp_quant/h5_merge_q7.pgm.gz | Bin 0 -> 6211 bytes
.../regional_maxima/cmp_quant/h5_merge_q8.pgm.gz | Bin 0 -> 1564 bytes
.../regional_maxima/cmp_quant/i5_mean_q2.ppm.gz | Bin 0 -> 112779 bytes
.../regional_maxima/cmp_quant/i5_mean_q3.ppm.gz | Bin 0 -> 191264 bytes
.../regional_maxima/cmp_quant/i5_mean_q4.ppm.gz | Bin 0 -> 298062 bytes
.../regional_maxima/cmp_quant/i5_mean_q5.ppm.gz | Bin 0 -> 653143 bytes
.../regional_maxima/cmp_quant/i5_mean_q6.ppm.gz | Bin 0 -> 807617 bytes
.../regional_maxima/cmp_quant/i5_mean_q7.ppm.gz | Bin 0 -> 813222 bytes
.../regional_maxima/cmp_quant/i5_mean_q8.ppm.gz | Bin 0 -> 861711 bytes
.../regional_maxima/cmp_quant/i5_merge_q2.ppm.gz | Bin 0 -> 3387047 bytes
.../regional_maxima/cmp_quant/i5_merge_q3.ppm.gz | Bin 0 -> 3387047 bytes
.../regional_maxima/cmp_quant/i5_merge_q4.ppm.gz | Bin 0 -> 3355365 bytes
.../regional_maxima/cmp_quant/i5_merge_q5.ppm.gz | Bin 0 -> 3217842 bytes
.../regional_maxima/cmp_quant/i5_merge_q6.ppm.gz | Bin 0 -> 3033730 bytes
.../regional_maxima/cmp_quant/i5_merge_q7.ppm.gz | Bin 0 -> 2295150 bytes
.../regional_maxima/cmp_quant/i5_merge_q8.ppm.gz | Bin 0 -> 1319396 bytes
.../regional_maxima/cmp_quant/l5_input_q2.pgm.gz | Bin 0 -> 83951 bytes
.../regional_maxima/cmp_quant/l5_input_q3.pgm.gz | Bin 0 -> 143817 bytes
.../regional_maxima/cmp_quant/l5_input_q4.pgm.gz | Bin 0 -> 220346 bytes
.../regional_maxima/cmp_quant/l5_input_q5.pgm.gz | Bin 0 -> 479058 bytes
.../regional_maxima/cmp_quant/l5_input_q6.pgm.gz | Bin 0 -> 593359 bytes
.../regional_maxima/cmp_quant/l5_input_q7.pgm.gz | Bin 0 -> 600121 bytes
.../regional_maxima/cmp_quant/l5_input_q8.pgm.gz | Bin 0 -> 630760 bytes
.../doc/regional_maxima/cmp_quant/s5_histo_q2.txt | 3 +
.../doc/regional_maxima/cmp_quant/s5_histo_q3.txt | 8 +
.../doc/regional_maxima/cmp_quant/s5_histo_q4.txt | 18 +
.../doc/regional_maxima/cmp_quant/s5_histo_q5.txt | 33 +
.../doc/regional_maxima/cmp_quant/s5_histo_q6.txt | 33 +
.../doc/regional_maxima/cmp_quant/s5_histo_q7.txt | 32 +
.../doc/regional_maxima/cmp_quant/s5_histo_q8.txt | 75 ++
.../doc/regional_maxima/cmp_quant/synthese.txt | 205 +++
.../mp00411c/colormap_all_q4.txt.gz | Bin 0 -> 187 bytes
.../mp00411c/colormap_all_q5.txt.gz | Bin 0 -> 420 bytes
.../mp00411c/colormap_thick_q4.txt.gz | Bin 0 -> 159 bytes
.../mp00411c/colormap_thick_q5.txt.gz | Bin 0 -> 352 bytes
.../mp00411c/colormap_thin_q4.txt.gz | Bin 0 -> 173 bytes
.../mp00411c/colormap_thin_q5.txt.gz | Bin 0 -> 366 bytes
.../regional_maxima/mp00411c/histo_all_q4.dump.gz | Bin 0 -> 1233 bytes
.../regional_maxima/mp00411c/histo_all_q5.dump.gz | Bin 0 -> 4779 bytes
.../mp00411c/histo_thick_q4.dump.gz | Bin 0 -> 781 bytes
.../mp00411c/histo_thick_q5.dump.gz | Bin 0 -> 2532 bytes
.../regional_maxima/mp00411c/histo_thin_q4.dump.gz | Bin 0 -> 901 bytes
.../regional_maxima/mp00411c/histo_thin_q5.dump.gz | Bin 0 -> 2976 bytes
.../doc/regional_maxima/mp00411c/iz_all_q4.dump.gz | Bin 0 -> 659040 bytes
.../doc/regional_maxima/mp00411c/iz_all_q5.dump.gz | Bin 0 -> 1505619 bytes
.../regional_maxima/mp00411c/iz_thick_q4.dump.gz | Bin 0 -> 482831 bytes
.../regional_maxima/mp00411c/iz_thick_q5.dump.gz | Bin 0 -> 1414258 bytes
.../regional_maxima/mp00411c/iz_thin_q4.dump.gz | Bin 0 -> 647722 bytes
.../regional_maxima/mp00411c/iz_thin_q5.dump.gz | Bin 0 -> 1458415 bytes
.../mp00411c/labeled_all_q4.dump.gz | Bin 0 -> 149 bytes
.../mp00411c/labeled_all_q5.dump.gz | Bin 0 -> 343 bytes
.../mp00411c/labeled_thick_q4.dump.gz | Bin 0 -> 149 bytes
.../mp00411c/labeled_thick_q5.dump.gz | Bin 0 -> 309 bytes
.../mp00411c/labeled_thin_q4.dump.gz | Bin 0 -> 149 bytes
.../mp00411c/labeled_thin_q5.dump.gz | Bin 0 -> 308 bytes
.../regional_maxima/mp00411c/mean3_all_q4.ppm.gz | Bin 0 -> 985276 bytes
.../regional_maxima/mp00411c/mean3_all_q5.ppm.gz | Bin 0 -> 1961577 bytes
.../regional_maxima/mp00411c/mean3_thick_q4.ppm.gz | Bin 0 -> 865034 bytes
.../regional_maxima/mp00411c/mean3_thick_q5.ppm.gz | Bin 0 -> 1831699 bytes
.../regional_maxima/mp00411c/mean3_thin_q4.ppm.gz | Bin 0 -> 958289 bytes
.../regional_maxima/mp00411c/mean3_thin_q5.ppm.gz | Bin 0 -> 1872271 bytes
.../regional_maxima/mp00411c/mean4_all_q4.ppm.gz | Bin 0 -> 772605 bytes
.../regional_maxima/mp00411c/mean4_all_q5.ppm.gz | Bin 0 -> 1852455 bytes
.../regional_maxima/mp00411c/mean4_thick_q4.ppm.gz | Bin 0 -> 559850 bytes
.../regional_maxima/mp00411c/mean4_thick_q5.ppm.gz | Bin 0 -> 1727247 bytes
.../regional_maxima/mp00411c/mean4_thin_q4.ppm.gz | Bin 0 -> 760428 bytes
.../regional_maxima/mp00411c/mean4_thin_q5.ppm.gz | Bin 0 -> 1781495 bytes
.../doc/regional_maxima/mp00411c/mp00411c.ppm.gz | Bin 0 -> 5316204 bytes
.../doc/regional_maxima/mp00411c/mp00411c.sh.gz | Bin 0 -> 636 bytes
.../regional_maxima/mp00411c/mp00411c_thick.pbm.gz | Bin 0 -> 190478 bytes
.../regional_maxima/mp00411c/mp00411c_thin.pbm.gz | Bin 0 -> 248730 bytes
.../regional_maxima/mp00411c/opened_all_q4.dump.gz | Bin 0 -> 1159 bytes
.../regional_maxima/mp00411c/opened_all_q5.dump.gz | Bin 0 -> 4531 bytes
.../mp00411c/opened_thick_q4.dump.gz | Bin 0 -> 747 bytes
.../mp00411c/opened_thick_q5.dump.gz | Bin 0 -> 2351 bytes
.../mp00411c/opened_thin_q4.dump.gz | Bin 0 -> 848 bytes
.../mp00411c/opened_thin_q5.dump.gz | Bin 0 -> 2772 bytes
.../regional_maxima/mp00411c/proj1_all_q4.pgm.gz | Bin 0 -> 343 bytes
.../regional_maxima/mp00411c/proj1_all_q5.pgm.gz | Bin 0 -> 779 bytes
.../regional_maxima/mp00411c/proj1_thick_q4.pgm.gz | Bin 0 -> 312 bytes
.../regional_maxima/mp00411c/proj1_thick_q5.pgm.gz | Bin 0 -> 612 bytes
.../regional_maxima/mp00411c/proj1_thin_q4.pgm.gz | Bin 0 -> 339 bytes
.../regional_maxima/mp00411c/proj1_thin_q5.pgm.gz | Bin 0 -> 718 bytes
.../regional_maxima/mp00411c/proj2_all_q4.pgm.gz | Bin 0 -> 338 bytes
.../regional_maxima/mp00411c/proj2_all_q5.pgm.gz | Bin 0 -> 750 bytes
.../regional_maxima/mp00411c/proj2_thick_q4.pgm.gz | Bin 0 -> 315 bytes
.../regional_maxima/mp00411c/proj2_thick_q5.pgm.gz | Bin 0 -> 606 bytes
.../regional_maxima/mp00411c/proj2_thin_q4.pgm.gz | Bin 0 -> 331 bytes
.../regional_maxima/mp00411c/proj2_thin_q5.pgm.gz | Bin 0 -> 693 bytes
.../regional_maxima/mp00411c/proj3_all_q4.ppm.gz | Bin 0 -> 230 bytes
.../regional_maxima/mp00411c/proj3_all_q5.ppm.gz | Bin 0 -> 401 bytes
.../regional_maxima/mp00411c/proj3_thick_q4.ppm.gz | Bin 0 -> 224 bytes
.../regional_maxima/mp00411c/proj3_thick_q5.ppm.gz | Bin 0 -> 343 bytes
.../regional_maxima/mp00411c/proj3_thin_q4.ppm.gz | Bin 0 -> 229 bytes
.../regional_maxima/mp00411c/proj3_thin_q5.ppm.gz | Bin 0 -> 359 bytes
.../regional_maxima/mp00411c/proj4_all_q4.ppm.gz | Bin 0 -> 252 bytes
.../regional_maxima/mp00411c/proj4_all_q5.ppm.gz | Bin 0 -> 447 bytes
.../regional_maxima/mp00411c/proj4_thick_q4.ppm.gz | Bin 0 -> 221 bytes
.../regional_maxima/mp00411c/proj4_thick_q5.ppm.gz | Bin 0 -> 369 bytes
.../regional_maxima/mp00411c/proj4_thin_q4.ppm.gz | Bin 0 -> 234 bytes
.../regional_maxima/mp00411c/proj4_thin_q5.ppm.gz | Bin 0 -> 415 bytes
.../doc/regional_maxima/mp00411c/quant_q4.ppm.gz | Bin 0 -> 2590062 bytes
.../doc/regional_maxima/mp00411c/quant_q5.ppm.gz | Bin 0 -> 3775184 bytes
.../regional_maxima/mp00411c/stats3_all_q4.txt.gz | Bin 0 -> 292 bytes
.../regional_maxima/mp00411c/stats3_all_q5.txt.gz | Bin 0 -> 701 bytes
.../mp00411c/stats3_thick_q4.txt.gz | Bin 0 -> 244 bytes
.../mp00411c/stats3_thick_q5.txt.gz | Bin 0 -> 584 bytes
.../regional_maxima/mp00411c/stats3_thin_q4.txt.gz | Bin 0 -> 262 bytes
.../regional_maxima/mp00411c/stats3_thin_q5.txt.gz | Bin 0 -> 606 bytes
.../regional_maxima/mp00411c/stats4_all_q4.txt.gz | Bin 0 -> 284 bytes
.../regional_maxima/mp00411c/stats4_all_q5.txt.gz | Bin 0 -> 704 bytes
.../mp00411c/stats4_thick_q4.txt.gz | Bin 0 -> 234 bytes
.../mp00411c/stats4_thick_q5.txt.gz | Bin 0 -> 580 bytes
.../regional_maxima/mp00411c/stats4_thin_q4.txt.gz | Bin 0 -> 255 bytes
.../regional_maxima/mp00411c/stats4_thin_q5.txt.gz | Bin 0 -> 591 bytes
.../doc/regional_maxima/mp00411c/synthese.txt.gz | Bin 0 -> 4062 bytes
.../green/exp/annotating/achromastism/Makefile.am | 153 +++
.../exp/annotating/achromastism/achromastism.cc | 113 ++
.../exp/annotating/achromastism/text-color.txt | 15 +
.../green/exp/annotating/achromastism/text-img.txt | 40 +
.../exp/annotating/achromastism/text-only.txt | 8 +
.../sandbox/green/exp/annotating/bench/Makefile.am | 153 +++
milena/sandbox/green/exp/annotating/bench/bench.cc | 1213 ++++++++++++++++++
.../sandbox/green/exp/annotating/error/Makefile.am | 153 +++
milena/sandbox/green/exp/annotating/error/error.cc | 700 ++++++++++
.../sandbox/green/exp/annotating/histo/Makefile.am | 153 +++
milena/sandbox/green/exp/annotating/histo/histo.cc | 306 +++++
.../sandbox/green/exp/annotating/hsv/Makefile.am | 153 +++
milena/sandbox/green/exp/annotating/hsv/hsv.cc | 652 ++++++++++
.../sandbox/green/exp/annotating/hue/Makefile.am | 153 +++
milena/sandbox/green/exp/annotating/hue/hue.cc | 291 +++++
.../green/exp/annotating/hue/text-color.txt | 15 +
.../sandbox/green/exp/annotating/hue/text-img.txt | 40 +
.../sandbox/green/exp/annotating/hue/text-only.txt | 8 +
.../green/exp/annotating/nb_color/Makefile.am | 151 +++
.../green/exp/annotating/nb_color/nb_color.cc | 131 ++
.../green/exp/annotating/saturation/Makefile.am | 153 +++
.../green/exp/annotating/saturation/saturation.cc | 119 ++
.../green/exp/annotating/saturation/text-color.txt | 15 +
.../green/exp/annotating/saturation/text-img.txt | 40 +
.../green/exp/annotating/saturation/text-only.txt | 8 +
.../green/exp/annotating/stddev_color/Makefile.am | 151 +++
.../exp/annotating/stddev_color/stddev_color.cc | 153 +++
.../exp/annotating/stddev_color_16/Makefile.am | 151 +++
.../annotating/stddev_color_16/stddev_color_16.cc | 195 +++
.../sandbox/green/exp/annotating/value/Makefile.am | 153 +++
.../green/exp/annotating/value/text-color.txt | 15 +
.../green/exp/annotating/value/text-img.txt | 40 +
.../green/exp/annotating/value/text-only.txt | 8 +
milena/sandbox/green/exp/annotating/value/value.cc | 316 +++++
.../green/exp/labeling/regional_maxima/Makefile.am | 151 +++
.../labeling/regional_maxima/regional_maxima.cc | 156 +++
milena/sandbox/green/mln/accu/stat/histo1d.hh | 66 +-
milena/sandbox/green/mln/clustering/kmean_rgb.hh | 973 ++++++++++++++
milena/sandbox/green/mln/display/display_histo.hh | 98 ++-
milena/sandbox/green/mln/display/project_histo.hh | 443 +++++++-
milena/sandbox/green/mln/fun/p2b/achromatic.hh | 112 ++
.../sandbox/green/mln/fun/p2b/component_equals.hh | 99 ++
milena/sandbox/green/mln/fun/v2v/achromatism.hh | 64 +
.../sandbox/green/mln/fun/v2v/hue_concentration.hh | 100 ++
milena/sandbox/green/mln/fun/v2v/rgb8_to_int_u8.hh | 71 +
.../green/mln/fun/v2v/rgb_to_achromatism_map.hh | 77 ++
milena/sandbox/green/mln/fun/v2v/rgb_to_hsv.hh | 149 +++
milena/sandbox/green/mln/fun/v2v/rgb_to_hue_map.hh | 96 ++
.../green/mln/fun/v2v/rgb_to_saturation_map.hh | 83 ++
.../sandbox/green/mln/fun/v2v/rgb_to_value_map.hh | 75 ++
milena/sandbox/green/mln/img_path.hh | 221 +++-
milena/sandbox/green/mln/math/ceil.hh | 64 +
milena/sandbox/green/mln/math/floor.hh | 64 +
milena/sandbox/green/mln/value/hsv.hh | 424 ++++++
.../green/tools/annotating/histo/Makefile.am | 150 +++
.../sandbox/green/tools/annotating/histo/histo.cc | 143 +++
.../sandbox/green/tools/annotating/iz/Makefile.am | 150 +++
milena/sandbox/green/tools/annotating/iz/iz.cc | 373 ++++++
.../green/tools/annotating/opening/Makefile.am | 150 +++
.../green/tools/annotating/opening/opening.cc | 111 ++
.../green/tools/annotating/regmax/Makefile.am | 150 +++
.../green/tools/annotating/regmax/regmax.cc | 328 +++++
milena/tests/convert/Makefile.am | 25 +-
milena/tests/convert/to_qimage.cc | 76 ++
milena/tests/convert/to_qimage_nocopy.cc | 56 +
milena/tests/io/magick/save.cc | 9 +-
milena/tests/subsampling/Makefile.am | 12 +-
milena/tests/subsampling/antialiased.cc | 74 ++
scribo/ChangeLog | 755 +++++++++++
scribo/Makefile.am | 5 +-
scribo/README | 51 +
scribo/binarization/internal/first_pass_functor.hh | 47 +-
scribo/binarization/local_threshold.hh | 3 -
scribo/binarization/sauvola.hh | 61 +-
scribo/binarization/sauvola_ms.hh | 207 ++--
scribo/binarization/sauvola_ms_split.hh | 38 +-
scribo/binarization/sauvola_threshold_image.hh | 240 +++-
.../binarization/sauvola_threshold_image_debug.hh | 420 ++++++
scribo/canvas/integral_browsing.hh | 13 -
scribo/convert/from_qimage.hh | 92 ++
scribo/core/all.hh | 4 +-
scribo/core/component_set.hh | 16 +
scribo/core/concept/dmax_functor.hh | 50 +
scribo/core/def/lbl_type.hh | 48 +
scribo/core/erase_objects.hh | 13 +-
scribo/core/line_info.hh | 38 +-
scribo/core/line_set.hh | 3 +
scribo/core/macros.hh | 3 +
scribo/core/object_groups.hh | 16 +-
scribo/core/object_links.hh | 35 +-
scribo/debug/decision_image.hh | 24 +-
scribo/debug/highlight_text_area.hh | 255 ++++
scribo/debug/save_bboxes_image.hh | 9 +-
scribo/debug/save_linked_bboxes_image.hh | 8 +-
scribo/debug/usage.hh | 13 +-
scribo/demo/Makefile.am | 9 +-
scribo/demo/demat/demat.pro | 42 +
scribo/demo/demat/demat.qrc | 4 +
scribo/demo/demat/src/doc_type.hh | 51 +
scribo/demo/demat/src/main.cc | 31 +
scribo/demo/demat/src/main_window.cc | 266 ++++
scribo/demo/demat/src/main_window.hh | 96 ++
scribo/demo/demat/src/mln_widgets.cc | 11 +
scribo/demo/demat/src/preprocessing_task.hh | 62 +
scribo/demo/demat/src/process_args.hh | 47 +
scribo/demo/demat/src/runner.cc | 327 +++++
scribo/demo/demat/src/runner.hh | 94 ++
scribo/demo/demat/ui/main_window.ui | 381 ++++++
scribo/demo/review/src/main.cc | 13 +-
scribo/demo/review/src/mainwindow.cc | 58 +-
scribo/demo/review/src/mainwindow.hh | 2 +-
scribo/demo/shared/src/crop_item.cc | 129 ++-
scribo/demo/shared/src/crop_item.hh | 20 +-
scribo/demo/shared/src/image_viewer.cc | 116 ++-
scribo/demo/shared/src/image_viewer.hh | 19 +-
scribo/demo/shared/src/image_viewer.hxx | 31 +
.../demo/shared/src/internal/interactive_scene.cc | 11 +-
.../demo/shared/src/internal/interactive_scene.hh | 1 +
scribo/demo/shared/ui/image_viewer.ui | 20 +-
scribo/demo/tip/gui.pro | 19 +
scribo/demo/tip/gui.qrc | 9 +
scribo/demo/tip/icons/next.png | Bin 0 -> 3337 bytes
scribo/demo/tip/icons/ok.png | Bin 0 -> 3953 bytes
scribo/demo/tip/icons/photos.png | Bin 0 -> 3750 bytes
scribo/demo/tip/icons/prev.png | Bin 0 -> 3334 bytes
scribo/demo/tip/icons/remove.png | Bin 0 -> 3704 bytes
scribo/demo/tip/src/custom_delegate.cc | 105 ++
scribo/demo/tip/src/custom_delegate.hh | 81 ++
scribo/demo/tip/src/launch_dialog.cc | 94 ++
scribo/demo/tip/src/launch_dialog.hh | 63 +
scribo/demo/tip/src/main.cc | 46 +
scribo/demo/tip/src/main_window.cc | 526 ++++++++
scribo/demo/tip/src/main_window.hh | 119 ++
scribo/demo/tip/ui/launch_dialog.ui | 117 ++
scribo/demo/tip/ui/main_window.ui | 656 ++++++++++
scribo/demo/viewer/Makefile.am | 70 +
scribo/demo/viewer/README | 33 +
scribo/demo/viewer/browser_widget.cc | 78 ++
scribo/demo/viewer/browser_widget.hh | 42 +
scribo/demo/viewer/common.hh | 38 +
scribo/demo/viewer/domitem.cc | 98 ++
scribo/demo/viewer/domitem.hh | 75 ++
scribo/demo/viewer/dommodel.cc | 198 +++
scribo/demo/viewer/dommodel.hh | 85 ++
scribo/demo/viewer/help_dialog.cc | 55 +
scribo/demo/viewer/help_dialog.hh | 32 +
scribo/demo/viewer/image_region.cc | 139 ++
scribo/demo/viewer/image_region.hh | 76 ++
scribo/demo/viewer/image_region.hxx | 100 ++
scribo/demo/viewer/image_scene.cc | 90 ++
scribo/demo/viewer/image_scene.hh | 44 +
scribo/demo/viewer/image_view.cc | 78 ++
scribo/demo/viewer/image_view.hh | 40 +
scribo/demo/viewer/image_widget.cc | 48 +
scribo/demo/viewer/image_widget.hh | 41 +
scribo/demo/viewer/key_widget.cc | 90 ++
scribo/demo/viewer/key_widget.hh | 45 +
scribo/demo/viewer/main.cc | 37 +
scribo/demo/viewer/property_widget.cc | 73 ++
scribo/demo/viewer/property_widget.hh | 41 +
scribo/demo/viewer/step_widget.cc | 122 ++
scribo/demo/viewer/step_widget.hh | 57 +
scribo/demo/viewer/viewer.cc | 504 ++++++++
scribo/demo/viewer/viewer.hh | 88 ++
scribo/demo/viewer/viewer.hxx | 31 +
scribo/demo/viewer/xml_widget.cc | 53 +
scribo/demo/viewer/xml_widget.hh | 41 +
scribo/demo/wizard/src/crop_widget.cc | 2 +-
scribo/demo/wizard/src/load_page.cc | 1 +
scribo/demo/wizard/src/main.cc | 13 +
scribo/demo/wizard/src/main_window.cc | 31 +-
scribo/demo/wizard/src/main_window.hh | 2 +
scribo/demo/wizard/src/preprocessing_widget.cc | 10 +-
scribo/demo/wizard/src/process_page.cc | 5 -
scribo/demo/wizard/src/result_page.cc | 43 +
scribo/demo/wizard/src/result_page.hh | 60 +
scribo/demo/wizard/src/result_widget.cc | 43 +
scribo/demo/wizard/src/result_widget.hh | 58 +
scribo/demo/wizard/src/runner.cc | 59 +-
scribo/demo/wizard/ui/preprocessing_widget.ui | 4 +-
scribo/demo/wizard/wizard.pro | 48 +-
scribo/filter/all.hh | 3 -
scribo/filter/internal/alignment_angle.hh | 156 +++
scribo/filter/internal/component_aligned.hh | 114 ++
scribo/filter/object_groups_small.hh | 5 +-
scribo/filter/object_groups_v_thickness.hh | 5 +-
scribo/filter/object_groups_with_holes.hh | 24 +-
scribo/filter/object_links_bottom_aligned.hh | 2 +-
scribo/filter/object_links_center_aligned.hh | 2 +-
scribo/filter/object_links_left_aligned.hh | 2 +-
scribo/filter/object_links_non_aligned.hh | 138 --
scribo/filter/object_links_non_aligned_simple.hh | 111 +--
scribo/filter/object_links_non_h_aligned.hh | 109 --
scribo/filter/object_links_non_v_aligned.hh | 122 --
scribo/filter/object_links_right_aligned.hh | 2 +-
scribo/filter/object_links_top_aligned.hh | 2 +-
scribo/filter/objects_large.hh | 130 +--
scribo/filter/objects_small.hh | 2 +-
scribo/fun/v2b/objects_large_filter.hh | 128 ++
scribo/io/text_boxes/save.hh | 102 ++
scribo/io/xml/save.hh | 249 ++++
scribo/io/xml/save_text_lines.hh | 154 ---
scribo/make/text.hh | 2 +-
scribo/postprocessing/fill_object_holes.hh | 408 ++++++
scribo/preprocessing/crop.hh | 84 ++
scribo/preprocessing/crop_without_localization.hh | 97 ++
scribo/preprocessing/denoise_bg.hh | 6 +-
scribo/preprocessing/deskew.hh | 437 +++++++
scribo/preprocessing/deskew_crop.hh | 187 +++
scribo/preprocessing/rotate_90.hh | 1 +
scribo/preprocessing/split_bg_fg.hh | 2 +-
scribo/preprocessing/unskew.hh | 115 --
scribo/primitive/extract/all.hh | 5 +-
scribo/primitive/extract/components.hh | 12 +-
scribo/primitive/extract/horizontal_separators.hh | 95 ++
scribo/primitive/extract/lines_discontinued.hh | 14 +-
scribo/primitive/extract/lines_h_discontinued.hh | 10 +-
scribo/primitive/extract/lines_h_pattern.hh | 79 +-
scribo/primitive/extract/lines_h_single.hh | 47 +-
scribo/primitive/extract/lines_h_thick.hh | 8 +-
scribo/primitive/extract/lines_pattern.hh | 227 +++-
scribo/primitive/extract/lines_thick.hh | 11 +-
scribo/primitive/extract/lines_v_discontinued.hh | 10 +-
scribo/primitive/extract/lines_v_pattern.hh | 39 +-
scribo/primitive/extract/lines_v_single.hh | 47 +-
scribo/primitive/extract/lines_v_thick.hh | 14 +-
scribo/primitive/extract/separators.hh | 98 ++
scribo/primitive/extract/vertical_separators.hh | 95 ++
scribo/primitive/group/apply.hh | 4 +-
scribo/primitive/group/from_double_link.hh | 4 +-
scribo/primitive/group/from_graph.hh | 1 -
scribo/primitive/group/from_single_link.hh | 8 +-
scribo/primitive/internal/all.hh | 3 -
scribo/primitive/internal/find_graph_link.hh | 1 -
scribo/primitive/internal/find_root.hh | 9 +-
scribo/primitive/internal/init_link_array.hh | 78 --
scribo/primitive/internal/rd.hh | 2 +-
scribo/primitive/link/internal/dmax_default.hh | 83 ++
.../primitive/link/internal/dmax_functor_base.hh | 100 ++
.../link/internal/dmax_width_and_height.hh | 98 ++
scribo/primitive/link/internal/dmax_width_only.hh | 95 ++
.../primitive/link/internal/link_functor_base.hh | 5 +-
.../link/internal/link_single_dmax_ratio_base.hh | 69 +-
scribo/primitive/link/merge_double_link.hh | 1 -
scribo/primitive/link/with_graph.hh | 2 -
scribo/primitive/link/with_several_graphes.hh | 6 +-
scribo/primitive/link/with_several_left_links.hh | 2 -
scribo/primitive/link/with_several_right_links.hh | 3 -
.../link/with_single_left_link_dmax_ratio.hh | 100 ++-
.../link/with_single_right_link_dmax_ratio.hh | 66 +-
scribo/primitive/remove/separators.hh | 112 ++
scribo/sandbox/ChangeLog | 9 +
scribo/sandbox/green/ChangeLog | 264 ++++
scribo/sandbox/green/README | 219 ++++
scribo/sandbox/green/README.green | 416 ++++++
scribo/sandbox/green/README.img | 124 ++
scribo/sandbox/green/README.result | 143 +++
.../green/bench/clustering/distance/Makefile.am | 153 +++
.../green/bench/clustering/distance/distance.cc | 842 ++++++++++++
.../green/demo/clustering/kmean1d/Makefile.am | 153 +++
.../green/demo/clustering/kmean1d/kmean1d.cc | 258 ++++
.../green/demo/clustering/kmean2d/Makefile.am | 153 +++
.../green/demo/clustering/kmean2d/kmean2d.cc | 278 ++++
.../green/demo/clustering/kmean3d/Makefile.am | 153 +++
.../green/demo/clustering/kmean3d/kmean3d.cc | 265 ++++
.../green/demo/clustering/kmean_rgb/Makefile.am | 153 +++
.../green/demo/clustering/kmean_rgb/kmean_rgb.cc | 239 ++++
scribo/sandbox/green/gaussian.sh | 12 +
scribo/sandbox/green/gaussian2d.sh | 21 +
scribo/sandbox/green/mln/accu/stat/histo1d.hh | 337 +++++
scribo/sandbox/green/mln/accu/stat/histo2d.hh | 346 +++++
scribo/sandbox/green/mln/accu/stat/histo3d_hsl.hh | 388 ++++++
scribo/sandbox/green/mln/accu/stat/histo3d_rgb.hh | 345 +++++
scribo/sandbox/green/mln/clustering/k_mean.hh | 785 ++++++++++++
scribo/sandbox/green/mln/clustering/kmean1d.hh | 1082 ++++++++++++++++
scribo/sandbox/green/mln/clustering/kmean2d.hh | 1344 +++++++++++++++++++
scribo/sandbox/green/mln/clustering/kmean3d.hh | 1345 ++++++++++++++++++++
scribo/sandbox/green/mln/clustering/kmean_rgb.hh | 1042 +++++++++++++++
scribo/sandbox/green/mln/display/display_histo.hh | 180 +++
scribo/sandbox/green/mln/display/project_histo.hh | 536 ++++++++
scribo/sandbox/green/mln/fun/p2b/achromatic.hh | 112 ++
.../sandbox/green/mln/fun/p2b/component_equals.hh | 99 ++
scribo/sandbox/green/mln/fun/v2v/achromatism.hh | 64 +
.../sandbox/green/mln/fun/v2v/hue_concentration.hh | 100 ++
.../green/mln/fun/v2v/int_u16_to_int_u14.hh | 71 +
scribo/sandbox/green/mln/fun/v2v/log.hh | 70 +
scribo/sandbox/green/mln/fun/v2v/rg_to_rgb.hh | 119 ++
scribo/sandbox/green/mln/fun/v2v/rgb8_to_int_u8.hh | 71 +
scribo/sandbox/green/mln/fun/v2v/rgb8_to_rgbn.hh | 119 ++
.../green/mln/fun/v2v/rgb_to_achromatism_map.hh | 77 ++
scribo/sandbox/green/mln/fun/v2v/rgb_to_hsv.hh | 149 +++
scribo/sandbox/green/mln/fun/v2v/rgb_to_hue_map.hh | 96 ++
scribo/sandbox/green/mln/fun/v2v/rgb_to_rg.hh | 109 ++
.../green/mln/fun/v2v/rgb_to_saturation_map.hh | 83 ++
.../sandbox/green/mln/fun/v2v/rgb_to_value_map.hh | 75 ++
scribo/sandbox/green/mln/img_path.hh | 239 ++++
scribo/sandbox/green/mln/io/plot/save_image_sh.hh | 1090 ++++++++++++++++
scribo/sandbox/green/mln/math/ceil.hh | 64 +
scribo/sandbox/green/mln/math/floor.hh | 64 +
scribo/sandbox/green/mln/value/hsv.hh | 424 ++++++
scribo/sandbox/green/mln/value/rg.hh | 175 +++
scribo/sandbox/green/ok/mln/accu/histo/histo1d.hh | 334 +++++
scribo/sandbox/green/ok/mln/accu/histo/histo2d.hh | 346 +++++
scribo/sandbox/green/ok/mln/accu/histo/histo3d.hh | 349 +++++
scribo/sandbox/green/ok/mln/img_path.hh | 239 ++++
.../sandbox/green/ok/test/accu/histo/gaussian.sh | 12 +
scribo/sandbox/green/ok/test/accu/histo/histo1d | Bin 0 -> 802920 bytes
scribo/sandbox/green/ok/test/accu/histo/histo1d.cc | 726 +++++++++++
scribo/sandbox/green/test_labelling.cc | 336 +++++
scribo/sandbox/green/test_labelling_2.cc | 342 +++++
scribo/sandbox/green/test_labelling_3.cc | 463 +++++++
.../green/tests/accu/stat/histo1d/Makefile.am | 153 +++
.../green/tests/accu/stat/histo1d/histo1d.cc | 507 ++++++++
.../green/tests/accu/stat/histo3d_hsl/Makefile.am | 153 +++
.../tests/accu/stat/histo3d_hsl/histo3d_hsl.cc | 391 ++++++
.../green/tests/accu/stat/histo3d_rgb/Makefile.am | 153 +++
.../tests/accu/stat/histo3d_rgb/histo3d_rgb.cc | 397 ++++++
.../green/tests/clustering/k_mean/Makefile.am | 153 +++
.../green/tests/clustering/k_mean/k_mean.cc | 547 ++++++++
.../green/tests/clustering/kmean1d/Makefile.am | 148 +++
.../green/tests/clustering/kmean1d/kmean1d.cc | 483 +++++++
.../green/tests/io/plot/save_image_sh/Makefile.am | 153 +++
.../tests/io/plot/save_image_sh/save_image_sh.cc | 774 +++++++++++
.../green/use/accu/stat/histo1d/Makefile.am | 153 +++
.../sandbox/green/use/accu/stat/histo1d/histo1d.cc | 49 +
.../green/use/accu/stat/histo2d/Makefile.am | 153 +++
.../sandbox/green/use/accu/stat/histo2d/histo2d.cc | 58 +
.../green/use/accu/stat/histo3d_hsl/Makefile.am | 153 +++
.../green/use/accu/stat/histo3d_hsl/histo3d_hsl.cc | 59 +
.../green/use/accu/stat/histo3d_rgb/Makefile.am | 153 +++
.../green/use/accu/stat/histo3d_rgb/histo3d_rgb.cc | 57 +
.../green/use/clustering/k_mean/Makefile.am | 153 +++
.../sandbox/green/use/clustering/k_mean/k_mean.cc | 55 +
.../green/use/clustering/kmean1d/Makefile.am | 153 +++
.../green/use/clustering/kmean1d/kmean1d.cc | 50 +
.../green/use/clustering/kmean2d/Makefile.am | 153 +++
.../green/use/clustering/kmean2d/kmean2d.cc | 61 +
.../green/use/clustering/kmean3d/Makefile.am | 153 +++
.../green/use/clustering/kmean3d/kmean3d.cc | 63 +
.../green/use/clustering/kmean_rgb/Makefile.am | 153 +++
.../green/use/clustering/kmean_rgb/kmean_rgb.cc | 63 +
.../green/use/fun/v2v/rg_to_rgb/Makefile.am | 153 +++
.../green/use/fun/v2v/rg_to_rgb/rg_to_rgb.cc | 68 +
.../green/use/fun/v2v/rgb8_to_rgbn/Makefile.am | 153 +++
.../green/use/fun/v2v/rgb8_to_rgbn/rgb8_to_rgbn.cc | 57 +
.../green/use/fun/v2v/rgb_to_rg/Makefile.am | 153 +++
.../green/use/fun/v2v/rgb_to_rg/rgb_to_rg.cc | 58 +
.../green/use/io/plot/save_image_sh/Makefile.am | 153 +++
.../use/io/plot/save_image_sh/save_image_sh.cc | 53 +
scribo/sandbox/green/use/value/rg/Makefile.am | 153 +++
scribo/sandbox/green/use/value/rg/rg.cc | 58 +
scribo/sandbox/z/white_spaces/hom_sep.cc | 133 ++
.../sandbox/z/white_spaces/white_space_closing.cc | 123 ++
scribo/sandbox/z/white_spaces/white_spaces.cc | 842 ++++++++++++
scribo/src/Makefile.am | 85 +-
scribo/src/README | 13 +
scribo/src/afp/link.hh | 13 +-
scribo/src/afp/regroup.hh | 1 -
scribo/src/binarization/Makefile.am | 8 +-
scribo/src/binarization/fg_sauvola_ms.cc | 108 ++
.../src/binarization/pgm_global_threshold_auto.cc | 3 +-
scribo/src/binarization/pgm_sauvola.cc | 28 +-
scribo/src/binarization/pgm_sauvola_ms.cc | 54 +-
scribo/src/binarization/ppm_fg_sauvola_ms.cc | 64 +-
scribo/src/binarization/ppm_sauvola.cc | 38 +-
scribo/src/binarization/ppm_sauvola_ms.cc | 66 +-
scribo/src/binarization/ppm_sauvola_ms_split.cc | 65 +-
scribo/src/binarization/sauvola.cc | 79 ++
scribo/src/binarization/sauvola_debug.cc | 116 ++
scribo/src/binarization/sauvola_ms.cc | 398 +-----
scribo/src/binarization/sauvola_ms_debug.cc | 147 +++
scribo/src/binarization/sauvola_ms_split.cc | 123 ++
scribo/src/contest/Makefile.am | 23 +
scribo/src/contest/hdibco-2010/Makefile.am | 27 +
.../src/contest/hdibco-2010/sauvola_ms_hdibco.cc | 85 ++
scribo/src/debug/Makefile.am | 13 +-
scribo/src/debug/highlight_text_area.cc | 97 ++
scribo/src/multi_scale/Makefile.am | 22 -
scribo/src/multi_scale/find_lines.cc | 180 ---
scribo/src/pbm_text_in_doc.cc | 130 ++
scribo/src/postprocessing/Makefile.am | 26 +
scribo/src/postprocessing/fill_object_holes.cc | 67 +
scribo/src/preprocessing/Makefile.am | 42 +-
scribo/src/preprocessing/denoise.cc | 69 -
scribo/src/preprocessing/denoise_bg.cc | 67 +
scribo/src/preprocessing/denoise_fg.cc | 66 +
scribo/src/preprocessing/rotate_90.cc | 51 +
scribo/src/preprocessing/subsample.cc | 16 +-
scribo/src/preprocessing/to_pgm.cc | 46 +
scribo/src/text/Makefile.am | 18 +-
scribo/src/text/pbm_lines_recognition.cc | 107 ++
scribo/src/text/pbm_recognition.cc | 20 +-
scribo/src/text/recognition.cc | 101 --
scribo/src/text_in_article.cc | 331 -----
scribo/src/text_in_doc.cc | 304 -----
scribo/src/text_in_doc_ppm.cc | 322 -----
scribo/src/text_in_doc_preprocess.cc | 103 ++
scribo/src/text_in_photo.cc | 250 ----
scribo/src/text_in_photo_invert.cc | 245 ----
scribo/src/text_in_photo_pbm_fast.cc | 441 -------
scribo/src/text_in_photo_ppm.cc | 532 --------
scribo/src/text_in_photo_ppm_fast.cc | 635 ---------
scribo/src/text_in_picture.cc | 659 ++++++++++
scribo/subsampling/bilinear.hh | 114 ++
scribo/table/erase.hh | 10 +-
scribo/table/extract.hh | 3 +-
scribo/table/internal/align_lines.hh | 2 +-
scribo/table/internal/connect_lines.hh | 2 +-
scribo/table/internal/repair_lines.hh | 2 +-
scribo/tests/Makefile.am | 1 +
scribo/tests/img/text_to_group.pgm | Bin 0 -> 3053 bytes
scribo/tests/img/wildly.pbm | Bin 0 -> 2208 bytes
scribo/tests/preprocessing/Makefile.am | 10 +-
scribo/tests/preprocessing/crop.cc | 51 +
.../preprocessing/crop_without_localization.cc | 55 +
scribo/tests/preprocessing/deskew.cc | 52 +
scribo/tests/preprocessing/unskew.cc | 44 -
scribo/tests/toolchain/Makefile.am | 20 +
scribo/tests/toolchain/nepomuk/Makefile.am | 45 +
scribo/tests/toolchain/nepomuk/text_extraction.cc | 44 +
scribo/text/clean.hh | 65 +-
scribo/text/clean_inplace.hh | 147 +++
scribo/text/extract_lines.hh | 6 +-
scribo/text/merging.hh | 49 +-
scribo/text/recognition.hh | 96 +-
scribo/toolchain/nepomuk/text_extraction.hh | 160 +++
scribo/toolchain/text_in_doc.hh | 294 +++++
scribo/upsampling/bs2x.hh | 147 +++
scribo/upsampling/eagle.hh | 145 +++
scribo/util/all.hh | 46 -
scribo/util/text.hh | 278 ----
635 files changed, 61188 insertions(+), 6456 deletions(-)
diff --cc ChangeLog
index 3123be9,4cac155..b41d019
--- a/ChangeLog
+++ b/ChangeLog
@@@ -2,6 -2,18 +2,22 @@@
* m4/autotroll.m4: Fix invalid configuration when Qt is missing.
+ 2010-06-25 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * configure.ac: Set HAVE_QT correctly.
+
+ 2010-06-15 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * configure.ac: Configure scribo/demo.
+
+ 2010-06-03 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * configure.ac: Configure several directories in scribo/.
+
++2010-07-01 Guillaume Lazzara <z(a)lrde.epita.fr>
++
++ * m4/autotroll.m4: Fix invalid configuration when Qt is missing.
++
2010-06-03 Guillaume Lazzara <z(a)lrde.epita.fr>
* configure.ac: Check for Qt library using AutoTroll.
diff --cc configure.ac
index e6b01b8,0826019..46dc531
--- a/configure.ac
+++ b/configure.ac
@@@ -210,14 -165,13 +210,14 @@@ OLN_WITH_LIB([TIFF], [tiff.h], [tiff]
OLN_WITH_LIB([GDCM], [gdcm-2.0/gdcmReader.h], [gdcmCommon], [gdcm], [GDCM],
[-lgdcmzlib])
-# Tesseract
-OLN_WITH_LIB([TESSERACT], [tesseract/baseapi.h], [tesseract_full], [tesseract],
[TESSERACT])
+# Tesseract.
+OLN_WITH_LIB([TESSERACT], [tesseract/baseapi.h], [tesseract_full],
+ [tesseract], [TESSERACT])
# Qt.
- AT_WITH_QT([], [], [],
- AC_DEFINE([HAVE_QT], 1, [Define to 1 if we can use Qt]),
- AC_DEFINE([HAVE_QT], 0))
+ AT_WITH_QT([+xml], [], [],
+ AC_DEFINE([HAVE_QT], 0, [Define to 1 if we can use Qt]),
+ AC_DEFINE([HAVE_QT], 1))
AM_CONDITIONAL([HAVE_QT], [test x$QT_PATH != x])
@@@ -313,17 -245,10 +318,19 @@@ AC_CONFIG_FILES(
scribo/tests/preprocessing/Makefile
scribo/tests/table/Makefile
scribo/tests/text/Makefile
+ scribo/tests/toolchain/Makefile
+ scribo/tests/toolchain/nepomuk/Makefile
scribo/tests/unit_test/Makefile
])
+
+# Flags for Scribo
+AC_ARG_VAR([SCRIBO_CXXFLAGS], [C++ compiler flags for Scribo binaries])
+AC_ARG_VAR([SCRIBO_TESTS_CXXFLAGS], [C++ compiler flags for Scribo tests])
+if test "$GXX" = yes || test "$ICPC" = yes; then
+ test -z "$SCRIBO_CXXFLAGS" && SCRIBO_CXXFLAGS="-DNDEBUG
-O2"
+ # FIXME: We might want to use -ggdb when g++ is used.
+ test -z "$SCRIBO_TESTS_CXXFLAGS" && SCRIBO_TESTS_CXXFLAGS="-g
-O0"
+fi
dnl>>
## --------------- ##
diff --cc milena/ChangeLog
index 4a45ec9,24cf7f3..7705ca4
--- a/milena/ChangeLog
+++ b/milena/ChangeLog
@@@ -1,30 -1,63 +1,104 @@@
++2010-06-21 Yann Jacquelet <jacquelet(a)lrde.epita.fr>
++
++ Fix the way to convert unsigned to float.
++
++ * mln/convert/from_to.hxx: New conversion utilities.
++ * mln/convert/impl/from_unsigned_to_value.hh: New conversion utilities.
++
++2009-12-02 Yann Jacquelet <jacquelet(a)lrde.epita.fr>
++
++ Fix the outside template use case for the convolve macros.
++
++ * mln/linear/ch_convolve.hh (mln_ch_convolve_, mln_ch_convolve_grad_):
++ Define new macros to work outside templates.
++
+ 2010-06-28 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Revamp and fix a bug in io::magick::*.
+
+ * mln/io/magick/load.hh: Revamp.
+
+ * mln/io/magick/save.hh: Fix a bug while saving. RGB values must
+ be between 0 and 1.
+
+ * tests/io/magick/save.cc: Remove useless output.
+
+ 2010-06-25 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add new tests.
+
+ * tests/convert/Makefile.am,
+ * tests/subsampling/Makefile.am: Add targets for these new tests.
+
+ * tests/convert/to_qimage.cc,
+ * tests/convert/to_qimage_nocopy.cc,
+ * tests/subsampling/antialiased.cc: New.
+
+ 2010-06-25 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Fix conversion routines towards qimage.
+
+ * mln/convert/to_qimage.hh: Fix invalid conversions.
+
+ * mln/convert/to_qimage_nocopy.hh: Avoid a warning.
+
+ 2010-06-25 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * mln/accu/count_value.hh: Add properties.
+
+ 2010-06-18 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Fix a bug in conversions from vec to point.
+
+ * milena/mln/core/concept/gpoint.hh: Fix comment.
+
+ * milena/mln/core/image/image1d.hh: Share a dpoint value.
+
+ * milena/mln/core/point.hh: Handle point1d.
+
+ 2010-06-15 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Introduce labeling::value_and_compute.
+
+ * mln/canvas/labeling/video.hh: Call more functor members.
+
+ * mln/labeling/value.hh: Provide new members to the functor.
+
+ * mln/labeling/value_and_compute.hh: New functor computing
+ attributes while labeling.
+
+ 2010-05-18 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * mln/io/magick/load.hh: set minimum resolution for PDF files to
+ 300DPI.
+
+2010-07-01 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Fix a few tests.
+
+ * tests/core/other/box_runstart_piter.cc,
+ * tests/geom/translate.cc: Fix test.
+
+2010-07-01 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Update generated images included in the doc.
+
+ * doc/figures/fill-subdomain-3.ppm,
+ * doc/figures/ima2d-rot-2.ppm,
+ * doc/figures/labeling-compute-2.ppm,
+ * doc/figures/tuto3_colorize-2.ppm,
+ * doc/figures/tuto4_genericity_and_algorithms-5.ppm: Update
+ generated images.
+
+2010-07-01 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add from_to overloads for conversions from algebra::vec to point.
+
+ * mln/convert/from_to.hxx: Add new prototypes.
+
+ * mln/core/point.hh: Add new from_to overloads. Remove specialized
+ constructors causing ambiguities.
+
2010-06-03 Guillaume Lazzara <z(a)lrde.epita.fr>
Add a function to convert qt::rgb32 values to int_u8.
diff --cc milena/tests/convert/Makefile.am
index 856c143,c5a5c14..e4e3545
--- a/milena/tests/convert/Makefile.am
+++ b/milena/tests/convert/Makefile.am
@@@ -14,8 -14,12 +14,9 @@@
#
# You should have received a copy of the GNU General Public License
# along with Olena. If not, see <http://www.gnu.org/licenses/>.
-#
-
-## Process this file through Automake to create Makefile.in.
include $(top_srcdir)/milena/tests/tests.mk
+ include $(top_srcdir)/build-aux/autotroll.mk
SUBDIRS = impl
diff --cc milena/tests/io/magick/save.cc
index a4efd12,9af3e22..a6361c6
--- a/milena/tests/io/magick/save.cc
+++ b/milena/tests/io/magick/save.cc
@@@ -44,14 -43,15 +43,12 @@@ int main(
io::ppm::load(lena_mln, MLN_IMG_DIR "/tiny.ppm");
value::rgb8 c = lena_mln(p);
- io::magick::save(lena_mln, "tiny.png");
+ io::magick::save(lena_mln, "save-tiny.png");
image2d<value::rgb8> lena_im;
- io::magick::load(lena_im, "tiny.png");
-
+ io::magick::load(lena_im, "save-tiny.png");
- mln_assertion(lena_im(p) == c);
-
- io::ppm::save(lena_im, "save-tiny.ppm");
+ mln_assertion(lena_im(p) == c);
-
mln_assertion(lena_im.domain() == lena_mln.domain());
mln_assertion(lena_im == lena_mln);
-
}
diff --cc milena/tests/subsampling/Makefile.am
index 122b1a9,e59ed8d..7e859b4
--- a/milena/tests/subsampling/Makefile.am
+++ b/milena/tests/subsampling/Makefile.am
@@@ -13,5 -13,18 +13,15 @@@
#
# You should have received a copy of the GNU General Public License
# along with Olena. If not, see <http://www.gnu.org/licenses/>.
-#
-
-## Process this file through Automake to create Makefile.in.
include $(top_srcdir)/milena/tests/tests.mk
+
+
+ check_PROGRAMS = \
+ antialiased
+
+
+ antialiased_SOURCES = antialiased.cc
+
+
+ TESTS = $(check_PROGRAMS)
diff --cc scribo/Makefile.am
index 0f98de6,ff8f5a0..38c84a7
--- a/scribo/Makefile.am
+++ b/scribo/Makefile.am
@@@ -1,4 -1,4 +1,5 @@@
--# Copyright (C) 2009 EPITA Research and Development Laboratory (LRDE).
++# Copyright (C) 2009, 2010 EPITA Research and Development Laboratory
++# (LRDE).
#
# This file is part of Olena.
#
@@@ -14,7 -14,9 +15,7 @@@
# You should have received a copy of the GNU General Public License
# along with Olena. If not, see <http://www.gnu.org/licenses/>.
- SUBDIRS = tests src
-## Process this file through Automake to create Makefile.in.
-
+ SUBDIRS = demo tests src
.PHONY: bin
diff --cc scribo/demo/Makefile.am
index 5030e1e,365260d..b1d3c5b
--- a/scribo/demo/Makefile.am
+++ b/scribo/demo/Makefile.am
@@@ -15,12 -14,11 +15,9 @@@
# You should have received a copy of the GNU General Public License
# along with Olena. If not, see <http://www.gnu.org/licenses/>.
- include $(top_srcdir)/scribo/scribo.mk
-## Process this file through Automake to create Makefile.in.
-
+ if HAVE_QT
- .PHONY : demo
+ SUBDIRS = review viewer
- Makefile.demo:
- qmake-qt4 $(srcdir)/demo/demo.pro -o Makefile.demo
+ endif HAVE_QT
- demo: Makefile.demo
- make -f Makefile.demo all
diff --cc scribo/src/binarization/sauvola_ms.cc
index 30742a3,984ddee..d85eece
--- a/scribo/src/binarization/sauvola_ms.cc
+++ b/scribo/src/binarization/sauvola_ms.cc
@@@ -238,169 -80,39 +80,37 @@@ int main(int argc, char *argv[]
trace::entering("main");
- mln::debug::internal::filename_prefix = argv[1];
-
- // Window size.
- unsigned w = atoi(argv[2]);
+ // Window size
+ unsigned w_1;
+ if (argc >= 4)
+ w_1 = atoi(argv[3]); // Scale 1
+ else
+ w_1 = 101u;
// First subsampling scale.
- unsigned s = atoi(argv[4]);
-
- // Number of subscales.
- unsigned nb_subscale = atoi(argv[3]);
-
- // Subscale step.
- unsigned q = atoi(argv[5]);
-
- std::cout << "Running Sauvola_ms with w = " << w
- << ", s = " << s
- << ", nb_subscale = " << nb_subscale
- << ", q = " << q
- << std::endl;
-
- typedef image2d<value::int_u8> I;
- dpoint2d none(0, 0);
-
- mln::util::timer timer_;
-
- timer_.start();
- I input_full;
- io::pgm::load(input_full, argv[1]);
- std::cout << "Image loaded - " << timer_ << std::endl;
-
- timer_.restart();
-
- util::array<object_image(L)> lbls;
-
-
-
- // First subsampling 1/s
-
- // std::cout << "1/" << s << std::endl;
- timer_.start();
- I input = mln::subsampling::subsampling(input_full, none, s);
-
- integral_image<int_u8> simple, squared;
- image2d<int_u8>
- t_1 = scribo::binarization::sauvola_threshold(input, w, simple, squared);
-
- label_16 nb1;
- image2d<bool> b_1 = apply_sauvola(input, t_1, 1);
-
- {
- lbls.append(primitive::extract::objects(b_1, c8(), nb1));
- object_image(L) lbl_raw(lbls[0]);
- lbls[0] = filter::objects_large(lbls[0], atoi(argv[6]));
- scribo::debug::save_object_diff(lbl_raw, lbls[0],
- mln::debug::filename("filter_diff.ppm", 2));
- }
-
- std::cout << "Scale 2 - 1/" << s << " Done - "
<< timer_ << std::endl;
-
-
-
-
- // Additional subscales.
- for (unsigned i = 1; i < nb_subscale; ++i)
- {
- unsigned ratio = std::pow(float(q), int(i));
- // std::cout << "Scale " << 2 + i << " - 1/"
<< s * ratio << std::endl;
- timer_.restart();
- unsigned
- min_size = atoi(argv[5 + i]) / ratio,
- max_size;
- if ((3 + i) == static_cast<unsigned>(argc))
- max_size = 0; // Last subscale, so not max size limit.
- else
- max_size = atoi(argv[6 + i]) / ratio;
-
- lbls.append(get_objects(input, min_size, max_size, ratio, w, i));
- std::cout << "Scale " << 2 + i
- << " - 1/" << s * ratio
- << " Done - " << timer_ << std::endl;
- }
-
- std::cout << "--------" << std::endl;
-
- // Constructing "scale image".
- image2d<int_u8> e;
- initialize(e, input);
-
- data::fill(e, 0);
-
- typedef object_image(L) obj_t;
-
- for (int i = nb_subscale - 1; i >= 0; --i)
- {
- unsigned ratio = std::pow(float(q), int(i));
-
- std::cout << "Scale " << 2 + i << " - 1/"
<< s * ratio << " merged" << std::endl;
-
- mln_piter_(obj_t) p(lbls[i].domain());
- for_all(p)
- if (lbls[i](p) != 0 && e(p * ratio) == 0)
- {
- box2d b(p * ratio, p * ratio + mln::down_right * (ratio - 1));
- data::fill((e | b).rw(), i + 1);
- }
- }
-
- std::cout << "--------" << std::endl;
-
- /// Saving "scale image".
- {
- mln::fun::i2v::array<value::int_u8> f(nb_subscale + 1, 0);
- for (unsigned i = 1; i <= nb_subscale; ++i)
- f(i) = 255 / nb_subscale * i;
-
- io::pgm::save(e, "e_raw.pgm");
- io::pgm::save(data::transform(e, f), "e.pgm");
- }
-
-
- /// Saving influence zone scale image.
- image2d<int_u8> e_ext =
- transform::influence_zone_geodesic_saturated(e, c8(), mln_max(unsigned));
- io::pgm::save(e_ext, "e_ext.pgm");
-
-
- /// Creating window size image
- std::cout << "Creating window size image..." << std::endl;
- mln::fun::i2v::array<value::int_u16> f(nb_subscale, 0);
- for (unsigned i = 0; i < nb_subscale; ++i)
- {
- unsigned ratio = std::pow(float(q), int(i));
- f(i) = ratio * w;
- }
-
- image2d<int_u16> wsize = data::transform(e_ext, f);
- io::pgm::save(data::stretch(int_u8(), wsize), "wsize.pgm");
-
-
-
- /// Constructing threshold image
- image2d<int_u8> t;
- initialize(t, input);
-
- std::cout << "Computing threshold image..." << std::endl;
- timer_.restart();
- mln_piter_(L) p(input.domain());
- for_all(p)
- t(p) = binarization::internal::compute_sauvola_threshold(p,
- simple,
- squared,
- wsize(p));
- std::cout << "Compute t Done - " << timer_ << std::endl;
-
- io::pgm::save(t, "t.pgm");
-
-
- timer_.restart();
-
- /// Applying threshold image and save.
- io::pbm::save(apply_sauvola(input_full, t, s), argv[argc - 1]);
- std::cout << "sauvola applied and saved Done - " << timer_
<< std::endl;
-
-
- trace::exiting("main");
+ unsigned s;
+ if (argc >= 5)
+ s = atoi(argv[4]);
+ else
+ s = 3u;
+
+ double k;
+ if (argc >= 6)
+ k = atof(argv[5]);
+ else
+ k = 0.34f;
+
+ // Load
+ image2d<value::rgb8> input_1;
+ io::magick::load(input_1, argv[1]);
+
+ // Convert to Gray level image.
+ image2d<value::int_u8>
+ input_1_gl = data::transform(input_1, mln::fun::v2v::rgb_to_int_u<8>());
+
+ // Binarize
+ image2d<bool>
+ output = scribo::binarization::sauvola_ms(input_1_gl, w_1, s, k);
+
+ io::pbm::save(output, argv[2]);
}
-
-
diff --cc scribo/src/debug/Makefile.am
index 6695113,6055ed6..f3dd4f9
--- a/scribo/src/debug/Makefile.am
+++ b/scribo/src/debug/Makefile.am
@@@ -73,6 -76,14 +73,13 @@@ show_objects_small_SOURCES = show_objec
show_objects_thick_SOURCES = show_objects_thick.cc
show_objects_thin_SOURCES = show_objects_thin.cc
- ## FIXME: Does not compile.
- ## bin_PROGRAMS += show_links_several_right_overlap
- ## show_links_several_right_overlap_SOURCES = show_links_several_right_overlap.cc
-
+ if HAVE_MAGICKXX
+
+ bin_PROGRAMS += highlight_text_area
+ highlight_text_area_SOURCES = highlight_text_area.cc
+ highlight_text_area_CPPFLAGS = $(AM_CPPFLAGS) \
+ `Magick++-config --cppflags`
+ highlight_text_area_LDFLAGS = $(AM_LDFLAGS) \
+ -lpthread `Magick++-config --libs`
+
-endif HAVE_MAGICKXX
++endif HAVE_MAGICKXX
diff --cc scribo/src/preprocessing/Makefile.am
index 5b355c9,6096d8f..8b99bf2
--- a/scribo/src/preprocessing/Makefile.am
+++ b/scribo/src/preprocessing/Makefile.am
@@@ -29,5 -33,38 +30,38 @@@ denoise_fg_SOURCES = denoise_fg.c
homogeneous_contrast_SOURCES = homogeneous_contrast.cc
preprocess_SOURCES = preprocess.cc
split_bg_fg_SOURCES = split_bg_fg.cc
- subsample_SOURCES = subsample.cc
unskew_SOURCES = unskew.cc
+
+ if HAVE_MAGICKXX
+
+ bin_PROGRAMS += rotate_90
+ rotate_90_SOURCES = rotate_90.cc
+ rotate_90_CPPFLAGS = $(AM_CPPFLAGS) \
+ $(TESSERACT_CPPFLAGS) \
+ `Magick++-config --cppflags`
+
+ rotate_90_LDFLAGS = $(AM_LDFLAGS) \
+ $(TESSERACT_LDFLAGS) \
+ -lpthread `Magick++-config --libs`
+
+ bin_PROGRAMS += to_pgm
+ to_pgm_SOURCES = to_pgm.cc
+ to_pgm_CPPFLAGS = $(AM_CPPFLAGS) \
+ $(TESSERACT_CPPFLAGS) \
+ `Magick++-config --cppflags`
+
+ to_pgm_LDFLAGS = $(AM_LDFLAGS) \
+ $(TESSERACT_LDFLAGS) \
+ -lpthread `Magick++-config --libs`
+
+ bin_PROGRAMS += subsample
+ subsample_SOURCES = subsample.cc
+ subsample_CPPFLAGS = $(AM_CPPFLAGS) \
+ $(TESSERACT_CPPFLAGS) \
+ `Magick++-config --cppflags`
+
+ subsample_LDFLAGS = $(AM_LDFLAGS) \
+ $(TESSERACT_LDFLAGS) \
+ -lpthread `Magick++-config --libs`
+
-endif HAVE_MAGICKXX
++endif HAVE_MAGICKXX
diff --cc scribo/tests/preprocessing/Makefile.am
index f6ff62a,f94a852..24686fe
--- a/scribo/tests/preprocessing/Makefile.am
+++ b/scribo/tests/preprocessing/Makefile.am
@@@ -17,12 -20,14 +17,16 @@@
include $(top_srcdir)/scribo/tests/tests.mk
check_PROGRAMS = \
- unskew \
- rotate_90
+ crop \
+ crop_without_localization \
+ rotate_90 \
+ deskew
- unskew_SOURCES = unskew.cc
+ crop_SOURCES = crop.cc
+ crop_without_localization_SOURCES = crop_without_localization.cc
rotate_90_SOURCES = rotate_90.cc
+ deskew_SOURCES = deskew.cc
TESTS = $(check_PROGRAMS)
+
+MOSTLYCLEANFILES = unskew.pbm
diff --cc scribo/tests/toolchain/Makefile.am
index 0000000,826fb86..1e4a032
mode 000000,100644..100644
--- a/scribo/tests/toolchain/Makefile.am
+++ b/scribo/tests/toolchain/Makefile.am
@@@ -1,0 -1,23 +1,20 @@@
+ # Copyright (C) 2010 EPITA Research and Development Laboratory (LRDE).
+ #
+ # This file is part of Olena.
+ #
+ # Olena is free software: you can redistribute it and/or modify it under
+ # the terms of the GNU General Public License as published by the Free
+ # Software Foundation, version 2 of the License.
+ #
+ # Olena is distributed in the hope that it will be useful,
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ # General Public License for more details.
+ #
+ # You should have received a copy of the GNU General Public License
+ # along with Olena. If not, see <http://www.gnu.org/licenses/>.
-#
-
-## Process this file through Automake to create Makefile.in.
+
+ include $(top_srcdir)/scribo/tests/tests.mk
+
+ SUBDIRS = \
- nepomuk
++ nepomuk
hooks/post-receive
--
Olena, a generic and efficient image processing platform