Olena-patches
Threads by month
- ----- 2025 -----
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2004 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- 9625 discussions

24 Aug '10
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Olena, a generic and efficient image processing platform".
The branch exp/scribo-z has been updated
via 4515a1dc6803595b389196a908ed01c18c63a804 (commit)
via db5fcd6bc95f6202aed69fd811d18584e719cdf5 (commit)
from 18262984b19ffbd72f33e37e5e208b03521513e1 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
No new revisions were added by this update.
-----------------------------------------------------------------------
Summary of changes:
milena/ChangeLog | 4 +++
milena/mln/value/int_s.hh | 11 ++++++-
scribo/ChangeLog | 5 +++
scribo/scribo/core/line_info.hh | 56 +++++++++++++++++++++++++++------------
4 files changed, 57 insertions(+), 19 deletions(-)
hooks/post-receive
--
Olena, a generic and efficient image processing platform
1
0
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Olena, a generic and efficient image processing platform".
The branch next has been updated
via 4515a1dc6803595b389196a908ed01c18c63a804 (commit)
via db5fcd6bc95f6202aed69fd811d18584e719cdf5 (commit)
via 18262984b19ffbd72f33e37e5e208b03521513e1 (commit)
via 6e783da9ec7535fe373a5a9f90fce24495a84d93 (commit)
via 206ddb6ba62ad2cdee862db36c025761d52898af (commit)
via d2e8cf68fc8af6d5de279bb70535516f53e56df8 (commit)
from 2520689648f68e6cbd3eb47c375102053af53019 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
No new revisions were added by this update.
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 13 ++++++
configure.ac | 81 ++++++++++++++++++++++++--------------
m4/oln-with-lib.m4 | 7 ++-
milena/ChangeLog | 4 ++
milena/mln/value/int_s.hh | 11 ++++-
scribo/ChangeLog | 9 ++++
scribo/scribo/core/line_info.hh | 56 +++++++++++++++++++--------
scribo/src/Makefile.am | 53 +++++++++----------------
8 files changed, 149 insertions(+), 85 deletions(-)
hooks/post-receive
--
Olena, a generic and efficient image processing platform
1
0

24 Aug '10
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Olena, a generic and efficient image processing platform".
The branch exp/next-build-ok has been updated
discards 7aad3ee217c527eef754831822f2067fad7c3adb (commit)
discards 38c94688a42d132ad9b2b8d5b2ff8a7914e1f8cd (commit)
discards 79263eb8957ea0cc946d73fc71cfdfd9f6b31abe (commit)
via 18262984b19ffbd72f33e37e5e208b03521513e1 (commit)
via 6e783da9ec7535fe373a5a9f90fce24495a84d93 (commit)
via 206ddb6ba62ad2cdee862db36c025761d52898af (commit)
via d2e8cf68fc8af6d5de279bb70535516f53e56df8 (commit)
via 2520689648f68e6cbd3eb47c375102053af53019 (commit)
via eecd7d1ced5f4dfc8d46bccc2edc1dacddbe635e (commit)
via c6904964636040aa2cf81dbe4f0c9f26078e8fac (commit)
via 565a8acd20101cf22d58b674d4d1695d8e9926c6 (commit)
via 7671c7df2acc25243c83131813db612be8a654b2 (commit)
via 15a057175710227bdea5a9702dcbf5bd64704a9d (commit)
This update added new revisions after undoing existing revisions. That is
to say, the old revision is not a strict subset of the new revision. This
situation occurs when you --force push a change and generate a repository
containing something like this:
* -- * -- B -- O -- O -- O (7aad3ee217c527eef754831822f2067fad7c3adb)
\
N -- N -- N (18262984b19ffbd72f33e37e5e208b03521513e1)
When this happens we assume that you've already had alert emails for all
of the O revisions, and so we here report only the revisions in the N
branch from the common base, B.
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
No new revisions were added by this update.
-----------------------------------------------------------------------
Summary of changes:
AUTHORS | 12 ++-
ChangeLog | 14 +++
m4/oln-with-lib.m4 | 7 +-
m4/swig.m4 | 9 +-
milena/ChangeLog | 28 +++++
milena/mln/io/magick/load.hh | 202 ++++++++++++++++++------------------
milena/mln/io/magick/save.hh | 145 ++++++++++++++-----------
milena/sandbox/ChangeLog | 44 ++++----
milena/tests/io/magick/Makefile.am | 8 +-
milena/tests/io/magick/load.cc | 72 +++++++++++--
milena/tests/io/magick/save.cc | 86 +++++++++++++--
scribo/ChangeLog | 7 ++
12 files changed, 417 insertions(+), 217 deletions(-)
hooks/post-receive
--
Olena, a generic and efficient image processing platform
1
0

24 Aug '10
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Olena, a generic and efficient image processing platform".
The branch exp/scribo-z has been updated
discards 2434455d28293575f4bacc80f3e7bb3cd648c3c0 (commit)
via 18262984b19ffbd72f33e37e5e208b03521513e1 (commit)
via 6e783da9ec7535fe373a5a9f90fce24495a84d93 (commit)
via 206ddb6ba62ad2cdee862db36c025761d52898af (commit)
via d2e8cf68fc8af6d5de279bb70535516f53e56df8 (commit)
via 2520689648f68e6cbd3eb47c375102053af53019 (commit)
via eecd7d1ced5f4dfc8d46bccc2edc1dacddbe635e (commit)
via c6904964636040aa2cf81dbe4f0c9f26078e8fac (commit)
This update added new revisions after undoing existing revisions. That is
to say, the old revision is not a strict subset of the new revision. This
situation occurs when you --force push a change and generate a repository
containing something like this:
* -- * -- B -- O -- O -- O (2434455d28293575f4bacc80f3e7bb3cd648c3c0)
\
N -- N -- N (18262984b19ffbd72f33e37e5e208b03521513e1)
When this happens we assume that you've already had alert emails for all
of the O revisions, and so we here report only the revisions in the N
branch from the common base, B.
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
No new revisions were added by this update.
-----------------------------------------------------------------------
Summary of changes:
AUTHORS | 12 +++++-
ChangeLog | 23 ++++++++++++
configure.ac | 81 ++++++++++++++++++++++++++---------------
m4/oln-with-lib.m4 | 7 +++-
m4/swig.m4 | 9 +++--
milena/mln/io/magick/save.hh | 1 +
scribo/ChangeLog | 4 ++
scribo/src/Makefile.am | 21 +++++------
8 files changed, 109 insertions(+), 49 deletions(-)
hooks/post-receive
--
Olena, a generic and efficient image processing platform
1
0

24 Aug '10
This is a merge commit message of the following branches:
Merge: eecd7d1... 53a57b1...
Conflicts:
milena/mln/io/magick/load.hh
milena/mln/io/magick/save.hh
milena/tests/io/magick/save.cc
scribo/src/Makefile.am
ChangeLog | 117 +
Makefile.am | 4 +-
bootstrap | 11 +-
build-aux/autotroll.mk | 108 +
build-aux/build_unit_test.sh | 201 ++-
configure.ac | 286 +++-
m4/autotroll.m4 | 565 +++++
m4/boost.m4 | 1038 +++++++++
m4/oln-with-lib.m4 | 5 +-
m4/pkg.m4 | 155 ++
milena/ChangeLog | 802 +++++++-
milena/doc/figures/fill-subdomain-2.ppm | Bin 206 -> 206 bytes
milena/doc/figures/fill-subdomain-3.ppm | Bin 206 -> 206 bytes
milena/doc/figures/labeling-compute-2.ppm | Bin 206 -> 206 bytes
milena/doc/figures/tuto3_colorize-2.ppm | Bin 191 -> 191 bytes
.../figures/tuto4_genericity_and_algorithms-5.ppm | Bin 12406 -> 12406 bytes
milena/doc/tutorial.tex | 4 +
milena/headers.mk | 27 +-
milena/img/BUG_lean_ascii.pgm.gz | Bin 75726 -> 0 bytes
milena/img/picasso.ppm | Bin 0 -> 244671 bytes
milena/mln/accu/center.hh | 14 +-
milena/mln/accu/count_value.hh | 30 +-
milena/mln/accu/internal/base.hh | 4 +-
milena/mln/accu/label_used.hh | 5 +-
milena/mln/accu/math/sum.hh | 3 +-
milena/mln/accu/pair.hh | 26 +
milena/mln/accu/stat/variance.hh | 4 +-
milena/mln/accu/tuple.hh | 13 +-
milena/mln/border/thickness.hh | 4 +
milena/mln/canvas/labeling/blobs.hh | 22 +-
milena/mln/canvas/labeling/video.hh | 8 +-
milena/mln/convert/from_to.hxx | 45 +
milena/mln/convert/impl/from_float_to_value.hh | 10 +
milena/mln/convert/impl/from_unsigned_to_value.hh | 10 +
milena/mln/convert/to_qimage.hh | 300 +++
milena/mln/convert/to_qimage_nocopy.hh | 180 ++
milena/mln/core/alias/dpoint1d.hh | 4 +
milena/mln/core/alias/dpoint2d.hh | 4 +
milena/mln/core/alias/dpoint3d.hh | 4 +
milena/mln/core/alias/neighb3d.hh | 42 +
milena/mln/core/alias/window2d.hh | 3 +-
milena/mln/core/concept/function.hh | 43 +
milena/mln/core/concept/gpoint.hh | 2 +-
milena/mln/core/image/image1d.hh | 6 +-
milena/mln/core/image/image3d.hh | 9 +-
milena/mln/core/image/imorph/interpolated.hh | 13 +-
milena/mln/core/image/imorph/labeled_image.hh | 2 +
milena/mln/core/internal/box_impl.hh | 61 +-
milena/mln/core/internal/labeled_image_base.hh | 31 +-
milena/mln/core/point.hh | 164 ++-
milena/mln/core/routine/extend.hh | 57 +-
milena/mln/core/site_set/box.hh | 37 +-
milena/mln/data/fill_with_value.hh | 3 +-
milena/mln/data/paste_without_localization.hh | 311 +++-
milena/mln/data/split.hh | 99 +
milena/mln/debug/mosaic.hh | 141 ++
milena/mln/debug/slices_2d.hh | 15 +-
milena/mln/debug/z_order.hh | 159 ++
milena/mln/draw/all.hh | 1 +
milena/mln/draw/box.hh | 5 +-
milena/mln/draw/box_plain.hh | 92 +
milena/mln/draw/dashed_line.hh | 113 +
milena/mln/draw/line.hh | 1 +
milena/mln/fun/all.hh | 2 +
milena/mln/fun/internal/x2x_linear_impl.hh | 20 +-
milena/mln/fun/n2v/all.hh | 51 +
milena/mln/fun/n2v/white_gaussian.hh | 104 +
milena/mln/fun/v2v/all.hh | 1 +
milena/mln/fun/v2v/hsl_to_rgb.hh | 3 +
milena/mln/fun/v2v/qt_rgb_to_int_u.hh | 71 +
milena/mln/fun/v2v/rgb_to_int_u.hh | 69 +
milena/mln/fun/v2v/saturate.hh | 9 +-
milena/mln/fun/x2x/composed.hh | 18 +-
milena/mln/fun/x2x/rotation.hh | 5 +-
milena/mln/fun/x2x/translation.hh | 6 +-
milena/mln/geom/all.hh | 4 +-
milena/mln/geom/horizontal_symmetry.hh | 194 ++
milena/mln/geom/max_col.hh | 8 +-
milena/mln/geom/max_row.hh | 8 +-
milena/mln/geom/min_col.hh | 8 +-
milena/mln/geom/min_row.hh | 8 +-
milena/mln/geom/nslices.hh | 68 +
milena/mln/geom/nslis.hh | 68 -
milena/mln/geom/rotate.hh | 107 +-
milena/mln/geom/size3d.hh | 5 +-
milena/mln/geom/vertical_symmetry.hh | 196 ++
milena/mln/histo/compute.hh | 15 +-
milena/mln/histo/equalize.hh | 97 +
milena/mln/io/dicom/all.hh | 4 +-
milena/mln/io/dicom/get_header.hh | 114 +
milena/mln/io/dicom/load.hh | 17 +-
milena/mln/io/dump/all.hh | 1 +
milena/mln/io/dump/get_header.hh | 128 ++
milena/mln/io/dump/save.hh | 3 +
milena/mln/io/fld/load.hh | 13 +-
milena/mln/io/fld/max_components.hh | 32 +-
milena/mln/io/magick/load.hh | 4 +-
milena/mln/io/magick/save.hh | 7 +-
milena/mln/io/plot/save.hh | 28 +-
milena/mln/io/pnm/load.hh | 3 +-
milena/mln/io/raw/all.hh | 49 +
milena/mln/io/raw/get_header.hh | 136 ++
milena/mln/io/raw/load.hh | 226 ++
milena/mln/io/raw/save.hh | 177 ++
milena/mln/labeling/blobs.hh | 4 +-
milena/mln/labeling/blobs_and_compute.hh | 60 +-
milena/mln/labeling/colorize.hh | 75 +-
milena/mln/labeling/compute.hh | 415 ++++-
milena/mln/labeling/flat_zones.hh | 34 +-
milena/mln/labeling/pack.hh | 2 +-
milena/mln/labeling/relabel.hh | 23 +-
milena/mln/labeling/value.hh | 16 +-
milena/mln/labeling/value_and_compute.hh | 241 ++
milena/mln/linear/ch_convolve.hh | 9 +-
milena/mln/linear/gaussian.hh | 8 +-
milena/mln/linear/gaussian/impl.hh | 13 +-
milena/mln/literal/black.hh | 4 +
milena/mln/literal/colors.hh | 7 +-
milena/mln/literal/identity.hh | 4 +
milena/mln/literal/one.hh | 3 +
milena/mln/literal/origin.hh | 6 +-
milena/mln/literal/white.hh | 4 +
milena/mln/literal/zero.hh | 4 +
milena/mln/make/box3d.hh | 15 +-
milena/mln/make/image.hh | 7 +-
milena/mln/math/diff_abs.hh | 5 +-
milena/mln/registration/icp.hh | 5 +-
milena/mln/subsampling/antialiased.hh | 458 ++++
milena/mln/tag/init.hh | 4 +
milena/mln/topo/skeleton/crest.hh | 51 +-
milena/mln/trace/entering.hh | 3 +
milena/mln/trace/quiet.hh | 5 +-
milena/mln/transform/influence_zone_geodesic.hh | 13 +-
milena/mln/value/int_u.hh | 69 +-
milena/mln/value/internal/make_generic_name.hh | 67 +
milena/mln/value/label.hh | 22 +-
milena/mln/value/qt/rgb32.hh | 803 +++++++
milena/mln/value/rgb.hh | 67 +-
milena/mln/value/sign.hh | 10 +-
milena/mln/win/sline3d.hh | 76 +
milena/mln/world/binary_2d/enlarge.hh | 4 +-
milena/mln/world/inter_pixel/full2image.hh | 4 +-
milena/sandbox/ChangeLog | 601 +++++
milena/sandbox/bench/README_CFLAGS | 8 +
milena/sandbox/bench/extract_vertical_lines.cc | 49 +
.../bench/fast_components_and_attributes.cc | 402 ++++
milena/sandbox/bench/fast_rows.cc | 247 +++
milena/sandbox/bench/fast_tiles.cc | 140 ++
milena/sandbox/bench/fastest.cc | 351 +++
milena/sandbox/bin/labeling/colorize.cc | 24 +
milena/sandbox/bin/pgm_to_pbm.cc | 39 +
milena/sandbox/bin/ppm_negate.cc | 43 +
.../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 +++
.../lazzara/scribo/binarization_naive/main.cc | 54 +
.../lazzara/scribo/binarization_naive/toto.cc | 28 +
milena/sandbox/lazzara/scribo/fill_holes/main.cc | 118 +
.../separateurs_materialises/lines_pattern.cc | 69 +
.../sandbox/lazzara/scribo/skeleton_crest/main.cc | 52 +
milena/tests/accu/Makefile.am | 15 +-
milena/tests/convert/Makefile.am | 25 +-
milena/tests/convert/to_qimage.cc | 76 +
milena/tests/convert/to_qimage_nocopy.cc | 56 +
milena/tests/core/alias/box3d.cc | 5 +-
milena/tests/core/image/image3d.cc | 11 +-
milena/tests/core/other/box_runstart_piter.cc | 57 +-
milena/tests/core/site_set/Makefile.am | 2 +
milena/tests/core/site_set/box.cc | 42 +
milena/tests/data/Makefile.am | 4 +
milena/tests/data/paste_without_localization.cc | 81 +
milena/tests/data/split.cc | 54 +
milena/tests/fun/v2v/Makefile.am | 9 +
milena/tests/fun/v2v/qt_rgb_to_int_u.cc | 44 +
milena/tests/geom/Makefile.am | 12 +-
milena/tests/geom/horizontal_symmetry.cc | 50 +
milena/tests/geom/nslices.cc | 38 +
milena/tests/geom/nslis.cc | 37 -
milena/tests/geom/rotate.cc | 16 +-
milena/tests/geom/translate.cc | 5 +-
milena/tests/geom/vertical_symmetry.cc | 49 +
milena/tests/io/magick/save.cc | 5 +-
milena/tests/io/pbms/load.cc | 3 +-
milena/tests/io/pgms/load.cc | 3 +-
milena/tests/io/ppms/load.cc | 3 +-
milena/tests/labeling/blobs_and_compute.cc | 17 +-
milena/tests/labeling/colorize.cc | 6 +-
milena/tests/labeling/flat_zones.cc | 4 +-
milena/tests/labeling/foreground.cc | 4 +-
milena/tests/labeling/relabel.cc | 6 +-
milena/tests/subsampling/Makefile.am | 12 +-
milena/tests/subsampling/antialiased.cc | 74 +
milena/tests/topo/skeleton/crest.cc | 10 +-
.../transform/bench_closest_point_geodesic.cc | 9 +-
milena/tests/unit_test/Makefile.am | 18 +-
.../cond_tests_boost-preprocessor_boost-tuple | 1 +
milena/tests/unit_test/cond_tests_cfitsio | 2 +
milena/tests/unit_test/cond_tests_gdcm | 3 +
milena/tests/unit_test/cond_tests_magickxx | 3 +
milena/tests/unit_test/cond_tests_qt | 2 +
milena/tests/unit_test/cond_tests_tiff | 2 +
milena/tests/unit_test/disabled_tests | 10 -
milena/tests/unit_test/unit-tests.mk | 146 ++-
scribo/ChangeLog | 2326 +++++++++++++++++++-
scribo/Makefile.am | 9 +-
scribo/README | 52 +
scribo/all.hh | 51 -
scribo/binarization/binarize.hh | 180 --
scribo/binarization/sauvola.hh | 192 --
scribo/binarization/sauvola_threshold.hh | 478 ----
scribo/binarization/simple.hh | 166 --
scribo/core/all.hh | 49 -
scribo/core/central_sites.hh | 94 -
scribo/core/concept/link_functor.hh | 53 -
scribo/core/erase_objects.hh | 87 -
scribo/core/internal/link_functor_base.hh | 119 -
scribo/core/macros.hh | 38 -
scribo/core/object_groups.hh | 140 --
scribo/core/object_image.hh | 38 -
scribo/core/object_links.hh | 130 --
scribo/debug/alignment_decision_image.hh | 170 --
scribo/debug/all.hh | 49 -
scribo/debug/decision_image.hh | 176 --
scribo/debug/links_decision_image.hh | 127 --
scribo/debug/save_bboxes_image.hh | 87 -
scribo/debug/save_label_image.hh | 83 -
scribo/debug/save_linked_bboxes_image.hh | 269 ---
scribo/debug/save_object_diff.hh | 98 -
scribo/debug/save_table_image.hh | 131 --
scribo/debug/several_links_decision_image.hh | 185 --
scribo/debug/usage.hh | 82 -
scribo/demo/Makefile.am | 12 +-
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/demo.pro | 16 -
scribo/demo/demo.qrc | 13 -
scribo/demo/icons/document-open.png | Bin 1550 -> 0 bytes
scribo/demo/icons/edit-find.png | Bin 1636 -> 0 bytes
scribo/demo/icons/format-indent-more.png | Bin 766 -> 0 bytes
scribo/demo/icons/go-next.png | Bin 1219 -> 0 bytes
scribo/demo/icons/image-x-generic.png | Bin 1163 -> 0 bytes
scribo/demo/icons/list-add.png | Bin 601 -> 0 bytes
scribo/demo/icons/ocr.png | Bin 14929 -> 0 bytes
scribo/demo/icons/text-x-generic.png | Bin 744 -> 0 bytes
scribo/demo/icons/view-refresh.png | Bin 2024 -> 0 bytes
scribo/demo/icons/x-office-spreadsheet.png | Bin 1518 -> 0 bytes
scribo/demo/review/Makefile.am | 11 +
scribo/demo/review/icons/document-open.png | Bin 0 -> 1550 bytes
scribo/demo/review/icons/edit-find.png | Bin 0 -> 1636 bytes
scribo/demo/review/icons/format-indent-more.png | Bin 0 -> 766 bytes
scribo/demo/review/icons/go-next.png | Bin 0 -> 1219 bytes
scribo/demo/review/icons/image-x-generic.png | Bin 0 -> 1163 bytes
scribo/demo/review/icons/list-add.png | Bin 0 -> 601 bytes
scribo/demo/review/icons/ocr.png | Bin 0 -> 14929 bytes
scribo/demo/review/icons/text-x-generic.png | Bin 0 -> 744 bytes
scribo/demo/review/icons/view-refresh.png | Bin 0 -> 2024 bytes
scribo/demo/review/icons/x-office-spreadsheet.png | Bin 0 -> 1518 bytes
scribo/demo/review/review.pro | 16 +
scribo/demo/review/review.qrc | 13 +
scribo/demo/review/src/main.cc | 49 +
scribo/demo/review/src/mainwindow.cc | 572 +++++
scribo/demo/review/src/mainwindow.hh | 138 ++
scribo/demo/review/ui/mainwindow.ui | 340 +++
scribo/demo/shared/icons/Symbols-Delete-icon.png | Bin 0 -> 3704 bytes
scribo/demo/shared/icons/accept-icon.png | Bin 0 -> 4858 bytes
scribo/demo/shared/icons/close.gif | Bin 0 -> 340 bytes
scribo/demo/shared/icons/crop-icon.png | Bin 0 -> 228 bytes
scribo/demo/shared/icons/image-add-icon.png | Bin 0 -> 2917 bytes
scribo/demo/shared/icons/image-edit-icon.png | Bin 0 -> 2305 bytes
scribo/demo/shared/icons/image-multi-icon.png | Bin 0 -> 2033 bytes
scribo/demo/shared/icons/image-next-icon.png | Bin 0 -> 3008 bytes
scribo/demo/shared/icons/image-remove-icon.png | Bin 0 -> 3127 bytes
scribo/demo/shared/icons/next-icon.png | Bin 0 -> 4611 bytes
scribo/demo/shared/icons/page-down-icon.png | Bin 0 -> 3450 bytes
scribo/demo/shared/icons/page-search-icon.png | Bin 0 -> 3101 bytes
scribo/demo/shared/icons/rotate_ccw.png | Bin 0 -> 4200 bytes
scribo/demo/shared/icons/rotate_cw.png | Bin 0 -> 4161 bytes
scribo/demo/shared/icons/search-add-icon.png | Bin 0 -> 4274 bytes
scribo/demo/shared/icons/search-remove-icon.png | Bin 0 -> 4196 bytes
scribo/demo/shared/shared.qrc | 20 +
scribo/demo/shared/src/bak/crop_item.cc | 332 +++
scribo/demo/shared/src/bak/crop_item.hh | 100 +
scribo/demo/shared/src/bak/image_viewer.cc | 242 ++
scribo/demo/shared/src/bak/image_viewer.hh | 116 +
scribo/demo/shared/src/bak/types.hh | 50 +
scribo/demo/shared/src/browse_widget.cc | 72 +
scribo/demo/shared/src/browse_widget.hh | 78 +
scribo/demo/shared/src/crop_item.cc | 396 ++++
scribo/demo/shared/src/crop_item.hh | 119 +
scribo/demo/shared/src/image_viewer.cc | 410 ++++
scribo/demo/shared/src/image_viewer.hh | 148 ++
scribo/demo/shared/src/image_viewer.hxx | 31 +
.../shared/src/internal.bak/interactive_scene.cc | 286 +++
.../shared/src/internal.bak/interactive_scene.hh | 108 +
.../shared/src/internal.bak/selection_rectangle.cc | 241 ++
.../shared/src/internal.bak/selection_rectangle.hh | 91 +
.../demo/shared/src/internal/interactive_scene.cc | 94 +
.../demo/shared/src/internal/interactive_scene.hh | 85 +
.../shared/src/internal/selection_rectangle.cc | 241 ++
.../shared/src/internal/selection_rectangle.hh | 91 +
scribo/demo/shared/src/to_mln_image.hh | 77 +
scribo/demo/shared/src/types.hh | 50 +
scribo/demo/shared/ui/browse_widget.ui | 106 +
scribo/demo/shared/ui/crop_widget.ui | 34 +
scribo/demo/shared/ui/image_viewer.ui | 296 +++
scribo/demo/shared/ui/interactive_scene.cc | 143 ++
scribo/demo/shared/ui/interactive_scene.hh | 87 +
scribo/demo/shared/ui/rotate_widget.ui | 34 +
scribo/demo/src/main.cc | 42 -
scribo/demo/src/mainwindow.cc | 570 -----
scribo/demo/src/mainwindow.hh | 138 --
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/ui/mainwindow.ui | 340 ---
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/images/dematerialization.png | Bin 0 -> 76309 bytes
scribo/demo/wizard/src/crop_page.cc | 48 +
scribo/demo/wizard/src/crop_page.hh | 60 +
scribo/demo/wizard/src/crop_widget.cc | 37 +
scribo/demo/wizard/src/crop_widget.hh | 62 +
scribo/demo/wizard/src/doc_type.hh | 51 +
scribo/demo/wizard/src/doc_type_page.cc | 48 +
scribo/demo/wizard/src/doc_type_page.hh | 61 +
scribo/demo/wizard/src/doc_type_widget.cc | 38 +
scribo/demo/wizard/src/doc_type_widget.hh | 64 +
scribo/demo/wizard/src/load_page.cc | 71 +
scribo/demo/wizard/src/load_page.hh | 67 +
scribo/demo/wizard/src/load_widget.cc | 56 +
scribo/demo/wizard/src/load_widget.hh | 64 +
scribo/demo/wizard/src/main.cc | 28 +
scribo/demo/wizard/src/main_window.cc | 144 ++
scribo/demo/wizard/src/main_window.hh | 72 +
scribo/demo/wizard/src/mln_widgets.cc | 7 +
scribo/demo/wizard/src/preprocessing_page.cc | 61 +
scribo/demo/wizard/src/preprocessing_page.hh | 66 +
scribo/demo/wizard/src/preprocessing_task.hh | 61 +
scribo/demo/wizard/src/preprocessing_widget.cc | 93 +
scribo/demo/wizard/src/preprocessing_widget.hh | 65 +
scribo/demo/wizard/src/process_page.cc | 68 +
scribo/demo/wizard/src/process_page.hh | 64 +
scribo/demo/wizard/src/process_widget.cc | 80 +
scribo/demo/wizard/src/process_widget.hh | 71 +
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/rotate_page.cc | 45 +
scribo/demo/wizard/src/rotate_page.hh | 60 +
scribo/demo/wizard/src/rotate_widget.cc | 38 +
scribo/demo/wizard/src/rotate_widget.hh | 62 +
scribo/demo/wizard/src/runner.cc | 296 +++
scribo/demo/wizard/src/runner.hh | 84 +
scribo/demo/wizard/src/test.cc | 16 +
scribo/demo/wizard/ui/doc_type_widget.ui | 115 +
scribo/demo/wizard/ui/load_widget.ui | 110 +
scribo/demo/wizard/ui/main_window.ui | 216 ++
scribo/demo/wizard/ui/preprocessing_widget.ui | 223 ++
scribo/demo/wizard/wizard.pro | 71 +
scribo/demo/wizard/wizard.qrc | 5 +
scribo/draw/all.hh | 47 -
scribo/draw/bounding_box_links.hh | 417 ----
scribo/draw/bounding_boxes.hh | 109 -
scribo/estim/object_groups_v_thickness.hh | 102 -
scribo/filter/all.hh | 53 -
scribo/filter/common/objects_photo.hh | 98 -
scribo/filter/internal/compute.hh | 147 --
scribo/filter/object_groups_size_ratio.hh | 104 -
scribo/filter/object_groups_small.hh | 98 -
scribo/filter/object_groups_v_thickness.hh | 97 -
scribo/filter/object_links_bbox_h_ratio.hh | 99 -
scribo/filter/object_links_bbox_overlap.hh | 133 --
scribo/filter/object_links_bbox_ratio.hh | 112 -
scribo/filter/object_links_bbox_w_ratio.hh | 97 -
scribo/filter/object_links_bottom_aligned.hh | 120 -
scribo/filter/object_links_center_aligned.hh | 113 -
scribo/filter/object_links_non_aligned.hh | 138 --
scribo/filter/object_links_non_aligned_simple.hh | 186 --
scribo/filter/object_links_non_h_aligned.hh | 109 -
scribo/filter/object_links_non_v_aligned.hh | 122 -
scribo/filter/object_links_top_aligned.hh | 121 -
scribo/filter/objects_h_thick.hh | 196 --
scribo/filter/objects_h_thin.hh | 192 --
scribo/filter/objects_large.hh | 198 --
scribo/filter/objects_size_ratio.hh | 120 -
scribo/filter/objects_small.hh | 160 --
scribo/filter/objects_thick.hh | 191 --
scribo/filter/objects_thin.hh | 193 --
scribo/filter/objects_v_thick.hh | 196 --
scribo/filter/objects_v_thin.hh | 193 --
scribo/fun/v2b/objects_small_filter.hh | 129 --
scribo/headers.mk | 340 ++--
scribo/make/all.hh | 49 -
scribo/make/debug_filename.hh | 102 -
scribo/make/influence_zone_graph.hh | 116 -
scribo/make/text.hh | 180 --
scribo/preprocessing/all.hh | 46 -
scribo/preprocessing/split_bg_fg.hh | 340 ---
scribo/preprocessing/unskew.hh | 115 -
scribo/primitive/all.hh | 51 -
scribo/primitive/extract/all.hh | 67 -
scribo/primitive/extract/canvas.hh | 131 --
scribo/primitive/extract/cells.hh | 126 --
scribo/primitive/extract/lines_discontinued.hh | 152 --
scribo/primitive/extract/lines_h_discontinued.hh | 133 --
scribo/primitive/extract/lines_h_pattern.hh | 113 -
scribo/primitive/extract/lines_h_single.hh | 203 --
scribo/primitive/extract/lines_h_thick.hh | 129 --
.../primitive/extract/lines_h_thick_and_single.hh | 152 --
scribo/primitive/extract/lines_pattern.hh | 137 --
scribo/primitive/extract/lines_thick.hh | 138 --
scribo/primitive/extract/lines_v_discontinued.hh | 131 --
scribo/primitive/extract/lines_v_pattern.hh | 106 -
scribo/primitive/extract/lines_v_single.hh | 199 --
scribo/primitive/extract/lines_v_thick.hh | 129 --
.../primitive/extract/lines_v_thick_and_single.hh | 150 --
scribo/primitive/extract/objects.hh | 138 --
scribo/primitive/group/all.hh | 57 -
scribo/primitive/group/apply.hh | 126 --
scribo/primitive/group/from_double_link.hh | 129 --
scribo/primitive/group/from_graph.hh | 180 --
scribo/primitive/group/from_single_link.hh | 108 -
scribo/primitive/internal/all.hh | 60 -
scribo/primitive/internal/find_graph_link.hh | 111 -
scribo/primitive/internal/find_left_link.hh | 108 -
scribo/primitive/internal/find_right_link.hh | 108 -
scribo/primitive/internal/find_root.hh | 71 -
scribo/primitive/internal/have_link_valid.hh | 79 -
scribo/primitive/internal/init_link_array.hh | 71 -
scribo/primitive/internal/is_invalid_link.hh | 100 -
scribo/primitive/internal/is_link_valid.hh | 79 -
scribo/primitive/internal/update_graph_link.hh | 102 -
scribo/primitive/internal/update_link_array.hh | 105 -
scribo/primitive/link/all.hh | 60 -
scribo/primitive/link/compute.hh | 115 -
scribo/primitive/link/compute_several.hh | 117 -
scribo/primitive/link/internal/anchors_3.hh | 147 --
scribo/primitive/link/internal/find_link.hh | 116 -
.../primitive/link/internal/find_several_links.hh | 124 --
.../link/internal/link_center_dmax_base.hh | 179 --
.../link/internal/link_center_dmax_ratio_base.hh | 175 --
.../primitive/link/internal/link_functor_base.hh | 518 -----
.../primitive/link/internal/link_ms_dmax_base.hh | 165 --
.../link/internal/link_ms_dmax_ratio_base.hh | 168 --
scribo/primitive/link/merge_double_link.hh | 123 -
scribo/primitive/link/with_graph.hh | 125 --
scribo/primitive/link/with_rag.hh | 99 -
scribo/primitive/link/with_several_graphes.hh | 128 --
scribo/primitive/link/with_several_left_links.hh | 166 --
.../link/with_several_right_closest_links.hh | 215 --
scribo/primitive/link/with_several_right_links.hh | 169 --
.../link/with_several_right_links_overlap.hh | 152 --
scribo/primitive/link/with_single_left_link.hh | 159 --
.../link/with_single_left_link_dmax_ratio.hh | 167 --
scribo/primitive/link/with_single_right_link.hh | 158 --
.../link/with_single_right_link_bottom.hh | 161 --
.../link/with_single_right_link_dmax_ratio.hh | 167 --
.../primitive/link/with_single_right_link_top.hh | 161 --
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/scribo.mk | 9 +-
scribo/scribo/all.hh | 53 +
scribo/scribo/binarization/all.hh | 55 +
scribo/scribo/binarization/global_threshold.hh | 90 +
.../scribo/binarization/global_threshold_auto.hh | 168 ++
.../binarization/internal/first_pass_functor.hh | 173 ++
scribo/scribo/binarization/local_threshold.hh | 218 ++
scribo/scribo/binarization/sauvola.hh | 234 ++
scribo/scribo/binarization/sauvola_ms.hh | 988 +++++++++
scribo/scribo/binarization/sauvola_ms_split.hh | 168 ++
.../scribo/binarization/sauvola_threshold_image.hh | 616 ++++++
.../binarization/sauvola_threshold_image_debug.hh | 421 ++++
scribo/scribo/canvas/integral_browsing.hh | 422 ++++
scribo/scribo/convert/from_qimage.hh | 93 +
scribo/scribo/core/all.hh | 49 +
scribo/scribo/core/central_sites.hh | 94 +
scribo/scribo/core/component_info.hh | 203 ++
scribo/scribo/core/component_set.hh | 606 +++++
scribo/scribo/core/concept/dmax_functor.hh | 50 +
scribo/scribo/core/concept/link_functor.hh | 53 +
scribo/scribo/core/def/lbl_type.hh | 48 +
scribo/scribo/core/erase_objects.hh | 86 +
scribo/scribo/core/init_integral_image.hh | 96 +
scribo/scribo/core/line_info.hh | 937 ++++++++
scribo/scribo/core/line_set.hh | 421 ++++
scribo/scribo/core/macros.hh | 64 +
scribo/scribo/core/object_groups.hh | 262 +++
scribo/scribo/core/object_links.hh | 258 +++
scribo/scribo/core/tag/anchor.hh | 68 +
scribo/scribo/core/tag/component.hh | 121 +
scribo/scribo/core/tag/line.hh | 216 ++
scribo/scribo/debug/alignment_decision_image.hh | 185 ++
scribo/scribo/debug/all.hh | 49 +
scribo/scribo/debug/bboxes_enlarged_image.hh | 136 ++
scribo/scribo/debug/char_space_image.hh | 113 +
scribo/scribo/debug/decision_image.hh | 183 ++
scribo/scribo/debug/highlight_text_area.hh | 305 +++
scribo/scribo/debug/line_info_image.hh | 123 +
scribo/scribo/debug/links_decision_image.hh | 111 +
.../scribo/debug/looks_like_a_text_line_image.hh | 130 ++
scribo/scribo/debug/mean_and_base_lines_image.hh | 149 ++
scribo/scribo/debug/save_bboxes_image.hh | 174 ++
scribo/scribo/debug/save_comp_diff.hh | 105 +
scribo/scribo/debug/save_label_image.hh | 83 +
scribo/scribo/debug/save_linked_bboxes_image.hh | 277 +++
scribo/scribo/debug/save_table_image.hh | 131 ++
.../scribo/debug/several_links_decision_image.hh | 179 ++
scribo/scribo/debug/text_areas_image.hh | 133 ++
scribo/scribo/debug/usage.hh | 84 +
scribo/scribo/draw/all.hh | 47 +
scribo/scribo/draw/bounding_box_links.hh | 340 +++
scribo/scribo/draw/bounding_boxes.hh | 117 +
scribo/scribo/draw/groups_bboxes.hh | 93 +
scribo/scribo/estim/object_groups_v_thickness.hh | 106 +
scribo/scribo/filter/all.hh | 50 +
scribo/scribo/filter/common/objects_photo.hh | 98 +
scribo/scribo/filter/internal/alignment_angle.hh | 156 ++
scribo/scribo/filter/internal/component_aligned.hh | 114 +
scribo/scribo/filter/internal/compute.hh | 147 ++
scribo/scribo/filter/object_groups_size_ratio.hh | 105 +
scribo/scribo/filter/object_groups_small.hh | 100 +
scribo/scribo/filter/object_groups_v_thickness.hh | 99 +
scribo/scribo/filter/object_groups_with_holes.hh | 341 +++
scribo/scribo/filter/object_links_bbox_h_ratio.hh | 95 +
scribo/scribo/filter/object_links_bbox_overlap.hh | 128 ++
scribo/scribo/filter/object_links_bbox_ratio.hh | 111 +
scribo/scribo/filter/object_links_bbox_w_ratio.hh | 95 +
.../scribo/filter/object_links_bottom_aligned.hh | 115 +
.../scribo/filter/object_links_center_aligned.hh | 109 +
scribo/scribo/filter/object_links_left_aligned.hh | 118 +
.../filter/object_links_non_aligned_simple.hh | 131 ++
scribo/scribo/filter/object_links_right_aligned.hh | 118 +
scribo/scribo/filter/object_links_top_aligned.hh | 114 +
scribo/scribo/filter/objects_h_thick.hh | 192 ++
scribo/scribo/filter/objects_h_thin.hh | 196 ++
scribo/scribo/filter/objects_large.hh | 106 +
scribo/scribo/filter/objects_size_ratio.hh | 125 ++
scribo/scribo/filter/objects_small.hh | 150 ++
scribo/scribo/filter/objects_thick.hh | 191 ++
scribo/scribo/filter/objects_thin.hh | 191 ++
scribo/scribo/filter/objects_v_thick.hh | 192 ++
scribo/scribo/filter/objects_v_thin.hh | 196 ++
scribo/scribo/filter/objects_with_holes.hh | 466 ++++
scribo/scribo/fun/v2b/label_to_bool.hh | 66 +
scribo/scribo/fun/v2b/objects_large_filter.hh | 128 ++
scribo/scribo/fun/v2b/objects_small_filter.hh | 128 ++
scribo/scribo/io/text_boxes/save.hh | 102 +
scribo/scribo/io/xml/save.hh | 253 +++
scribo/scribo/make/all.hh | 49 +
scribo/scribo/make/debug_filename.hh | 102 +
scribo/scribo/make/influence_zone_graph.hh | 116 +
scribo/scribo/postprocessing/all.hh | 48 +
scribo/scribo/postprocessing/fill_object_holes.hh | 408 ++++
scribo/scribo/preprocessing/all.hh | 63 +
scribo/scribo/preprocessing/crop.hh | 84 +
.../preprocessing/crop_without_localization.hh | 99 +
scribo/scribo/preprocessing/denoise.hh | 106 +
scribo/scribo/preprocessing/denoise_bg.hh | 159 ++
scribo/scribo/preprocessing/denoise_fg.hh | 118 +
scribo/scribo/preprocessing/deskew.hh | 439 ++++
scribo/scribo/preprocessing/deskew_crop.hh | 187 ++
.../scribo/preprocessing/homogeneous_contrast.hh | 119 +
scribo/scribo/preprocessing/rotate_90.hh | 163 ++
scribo/scribo/preprocessing/split_bg_fg.hh | 341 +++
scribo/scribo/primitive/all.hh | 51 +
scribo/scribo/primitive/extract/all.hh | 68 +
scribo/scribo/primitive/extract/canvas.hh | 131 ++
scribo/scribo/primitive/extract/cells.hh | 126 ++
scribo/scribo/primitive/extract/components.hh | 147 ++
.../primitive/extract/horizontal_separators.hh | 95 +
.../scribo/primitive/extract/lines_discontinued.hh | 152 ++
.../primitive/extract/lines_h_discontinued.hh | 133 ++
scribo/scribo/primitive/extract/lines_h_pattern.hh | 126 ++
scribo/scribo/primitive/extract/lines_h_single.hh | 202 ++
scribo/scribo/primitive/extract/lines_h_thick.hh | 129 ++
.../primitive/extract/lines_h_thick_and_single.hh | 151 ++
scribo/scribo/primitive/extract/lines_pattern.hh | 298 +++
scribo/scribo/primitive/extract/lines_thick.hh | 137 ++
.../primitive/extract/lines_v_discontinued.hh | 131 ++
scribo/scribo/primitive/extract/lines_v_pattern.hh | 109 +
scribo/scribo/primitive/extract/lines_v_single.hh | 198 ++
scribo/scribo/primitive/extract/lines_v_thick.hh | 129 ++
.../primitive/extract/lines_v_thick_and_single.hh | 150 ++
scribo/scribo/primitive/extract/separators.hh | 98 +
.../primitive/extract/vertical_separators.hh | 95 +
scribo/scribo/primitive/group/all.hh | 58 +
scribo/scribo/primitive/group/apply.hh | 138 ++
scribo/scribo/primitive/group/from_double_link.hh | 125 ++
scribo/scribo/primitive/group/from_graph.hh | 180 ++
scribo/scribo/primitive/group/from_single_link.hh | 111 +
scribo/scribo/primitive/internal/all.hh | 57 +
.../scribo/primitive/internal/find_graph_link.hh | 115 +
scribo/scribo/primitive/internal/find_root.hh | 74 +
.../scribo/primitive/internal/have_link_valid.hh | 79 +
scribo/scribo/primitive/internal/is_link_valid.hh | 81 +
scribo/scribo/primitive/internal/rd.hh | 192 ++
.../scribo/primitive/internal/update_graph_link.hh | 102 +
scribo/scribo/primitive/link/all.hh | 61 +
scribo/scribo/primitive/link/compute.hh | 132 ++
scribo/scribo/primitive/link/compute_several.hh | 117 +
.../primitive/link/internal/compute_anchor.hh | 252 +++
.../scribo/primitive/link/internal/dmax_default.hh | 83 +
.../primitive/link/internal/dmax_functor_base.hh | 102 +
.../link/internal/dmax_width_and_height.hh | 98 +
.../primitive/link/internal/dmax_width_only.hh | 95 +
scribo/scribo/primitive/link/internal/find_link.hh | 114 +
.../primitive/link/internal/find_several_links.hh | 137 ++
.../primitive/link/internal/link_functor_base.hh | 516 +++++
.../link/internal/link_several_dmax_base.hh | 291 +++
.../link/internal/link_single_dmax_base.hh | 167 ++
.../link/internal/link_single_dmax_ratio_base.hh | 189 ++
scribo/scribo/primitive/link/merge_double_link.hh | 125 ++
scribo/scribo/primitive/link/with_graph.hh | 121 +
scribo/scribo/primitive/link/with_rag.hh | 103 +
.../scribo/primitive/link/with_several_graphes.hh | 127 ++
.../primitive/link/with_several_left_links.hh | 141 ++
.../link/with_several_right_closest_links.hh | 207 ++
.../primitive/link/with_several_right_links.hh | 143 ++
.../link/with_several_right_links_overlap.hh | 154 ++
.../scribo/primitive/link/with_single_down_link.hh | 181 ++
.../scribo/primitive/link/with_single_left_link.hh | 160 ++
.../link/with_single_left_link_dmax_ratio.hh | 221 ++
.../primitive/link/with_single_right_link.hh | 159 ++
.../link/with_single_right_link_bottom.hh | 162 ++
.../link/with_single_right_link_dmax_ratio.hh | 215 ++
.../primitive/link/with_single_right_link_top.hh | 163 ++
.../scribo/primitive/link/with_single_up_link.hh | 181 ++
.../primitive/regroup/from_single_left_link.hh | 144 ++
.../regroup/from_single_left_link_wrt_h_ratio.hh | 153 ++
scribo/scribo/primitive/remove/separators.hh | 114 +
scribo/scribo/subsampling/bilinear.hh | 119 +
scribo/scribo/subsampling/integral.hh | 420 ++++
scribo/scribo/subsampling/integral_single_image.hh | 460 ++++
scribo/scribo/table/align_lines_horizontaly.hh | 106 +
scribo/scribo/table/align_lines_verticaly.hh | 102 +
scribo/scribo/table/all.hh | 56 +
scribo/scribo/table/connect_horizontal_lines.hh | 99 +
scribo/scribo/table/connect_vertical_lines.hh | 97 +
scribo/scribo/table/erase.hh | 99 +
scribo/scribo/table/extract.hh | 118 +
scribo/scribo/table/internal/align_lines.hh | 199 ++
scribo/scribo/table/internal/all.hh | 55 +
scribo/scribo/table/internal/connect_lines.hh | 125 ++
scribo/scribo/table/internal/repair_lines.hh | 197 ++
scribo/scribo/table/rebuild.hh | 158 ++
scribo/scribo/table/repair_horizontal_lines.hh | 91 +
scribo/scribo/table/repair_vertical_lines.hh | 97 +
scribo/scribo/text/all.hh | 48 +
scribo/scribo/text/clean.hh | 127 ++
scribo/scribo/text/clean_inplace.hh | 147 ++
scribo/scribo/text/extract_lines.hh | 137 ++
scribo/scribo/text/look_like_text_lines.hh | 116 +
scribo/scribo/text/merging.hh | 922 ++++++++
scribo/scribo/text/recognition.hh | 269 +++
scribo/scribo/toolchain/nepomuk/text_extraction.hh | 163 ++
scribo/scribo/toolchain/text_in_doc.hh | 294 +++
scribo/scribo/upsampling/bs2x.hh | 147 ++
scribo/scribo/upsampling/eagle.hh | 149 ++
scribo/src/Makefile.am | 57 +-
scribo/src/README | 39 +
scribo/src/afp/components.hh | 228 ++
scribo/src/afp/link.hh | 178 ++
scribo/src/afp/regroup.hh | 119 +
scribo/src/binarization/Makefile.am | 80 +-
scribo/src/binarization/fg_sauvola_ms.cc | 108 +
.../src/binarization/pgm_global_threshold_auto.cc | 63 +
scribo/src/binarization/pgm_sauvola.cc | 80 +
scribo/src/binarization/pgm_sauvola_ms.cc | 111 +
scribo/src/binarization/ppm_fg_sauvola_ms.cc | 128 ++
scribo/src/binarization/ppm_sauvola.cc | 79 +
scribo/src/binarization/ppm_sauvola_ms.cc | 117 +
scribo/src/binarization/ppm_sauvola_ms_split.cc | 125 ++
scribo/src/binarization/sauvola.cc | 43 +-
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/binarization/sauvola_pgm.cc | 63 -
scribo/src/binarization/simple.cc | 61 -
scribo/src/contest/Makefile.am | 23 +
scribo/src/contest/hdibco-2010/Makefile.am | 25 +
.../src/contest/hdibco-2010/sauvola_ms_hdibco.cc | 85 +
scribo/src/debug/Makefile.am | 39 +-
scribo/src/debug/highlight_text_area.cc | 97 +
.../src/debug/show_info_median_inter_characters.cc | 84 +
scribo/src/debug/show_info_x_height.cc | 79 +
.../src/debug/show_left_right_links_validation.cc | 122 -
scribo/src/debug/show_links_bbox_h_ratio.cc | 24 +-
scribo/src/debug/show_links_bbox_overlap.cc | 19 +-
scribo/src/debug/show_links_bottom_aligned.cc | 30 +-
scribo/src/debug/show_links_center_aligned.cc | 19 +-
.../show_links_left_right_links_validation.cc | 119 +
scribo/src/debug/show_links_non_h_aligned.cc | 25 +-
scribo/src/debug/show_links_several_right.cc | 27 +-
.../src/debug/show_links_several_right_overlap.cc | 79 +-
scribo/src/debug/show_links_single_down.cc | 158 ++
.../debug/show_links_single_down_left_aligned.cc | 101 +
.../debug/show_links_single_down_right_aligned.cc | 102 +
scribo/src/debug/show_links_single_left.cc | 40 +-
.../src/debug/show_links_single_left_dmax_ratio.cc | 48 +-
scribo/src/debug/show_links_single_right.cc | 41 +-
.../debug/show_links_single_right_dmax_ratio.cc | 40 +-
scribo/src/debug/show_links_single_up.cc | 160 ++
.../src/debug/show_links_single_up_left_aligned.cc | 103 +
.../debug/show_links_single_up_right_aligned.cc | 101 +
scribo/src/debug/show_links_top_aligned.cc | 34 +-
scribo/src/debug/show_objects_large.cc | 27 +-
scribo/src/debug/show_objects_large_small.cc | 41 +-
scribo/src/debug/show_objects_small.cc | 27 +-
scribo/src/debug/show_objects_thick.cc | 26 +-
scribo/src/debug/show_objects_thin.cc | 24 +-
scribo/src/filter/Makefile.am | 6 +-
scribo/src/filter/objects_large.cc | 30 +-
scribo/src/filter/objects_small.cc | 22 +-
scribo/src/filter/objects_thick.cc | 30 +-
scribo/src/filter/objects_thin.cc | 30 +-
scribo/src/filter/objects_with_holes.cc | 75 +
scribo/src/filter/objects_with_holes_pgm.cc | 76 +
scribo/src/misc/negate.cc | 5 +-
scribo/src/misc/superpose.cc | 7 +-
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 | 60 +-
scribo/src/preprocessing/denoise_bg.cc | 67 +
scribo/src/preprocessing/denoise_fg.cc | 66 +
scribo/src/preprocessing/homogeneous_contrast.cc | 44 +
scribo/src/preprocessing/preprocess.cc | 27 +-
scribo/src/preprocessing/rotate.cc | 68 +
scribo/src/preprocessing/rotate_90.cc | 77 +
scribo/src/preprocessing/split_bg_fg.cc | 19 +-
scribo/src/preprocessing/subsample.cc | 67 +
scribo/src/preprocessing/to_pgm.cc | 46 +
scribo/src/preprocessing/unskew.cc | 22 +-
.../extract/extract_discontinued_hlines.cc | 26 +-
.../extract/extract_discontinued_lines.cc | 47 +-
.../extract/extract_discontinued_vlines.cc | 27 +-
.../src/primitive/extract/extract_thick_hlines.cc | 25 +-
.../src/primitive/extract/extract_thick_vlines.cc | 25 +-
scribo/src/primitive/extract/lines_pattern.cc | 6 +-
.../src/primitive/find/find_discontinued_lines.cc | 18 +-
scribo/src/primitive/find/find_pattern_lines.cc | 10 +-
scribo/src/primitive/find/find_single_lines.cc | 35 +-
.../primitive/find/find_thick_and_single_lines.cc | 29 +-
scribo/src/primitive/find/find_thick_lines.cc | 20 +-
scribo/src/primitive/group/Makefile.am | 15 +-
.../src/primitive/group/group_from_double_link.cc | 62 +-
.../group/group_from_double_several_links.cc | 34 +-
.../group/group_from_several_left_links.cc | 32 +-
.../src/primitive/group/group_from_single_link.cc | 62 +-
scribo/src/table/erase.cc | 15 +-
scribo/src/table/extract.cc | 7 +-
scribo/src/text/Makefile.am | 28 +-
scribo/src/text/cleantxt.cc | 45 +-
scribo/src/text/pbm_lines_recognition.cc | 107 +
scribo/src/text/pbm_recognition.cc | 75 +
scribo/src/text/recognition.cc | 101 -
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_ppm.cc | 318 ---
scribo/src/text_in_picture.cc | 631 ++++++
scribo/src/text_recognition_in_picture.cc | 378 ++++
scribo/table/align_lines_horizontaly.hh | 101 -
scribo/table/align_lines_verticaly.hh | 102 -
scribo/table/all.hh | 56 -
scribo/table/connect_horizontal_lines.hh | 99 -
scribo/table/connect_vertical_lines.hh | 97 -
scribo/table/erase.hh | 99 -
scribo/table/extract.hh | 117 -
scribo/table/internal/align_lines.hh | 196 --
scribo/table/internal/all.hh | 55 -
scribo/table/internal/connect_lines.hh | 125 --
scribo/table/internal/repair_lines.hh | 197 --
scribo/table/rebuild.hh | 157 --
scribo/table/repair_horizontal_lines.hh | 91 -
scribo/table/repair_vertical_lines.hh | 97 -
scribo/tests/Makefile.am | 8 +-
scribo/tests/binarization/Makefile.am | 30 +
scribo/tests/binarization/global_threshold.cc | 24 +
scribo/tests/binarization/local_threshold.cc | 29 +
scribo/tests/core/Makefile.am | 25 +
scribo/tests/filter/Makefile.am | 3 +
scribo/tests/filter/objects_with_holes.cc | 62 +
scribo/tests/filter/small_and_large_bboxes.cc | 67 +-
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 | 52 +
.../preprocessing/crop_without_localization.cc | 56 +
scribo/tests/preprocessing/deskew.cc | 52 +
scribo/tests/preprocessing/rotate_90.cc | 59 +
scribo/tests/preprocessing/unskew.cc | 44 -
scribo/tests/table/extract_lines_with_rank.cc | 5 +-
scribo/tests/table/repair_lines.cc | 5 +-
scribo/tests/tests.mk | 23 +-
scribo/tests/toolchain/Makefile.am | 20 +
scribo/tests/toolchain/nepomuk/Makefile.am | 45 +
scribo/tests/toolchain/nepomuk/text_extraction.cc | 44 +
scribo/tests/unit_test/Makefile.am | 27 +-
scribo/tests/unit_test/build_unit_test.sh | 85 -
scribo/tests/unit_test/cond_tests_qt | 1 +
.../tests/unit_test/cond_tests_qt_tesseract_tiff | 1 +
scribo/tests/unit_test/cond_tests_tesseract_tiff | 1 +
scribo/tests/unit_test/disabled_tests | 3 +-
scribo/tests/unit_test/unit-tests.mk | 248 ++-
scribo/text/all.hh | 48 -
scribo/text/clean.hh | 156 --
scribo/text/extract_lines.hh | 152 --
scribo/text/recognition.hh | 193 --
scribo/util/all.hh | 46 -
scribo/util/text.hh | 278 ---
1214 files changed, 112974 insertions(+), 24563 deletions(-)
diff --cc ChangeLog
index 12bf80f,301ed5d..1860ecf
--- a/ChangeLog
+++ b/ChangeLog
@@@ -1,13 -1,120 +1,130 @@@
+ 2010-08-12 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * build-aux/build_unit_test.sh: Handle composed dependency names
+ in cond_tests_* files.
+
+ 2010-08-12 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Improve configure output.
+
+ * configure.ac: Improve configure output.
+
+ * m4/oln-with-lib.m4: Always set oln_have_* variable.
+
+ 2010-08-10 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Handle Boost dependency.
+
+ * configure.ac: Add tests.
+
+ * m4/boost.m4: New.
+
+ 2010-08-10 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * Makefile.am: Fix call to build_unit_test.sh.
+
+ 2010-08-10 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * build-aux/build_unit_test.sh: Add more comments.
+
+ 2010-08-11 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Handle libgdcmCommon's dependencies.
+
+ * configure.ac: Pass more libraries to OLN_WITH_LIB when searching
+ for libgdcmCommon.
+
+ 2010-08-11 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * configure.ac: Display a summary of the configuration when the
+ build directory is ready.
+
+ 2010-08-11 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * configure.ac: Set oln_with_* variables correctly.
+
+ 2010-08-11 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * configure.ac: Require Qt 4.x minimum to enable the use of Qt.
+
+ 2010-08-11 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * m4/autotroll.m4: Fix an invalid generation of configure with
+ autoconf 2.61.
+
+ 2010-08-10 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * bootstrap: Update calls to build_unit_test.sh.
+
+ 2010-08-10 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * build-aux/build_unit_test.sh: Add support for conditional
+ unit-tests.
+
+ 2010-08-03 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * configure.ac: Improve configure's outputs for external library
+ checks.
+
+ 2010-08-03 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Handle libMagick++ dependency with pkg-config.
+
+ * configure.ac: Use PKG_* macros to find Magick++ path and
+ libraries.
+
+ * m4/pkg.m4: New macros to use pkg-config.
+
+ 2010-07-01 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * 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.
+
+ 2010-05-25 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * configure.ac: Do not configure scribo/src/multi_scale anymore.
+
+ 2010-02-16 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * configure.ac: Configure scribo/tests/binarization.
+
+ 2010-02-16 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * configure.ac: Configure scribo/demo/review.
+
+ 2009-12-15 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * configure.ac: Configure scribo/tests/core.
+
+2010-07-13 Roland Levillain <roland(a)lrde.epita.fr>
+
+ * AUTHORS: Update.
+
+2010-06-29 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Have AC_PROG_SWIG be more flexible w.r.t. major/minor version numbers.
+
+ * m4/swig.m4: Here.
+
2010-06-24 Roland Levillain <roland(a)lrde.epita.fr>
Add `mesh-segm-skel' to the branches to be uploaded (as snapshot).
diff --cc milena/ChangeLog
index b4e98cd,7cbebec..7ba470c
--- a/milena/ChangeLog
+++ b/milena/ChangeLog
@@@ -1,31 -1,751 +1,779 @@@
+ 2010-08-13 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Fix compilation with g++-3.3.
+
+ * mln/value/qt/rgb32.hh: Here.
+ (name()): Change the returned string value.
+
+ 2010-08-12 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * tests/unit_test/Makefile.am (DIST_FILES): Add missing files.
+
+ 2010-08-12 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Make Boost dependent tests conditional.
+
+ * tests/accu/Makefile.am (tuple): Add conditions.
+
+ * tests/unit_test/cond_tests_boost-preprocessor_boost-tuple: New.
+
+ * tests/unit_test/unit-tests.mk: Regen.
+
+ 2010-08-12 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Small fixes in Milena.
+
+ * mln/fun/v2v/saturate.hh: Add mln:: namespace prefix.
+
+ * mln/value/rgb.hh: Add a missing include.
+
+ * mln/accu/tuple.hh: Update include directive syntax.
+
+ 2010-08-12 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Fix more warnings in Milena.
+
+ * mln/convert/impl/from_float_to_value.hh: Add an overload for
+ short int.
+
+ * mln/io/fld/load.hh: Use convert::from_to.
+
+ * mln/io/fld/max_components.hh: Explicitly cast values to unsigned.
+
+ 2010-08-11 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Fix more tests in Milena.
+
+ * mln/fun/v2v/saturate.hh: Add a missing include.
+
+ * mln/subsampling/antialiased.hh: Increment pointer after the call
+ to convert::from_to.
+
+ * tests/subsampling/antialiased.cc: Fix references according to
+ last changes on 'round factor'.
+
+ 2010-08-11 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Fix warnings with g++-4.1 in Milena.
+
+ * mln/fun/v2v/saturate.hh,
+ * mln/subsampling/antialiased.hh,
+ * mln/value/rgb.hh: Use convert::from_to for type conversions.
+
+ 2010-08-11 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * mln/core/point.hh: Fix a warning.
+
+ 2010-08-11 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Fix tests in Milena.
+
+ * mln/draw/dashed_line.hh,
+ * mln/fun/n2v/white_gaussian.hh,
+ * mln/fun/v2v/rgb_to_int_u.hh,
+ * mln/io/dump/get_header.hh,
+ * mln/io/raw/get_header.hh: Add missing includes.
+
+ * tests/topo/skeleton/crest.cc: Fix reference results since a bug
+ have been fixed.
+
+ * tests/unit_test/cond_tests_qt: Add conditional tests.
+
+ * tests/unit_test/unit-tests.mk: Regen.
+
+ 2010-08-11 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add missing traces.
+
+ * mln/convert/to_qimage.hh,
+ * mln/convert/to_qimage_nocopy.hh: Here.
+
+ 2010-08-11 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * headers.mk: Regen.
+
+ 2010-08-10 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Fix tests in Milena.
+
+ * tests/geom/rotate.cc: Fix test.
+
+ * mln/labeling/blobs_and_compute.hh: Add comments.
+
+ * mln/labeling/flat_zones.hh: Add missing members to functors.
+
+ * tests/labeling/blobs_and_compute.cc: Fix return type.
+
+ * tests/labeling/flat_zones.cc,
+ * tests/labeling/foreground.cc: Fix functor template parameters.
+
+ * tests/labeling/relabel.cc: The number of components is not
+ updated anymore.
+
+ * tests/labeling/colorize.cc: Fix reference according to last
+ changes in labeling::colorize routine.
+
+ * mln/core/point.hh: Add mln:: namespace prefix.
+
+ 2010-08-10 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * mln/io/dicom/get_header.hh: Add missing headers.
+
+ 2010-08-10 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Setup conditional unit-tests in Milena.
+
+ * tests/unit_test/Makefile.am
+ (regen-am): Update the use of build_unit_test.sh.
+ (EXTRA_DIST): Add cond_tests_* files.
+
+ * tests/unit_test/cond_tests_cfitsio,
+ * tests/unit_test/cond_tests_gdcm,
+ * tests/unit_test/cond_tests_magickxx,
+ * tests/unit_test/cond_tests_tiff: New.
+
+ * tests/unit_test/disabled_tests: Remove some conditional tests.
+
+ * tests/unit_test/unit-tests.mk: Regen.
+
+ 2010-08-09 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Small changes in Milena.
+
+ * mln/accu/internal/base.hh,
+ * mln/accu/math/sum.hh: Aesthetic changes.
+
+ * mln/data/paste_without_localization.hh: Add a missing include.
+
+ * mln/geom/rotate.hh: Add a new overload taking a box as argument.
+
+ 2010-08-04 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Replace deduced type 'point' by 'site'.
+
+ * mln/geom/max_col.hh,
+ * mln/geom/max_row.hh,
+ * mln/geom/min_col.hh,
+ * mln/geom/min_row.hh: Replace deduced type 'point' by 'site'.
+
+ 2010-07-06 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Small fixes in milena.
+
+ * doc/figures/ima2d-rot-2.ppm: Update generated output.
+
+ * mln/core/alias/window2d.hh: Aesthetic changes in the header.
+
+ * mln/core/point.hh: Add mln:: prefix.
+
+ * headers.mk,
+ * tests/unit_test/unit-tests.mk: Regen.
+
+ 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.
+
+ * mln/fun/v2v/qt_rgb_to_int_u.hh: New.
+
+ * tests/fun/v2v/Makefile.am,
+ * tests/fun/v2v/qt_rgb_to_int_u.cc: New test.
+
+ 2010-06-03 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Use sites instead of pixels in canvas::labeling::blobs functors.
+
+ * mln/canvas/labeling/blobs.hh,
+ * mln/labeling/blobs.hh: Update members prototypes.
+
+ * mln/labeling/blobs_and_compute.hh: Do not construct on-the-fly
+ pixels anymore.
+
+ 2010-05-25 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Small fixes.
+
+ * mln/labeling/compute.hh: Add a missing include.
+
+ * mln/literal/colors.hh: Revamp header.
+
+ * mln/value/internal/make_generic_name.hh: Add a missing inline.
+
+ * mln/value/qt/rgb32.hh: Add a missing inline and a useless
+ literal.
+
+ * mln/value/rgb.hh: Add a fixme.
+
+ 2010-05-25 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * mln/subsampling/antialiased.hh: Fix an invalid output buffer
+ size which may lead to a segfault.
+
+ 2010-05-25 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add a new meta tool to deduce an extension type.
+
+ mln/core/routine/extend.hh: Introduce a new macro
+ mln_extension_type.
+
+ mln/geom/rotate.hh: Make use of this new macro.
+
+ 2010-05-25 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Reduce precision issues in transformations.
+
+ * mln/core/image/imorph/interpolated.hh: Make the vector type more
+ generic.
+
+ * mln/core/point.hh: Provide specific conversion operators for
+ float and double.
+
+ * mln/fun/internal/x2x_linear_impl.hh: Allow to set the matrix
+ value type.
+
+ * mln/fun/x2x/composed.hh,
+ * mln/fun/x2x/rotation.hh,
+ * mln/fun/x2x/translation.hh: Introduce data_t typedef passed to
+ x2x_linear_impl.
+
+ 2010-04-30 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add some code in my sandbox.
+
+ * sandbox/lazzara/scribo/binarization_naive/main.cc,
+ * sandbox/lazzara/scribo/binarization_naive/toto.cc,
+ * sandbox/lazzara/scribo/fill_holes/main.cc,
+ * sandbox/lazzara/scribo/separateurs_materialises/lines_pattern.cc,
+ * sandbox/lazzara/scribo/skeleton_crest/main.cc,
+ * sandbox/lazzara/skeleton_crest/main.cc: New.
+
+ 2010-05-21 edwin carlinet <carlinet(a)lrde.epita.fr>
+
+ Add MLN_WO_GLOBAL_VARS directive that prevents globals vars to be
+ included.
+
+ * mln/border/thickness.hh,
+ * mln/core/alias/dpoint1d.hh,
+ * mln/core/alias/dpoint2d.hh,
+ * mln/core/alias/dpoint3d.hh,
+ * mln/fun/v2v/hsl_to_rgb.hh,
+ * mln/literal/black.hh,
+ * mln/literal/colors.hh,
+ * mln/literal/identity.hh,
+ * mln/literal/one.hh,
+ * mln/literal/origin.hh,
+ * mln/literal/white.hh,
+ * mln/literal/zero.hh,
+ * mln/tag/init.hh,
+ * mln/trace/entering.hh,
+ * mln/trace/quiet.hh,
+ * mln/value/sign.hh: Add MLN_WO_GLOBAL_VARS define.
+
+ 2010-04-30 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add some code in my sandbox.
+
+ * milena/sandbox/lazzara/scribo/binarization_naive/main.cc,
+ * milena/sandbox/lazzara/scribo/binarization_naive/toto.cc,
+ * milena/sandbox/lazzara/scribo/fill_holes/main.cc,
+ * milena/sandbox/lazzara/scribo/separateurs_materialises/lines_pattern.cc,
+ * milena/sandbox/lazzara/scribo/skeleton_crest/main.cc,
+ * milena/sandbox/lazzara/skeleton_crest/main.cc: New.
+
+ 2010-04-30 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add fastest implementations in labeling::compute.
+
+ * mln/labeling/compute.hh: New fastest implementations.
+
+ 2010-04-30 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Small fixes in Milena.
+
+ * mln/canvas/labeling/blobs.hh: Fill extension.
+
+ * mln/data/paste_without_localization.hh: Check whether the
+ two images have the same domain.
+
+ * mln/labeling/blobs_and_compute.hh: Rename members.
+
+ * mln/labeling/colorize.hh: Add missing includes.
+
+ * mln/world/binary_2d/enlarge.hh: use def::coord.
+
+ 2010-04-13 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * mln/labeling/blobs_and_compute.hh: Fix an invalid size of
+ reserved memory.
+
+ 2010-04-13 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * mln/subsampling/antialiased.hh: Fix the use of 'factor round'.
+
+ 2010-04-09 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Rename nslis to nslices.
+
+ * mln/geom/nslis.hh,
+ * tests/geom/nslis.cc: Rename as...
+
+ * mln/geom/nslices.hh,
+ * tests/geom/nslices.cc: ... this.
+
+ * mln/core/image/image3d.hh,
+ * mln/core/internal/box_impl.hh,
+ * mln/core/site_set/box.hh,
+ * mln/debug/slices_2d.hh,
+ * mln/geom/all.hh,
+ * mln/geom/size3d.hh,
+ * mln/linear/gaussian.hh,
+ * mln/linear/gaussian/impl.hh,
+ * mln/make/box3d.hh,
+ * mln/make/image.hh,
+ * mln/registration/icp.hh,
+ * tests/core/alias/box3d.cc,
+ * tests/core/image/image3d.cc,
+ * tests/geom/Makefile.am,
+ * tests/io/pbms/load.cc,
+ * tests/io/pgms/load.cc,
+ * tests/io/ppms/load.cc,
+ * tests/transform/bench_closest_point_geodesic.cc: Rename nslis to
+ nslices.
+
+ 2010-04-07 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * img/picasso.ppm: Add a ppm version.
+
+ 2010-04-07 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * mln/value/qt/rgb32.hh: Explicitly cast float values to unsigned.
+
+ 2010-04-06 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * mln/debug/mosaic.hh: New. Construct a single image from a set of
+ images.
+
+ 2010-04-06 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * mln/histo/equalize.hh: New. Add histogram equalization.
+
+ 2010-03-22 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add vertical/horizontal symmetry.
+
+ * mln/labeling/relabel.hh: Fix an invalid 'const'.
+
+ * mln/geom/horizontal_symmetry.hh,
+ * mln/geom/vertical_symmetry.hh: New routines.
+
+ * tests/geom/Makefile.am,
+ * tests/geom/horizontal_symmetry.cc,
+ * tests/geom/vertical_symmetry.cc: New tests.
+
+ 2010-03-22 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * mln/debug/z_order.hh: New image data initializer.
+
+ 2010-03-22 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Improve antialiased subsampling.
+
+ * mln/subsampling/antialiased.hh: Add support for any factors and
+ for RGB images.
+
+ 2010-03-19 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add a new routine to split a color image into three grayscale
+ images.
+
+ * mln/data/split.hh: New.
+
+ * tests/data/split.cc: New test.
+
+ 2010-03-19 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add new implementations of paste_without_localization.
+
+ * mln/data/paste_without_localization.hh: Add new implementations.
+
+ * tests/data/Makefile.am,
+ * tests/data/paste_without_localization.cc: New tests.
+
+ 2010-03-19 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Improve to_qimage routines.
+
+ * mln/convert/to_qimage.hh: rename namespace.
+
+ * mln/convert/to_qimage_nocopy.hh: Add a new implementation and
+ improve existing ones.
+
+ 2010-03-15 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * mln/subsampling/antialiased.hh: Add support for reduction factor
+ different from 2 or 3.
+
+ 2010-02-16 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * mln/labeling/colorize.hh: Add support for value::qt::rgb32.
+
+ 2010-02-19 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Small fixes in Milena.
+
+ * mln/accu/center.hh: Add nsites() member.
+
+ * mln/accu/pair.hh: Provide access to the underlying accus.
+
+ * mln/accu/stat/variance.hh: Use literal::zero.
+
+ * mln/core/internal/labeled_image_base.hh: Indent.
+
+ * mln/core/site_set/box.hh: Rename center() as pcenter().
+
+ * mln/labeling/blobs_and_compute.hh: Return the array of
+ accumulators.
+
+ * mln/labeling/colorize.hh: Make sure a color is not used
+ twice in the same image.
+
+ * mln/labeling/compute.hh: Add a new overload.
+
+ * mln/transform/influence_zone_geodesic.hh: Fix a
+ segmentation fault when an image had a border.
+
+ 2009-12-14 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add rbg_to_int_u function.
+
+ * mln/fun/v2v/all.hh: Include the new header.
+
+ * mln/fun/v2v/rgb_to_int_u.hh: New.
+
+ 2009-12-14 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add an antialiased subsampling.
+
+ * mln/subsampling/antialiased.hh: New.
+
+ 2009-12-14 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add hooks for subclasses in labeled_image_base.
+
+ * mln/core/internal/labeled_image_base.hh: New methods which can
+ be overridden in subclasses.
+
+ * mln/core/image/imorph/labeled_image.hh: Add a missing header.
+
+ 2010-03-11 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Small fixes.
+
+ * mln/accu/count_value.hh: Fix doc.
+
+ * mln/convert/from_to.hxx,
+ * mln/value/int_u.hh,
+ * mln/value/qt/rgb32.hhL: Add new from_to overloads.
+
+ * mln/convert/to_qimage.hh: Add a missing include.
+
+ * mln/convert/to_qimage_nocopy.hh: Rename an overload.
+
+ * mln/core/concept/function.hh: Add new concept n2v.
+
+ * mln/geom/rotate.hh: rename center() to pcenter().
+
+ * mln/histo/compute.hh: Fix a namespace ambiguity.
+
+ * mln/io/magick/save.hh: Handle qt::rgb32.
+
+ * mln/io/plot/save.hh: Add an overload for histograms.
+
+ * mln/labeling/relabel.hh: Make 'nlabels' const.
+
+ * mln/topo/skeleton/crest.hh: Fix a bug.
+
+ * tests/core/other/box_runstart_piter.cc: Write a valid test.
+
+ 2010-03-11 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * mln/draw/dashed_line.hh: New draw line routine.
+
+ 2010-02-24 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add white gaussian noise function.
+
+ * mln/fun/all.hh: Include a new file.
+
+ * mln/fun/n2v/all.hh,
+ * mln/fun/n2v/white_gaussian.hh: New.
+
+ 2010-02-16 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Cleanup to_qimage convertion routines.
+
+ * mln/convert/to_qimage.hh: Remove useless comments and move a
+ specific implementation...
+
+ * mln/convert/to_qimage_nocopy.hh: ... in this new file.
+
+ 2010-02-16 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add a routine to convert to a QImage.
+
+ * mln/convert/to_qimage.hh: New.
+
+ 2010-02-16 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add box<>::merge.
+
+ * mln/core/site_set/box.hh: New member 'merge()'.
+
+ * tests/core/site_set/Makefile.am,
+ * tests/core/site_set/box.cc: New test.
+
+ 2010-02-16 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Rename image3d<>::nslices to image3d<>::nslis.
+
+ * mln/core/image/image3d.hh,
+ * mln/debug/slices_2d.hh,
+ * tests/io/pbms/load.cc,
+ * tests/io/pgms/load.cc,
+ * tests/io/ppms/load.cc: Rename nslices to nslis.
+
+ 2010-02-16 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Various small fixes.
+
+ * doc/tutorial/tutorial.tex: Add more contacts.
+
+ * mln/accu/label_used.hh: Do not use label<>::next().
+
+ * mln/draw/line.hh: Add a fixme.
+
+ * mln/io/dump/save.hh: Close the file.
+
+ * mln/io/plot/save.hh: Fix an invalid prototype.
+
+ * mln/io/pnm/load.hh: Fix an invalid static check.
+
+ * mln/io/raw/get_header.hh: Fix comment.
+
+ * mln/labeling/pack.hh: Disable a static check on symbolic values.
+
+ * mln/math/diff_abs.hh: Add a fixme.
+
+ * mln/world/inter_pixel/full2image.hh: Use mln_concrete().
+
+ * mln/data/fill_with_value.hh,
+ * mln/io/raw/load.hh,
+ * mln/io/raw/save.hh,
+ * mln/labeling/compute.hh,
+ * mln/registration/icp.hh: Aesthetic changes.
+
+ 2010-02-16 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * mln/topo/skeleton/crest.hh: Fix invalid PSI values for component
+ edge sites.
+
+ 2010-02-16 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add a routine to read dump files header.
+
+ * mln/io/dump/all.hh: Include a new file.
+
+ * mln/io/dump/get_header.hh: New.
+
+ 2010-02-16 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add a routine to read DICOM files header.
+
+ * mln/io/dicom/all.hh: Include a new file.
+
+ * mln/io/dicom/get_header.hh: New.
+
+ * mln/io/dicom/load.hh: Add more doc.
+
+ 2010-02-16 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add A new routine to draw plain boxes.
+
+ * mln/draw/all.hh: Include new file.
+
+ * mln/draw/box.hh: Add a fixme.
+
+ * mln/draw/box_plain.hh: New.
+
+ 2010-02-16 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add more implementations for box specializations.
+
+ * mln/core/internal/box_impl.hh: Add width, height and depth.
+
+ 2010-02-16 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ First draft of raw format support.
+
+ * mln/io/raw/all.hh,
+ * mln/io/raw/get_header.hh,
+ * mln/io/raw/load.hh,
+ * mln/io/raw/save.hh: New.
+
+ 2010-02-16 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add new 3D neighborhoods and windows.
+
+ * mln/core/alias/neighb3d.hh,
+ * mln/win/sline3d.hh: New.
+
+ 2010-02-16 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add a new rgb32 type for Qt compatibility.
+
+ * mln/convert/from_to.hxx: Declare conversion routines.
+
+ * mln/value/qt/rgb32.hh: New.
+
+ 2010-02-16 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Fix invalid value type names in dump format.
+
+ * mln/value/internal/make_generic_name.hh: New.
+
+ * mln/value/int_u.hh,
+ * mln/value/label.hh,
+ * mln/value/rgb.hh: Make use of the new routine to print a
+ correct type names in dump format.
+
+2010-07-19 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Fix and improve the Magick++ I/O API wrapper.
+
+ * mln/io/magick/load.hh
+ (io::magick::do_it): Enclose these helpers...
+ (io::magick::impl::do_it): ...in a sub-namespace.
+ (io::magick::load): Ensure a Magick++'s Quantum is an 8-bit value.
+ Use a pixel view (Magick::Pixels) to access to pixel values.
+ No longer pass the input filename to the `do_it' helper.
+ Simplify the code.
+ Improve the documentation.
+ Aesthetic changes.
+ * mln/io/magick/save.hh
+ (io::magick::get_color): Enclose these helpers...
+ (io::magick::impl::get_color): ...in a sub-namespace.
+ Properly use Magick::Color.
+ Properly pass the width and the height of the image.
+ Use a pixel view (Magick::Pixels) to access to pixel values.
+ Simplify the code.
+ Aesthetic changes.
+ * tests/io/magick/load.cc,
+ * tests/io/magick/save.cc:
+ Properly initialize Magick++.
+ Exercice more cases.
+ * tests/io/magick/Makefile.am (MOSTLYCLEANFILES):
+ Update the list of files created by tests.
+
2010-04-26 Roland Levillain <roland(a)lrde.epita.fr>
Clean Milena's tests' outputs during `make mostlyclean'.
diff --cc milena/mln/io/magick/load.hh
index 662e67c,625134f..f961ccb
--- a/milena/mln/io/magick/load.hh
+++ b/milena/mln/io/magick/load.hh
@@@ -1,4 -1,4 +1,5 @@@
- // Copyright (C) 2009, 2010 EPITA Research and Development Laboratory (LRDE)
-// 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.
//
@@@ -139,26 -114,51 +140,27 @@@ namespace ml
{
trace::entering("mln::io::magick::load");
- I& ima = exact(ima_);
+ // Ensure a Magick++'s Quantum is an 8-bit value.
+ mln::metal::equal<Magick::Quantum, unsigned char>::check();
- Magick::Image im_file;
- im_file.ping(filename);
-
-// if (im_file)
-// {
-// std::cerr << "error: cannot open file '" << filename << "'!";
-// abort();
-// }
+ I& ima = exact(ima_);
- // Force a minimum resolution of 300DPI for PDF document.
- if (im_file.magick() == "PDF"
- && (im_file.xResolution() < 300
- || im_file.yResolution() < 300))
- {
- im_file.density(Magick::Geometry(300, 300));
- }
+ // FIXME: Handle Magick++'s exceptions (see either
+ // ImageMagick++'s or GraphicsMagick++'s documentation).
+ Magick::Image magick_ima(filename);
+ magick_ima.read(filename);
+ magick_ima.type(Magick::TrueColorType);
+ int nrows = magick_ima.rows();
+ int ncols = magick_ima.columns();
+ mln_site(I) pmin(0, 0);
+ mln_site(I) pmax(nrows - 1, ncols - 1);
+
- im_file.read(filename);
-
-
- im_file.modifyImage();
- im_file.type(Magick::TrueColorType);
- int columns = im_file.columns();
- int rows = im_file.rows();
- /*std::cout << "width: " <<columns << std::endl;
- std::cout << "height: " <<rows << std::endl;
- std::cout << "depth: " <<im_file.depth() << std::endl;
- std::cout << "format: " <<im_file.format() << std::endl;
- std::cout << "magick: " <<im_file.magick() << std::endl;*/
-
- const Magick::PixelPacket *
- pixel_cache = im_file.getConstPixels(0, 0, columns, rows);
-
- algebra::vec<mln_site_(I)::dim, unsigned int> vmin;
- algebra::vec<mln_site_(I)::dim, unsigned int> vmax;
- vmin[0] = 0;
- vmin[1] = 0;
- vmax[0] = rows - 1;
- vmax[1] = columns - 1;
- mln_site(I) pmin(vmin);
- mln_site(I) pmax(vmax);
mln_concrete(I) result(box<mln_site(I)>(pmin, pmax));
initialize(ima, result);
+
+ Magick::Pixels view(magick_ima);
+ // Note that `ncols' is passed before `nrows'.
+ Magick::PixelPacket* pixels = view.get(0, 0, ima.ncols(), ima.nrows());
mln_piter(I) p(ima.domain());
for_all(p)
{
diff --cc milena/mln/io/magick/save.hh
index d524564,72613c2..aa02ddf
--- a/milena/mln/io/magick/save.hh
+++ b/milena/mln/io/magick/save.hh
@@@ -28,23 -29,17 +29,24 @@@
/// \file
///
-/// Define a function which saves an image of kind magick with
-/// given path.
+/// \brief Image output routines based on Magick++.
///
-/// \todo At the moment it works; is it a miracle?
+/// Do not forget to call Magick::InitializeMagick(*argv)
+/// <em>before</em> using any of these functions, as advised by the
+/// GraphicsMagick documentation
+/// (http://www.graphicsmagick.org/Magick++/Image.html)
+
+# include <cstdlib>
+
+# include <Magick++.h>
-# include <mln/core/image/image2d.hh>
# include <mln/metal/equal.hh>
+
+# include <mln/core/image/image2d.hh>
+
# include <mln/value/int_u8.hh>
# include <mln/value/rgb8.hh>
+ # include <mln/value/qt/rgb32.hh>
-# include <Magick++.h>
namespace mln
@@@ -115,17 -110,14 +117,18 @@@
trace::entering("mln::io::magick::save");
mln_precondition(mln_site_(I)::dim == 2);
- const I& ima = exact(ima_);
+ // Turn this into a static check?
if (!(mln::metal::equal<mln_value(I), bool>::value ||
mln::metal::equal<mln_value(I), value::int_u8>::value ||
- mln::metal::equal<mln_value(I), value::rgb8>::value))
+ mln::metal::equal<mln_value(I), value::rgb8>::value ||
+ mln::metal::equal<mln_value(I), value::qt::rgb32>::value))
{
- std::cerr << "error: trying to save an unsupported format" << std::endl;
- std::cerr << "supported formats: binary, 8bits grayscale (int_u8), 8bits truecolor (rgb8)" << std::endl;
+ std::cerr <<
+ "error: trying to save an unsupported format\n"
+ "supported formats are:\n"
+ " binary (bool)\n"
+ " 8-bit grayscale (mln::value::int_u8)\n"
+ " 3x8-bit truecolor (rgb8)" << std::endl;
abort();
}
diff --cc milena/tests/io/magick/save.cc
index 9f5eae7,a6361c6..d01643e
--- a/milena/tests/io/magick/save.cc
+++ b/milena/tests/io/magick/save.cc
@@@ -24,38 -25,28 +25,38 @@@
// executable file might be covered by the GNU General Public License.
#include <mln/core/image/image2d.hh>
+
+#include <mln/data/compare.hh>
+
#include <mln/io/magick/load.hh>
#include <mln/io/magick/save.hh>
+
+#include <mln/io/pbm/load.hh>
+#include <mln/io/pbm/save.hh>
+
+#include <mln/io/pgm/load.hh>
+#include <mln/io/pgm/save.hh>
+
#include <mln/io/ppm/load.hh>
-#include <mln/data/compare.hh>
+#include <mln/io/ppm/save.hh>
+
#include "tests/data.hh"
-
-#include <mln/io/magick/load.hh>
+
-int main()
-{
- using namespace mln;
+using namespace mln;
- point2d p(0,0);
- image2d<value::rgb8> lena_mln;
- io::ppm::load(lena_mln, MLN_IMG_DIR "/tiny.ppm");
- value::rgb8 c = lena_mln(p);
+template <typename T>
+image2d<T>
+test(const image2d<T>& lena_mln, const std::string& temp_filename)
+{
+ point2d p(0,0);
- io::magick::save(lena_mln, "save-tiny.png");
+ T c = lena_mln(p);
- image2d<value::rgb8> lena_im;
- io::magick::load(lena_im, "save-tiny.png");
+ io::magick::save(lena_mln, temp_filename);
+ image2d<T> lena_im;
+ io::magick::load(lena_im, temp_filename);
mln_assertion(lena_im(p) == c);
mln_assertion(lena_im.domain() == lena_mln.domain());
diff --cc scribo/ChangeLog
index 3f0ee54,2dd5cb4..6bdcf0c
--- a/scribo/ChangeLog
+++ b/scribo/ChangeLog
@@@ -1,10 -1,2321 +1,2328 @@@
+ 2010-08-13 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * scribo/debug/text_areas_image.hh: Add a typedef to help g++-3.3.
+
+ 2010-08-12 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * scribo/preprocessing/rotate_90.hh: Add a typedef to help
+ g++-3.3.
+
+ 2010-08-12 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Fix invalid pointer offset types.
+
+ * scribo/preprocessing/rotate_90.hh
+ (out_next_offset, out_next_p_offset): Fix a wrong type leading to
+ overflows.
+ (output): Add an assertion checking its validity.
+
+ 2010-08-10 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Fix warnings with g++-4.1 in Scribo.
+
+ * scribo/binarization/internal/first_pass_functor.hh,
+ * scribo/binarization/sauvola_ms.hh,
+ * scribo/binarization/sauvola_threshold_image.hh,
+ * scribo/binarization/sauvola_threshold_image_debug.hh,
+ * scribo/postprocessing/fill_object_holes.hh,
+ * scribo/preprocessing/deskew.hh,
+ * scribo/primitive/extract/lines_pattern.hh,
+ * scribo/subsampling/bilinear.hh,
+ * scribo/subsampling/integral_single_image.hh,
+ * scribo/text/clean_inplace.hh,
+ * src/debug/show_links_several_right_overlap.cc,
+ * src/debug/show_links_single_down.cc,
+ * src/debug/show_links_single_down_left_aligned.cc,
+ * src/debug/show_links_single_down_right_aligned.cc,
+ * src/debug/show_links_single_left.cc,
+ * src/debug/show_links_single_right.cc,
+ * src/debug/show_links_single_up.cc,
+ * src/debug/show_links_single_up_left_aligned.cc,
+ * src/debug/show_links_single_up_right_aligned.cc: explicitly
+ convert to a specific type when necessary.
+
+ 2010-08-10 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Regen headers.mk and unit-tests.mk in Scribo.
+
+ * headers.mk,
+ * tests/unit_test/unit-tests.mk: Regen.
+
+ 2010-08-10 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Update READMEs.
+
+ * README,
+ * src/README: Add few details about the content.
+
+ 2010-08-10 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Update Scribo include paths.
+
+ * Makefile.am,
+ * tests/unit_test/Makefile.am: Fix path of generated header list.
+
+ * src/text_in_picture.cc,
+ * src/text_recognition_in_picture.cc,
+ * tests/filter/objects_with_holes.cc,
+ * tests/filter/small_and_large_bboxes.cc,
+ * tests/preprocessing/crop.cc,
+ * tests/preprocessing/crop_without_localization.cc,
+ * tests/preprocessing/deskew.cc,
+ * tests/preprocessing/rotate_90.cc,
+ * tests/table/extract_lines_with_rank.cc,
+ * tests/table/repair_lines.cc,
+ * tests/toolchain/nepomuk/text_extraction.cc: Fix path to data.hh.
+
+ * demo/demat/demat.pro,
+ * demo/wizard/wizard.pro,
+ * scribo.mk,
+ * tests/tests.mk: Set correct path to Scribo includes.
+
+ * headers.mk,
+ * tests/unit_test/unit-tests.mk: Regen.
+
+ 2010-08-10 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Move Scribo includes in a specific directory.
+
+ * all.hh,
+ * binarization/all.hh,
+ * binarization/global_threshold.hh,
+ * binarization/global_threshold_auto.hh,
+ * binarization/internal/first_pass_functor.hh,
+ * binarization/local_threshold.hh,
+ * binarization/sauvola.hh,
+ * binarization/sauvola_ms.hh,
+ * binarization/sauvola_ms_split.hh,
+ * binarization/sauvola_threshold_image.hh,
+ * binarization/sauvola_threshold_image_debug.hh,
+ * canvas/integral_browsing.hh,
+ * convert/from_qimage.hh,
+ * core/all.hh,
+ * core/central_sites.hh,
+ * core/component_info.hh,
+ * core/component_set.hh,
+ * core/concept/dmax_functor.hh,
+ * core/concept/link_functor.hh,
+ * core/def/lbl_type.hh,
+ * core/erase_objects.hh,
+ * core/init_integral_image.hh,
+ * core/line_info.hh,
+ * core/line_set.hh,
+ * core/macros.hh,
+ * core/object_groups.hh,
+ * core/object_links.hh,
+ * core/tag/anchor.hh,
+ * core/tag/component.hh,
+ * core/tag/line.hh,
+ * debug/alignment_decision_image.hh,
+ * debug/all.hh,
+ * debug/bboxes_enlarged_image.hh,
+ * debug/char_space_image.hh,
+ * debug/decision_image.hh,
+ * debug/highlight_text_area.hh,
+ * debug/line_info_image.hh,
+ * debug/links_decision_image.hh,
+ * debug/looks_like_a_text_line_image.hh,
+ * debug/mean_and_base_lines_image.hh,
+ * debug/save_bboxes_image.hh,
+ * debug/save_comp_diff.hh,
+ * debug/save_label_image.hh,
+ * debug/save_linked_bboxes_image.hh,
+ * debug/save_table_image.hh,
+ * debug/several_links_decision_image.hh,
+ * debug/text_areas_image.hh,
+ * debug/usage.hh,
+ * draw/all.hh,
+ * draw/bounding_box_links.hh,
+ * draw/bounding_boxes.hh,
+ * draw/groups_bboxes.hh,
+ * estim/object_groups_v_thickness.hh,
+ * filter/all.hh,
+ * filter/common/objects_photo.hh,
+ * filter/internal/alignment_angle.hh,
+ * filter/internal/component_aligned.hh,
+ * filter/internal/compute.hh,
+ * filter/object_groups_size_ratio.hh,
+ * filter/object_groups_small.hh,
+ * filter/object_groups_v_thickness.hh,
+ * filter/object_groups_with_holes.hh,
+ * filter/object_links_bbox_h_ratio.hh,
+ * filter/object_links_bbox_overlap.hh,
+ * filter/object_links_bbox_ratio.hh,
+ * filter/object_links_bbox_w_ratio.hh,
+ * filter/object_links_bottom_aligned.hh,
+ * filter/object_links_center_aligned.hh,
+ * filter/object_links_left_aligned.hh,
+ * filter/object_links_non_aligned_simple.hh,
+ * filter/object_links_right_aligned.hh,
+ * filter/object_links_top_aligned.hh,
+ * filter/objects_h_thick.hh,
+ * filter/objects_h_thin.hh,
+ * filter/objects_large.hh,
+ * filter/objects_size_ratio.hh,
+ * filter/objects_small.hh,
+ * filter/objects_thick.hh,
+ * filter/objects_thin.hh,
+ * filter/objects_v_thick.hh,
+ * filter/objects_v_thin.hh,
+ * filter/objects_with_holes.hh,
+ * fun/v2b/label_to_bool.hh,
+ * fun/v2b/objects_large_filter.hh,
+ * fun/v2b/objects_small_filter.hh,
+ * io/text_boxes/save.hh,
+ * io/xml/save.hh,
+ * make/all.hh,
+ * make/debug_filename.hh,
+ * make/influence_zone_graph.hh,
+ * postprocessing/all.hh,
+ * postprocessing/fill_object_holes.hh,
+ * preprocessing/all.hh,
+ * preprocessing/crop.hh,
+ * preprocessing/crop_without_localization.hh,
+ * preprocessing/denoise.hh,
+ * preprocessing/denoise_bg.hh,
+ * preprocessing/denoise_fg.hh,
+ * preprocessing/deskew.hh,
+ * preprocessing/deskew_crop.hh,
+ * preprocessing/homogeneous_contrast.hh,
+ * preprocessing/rotate_90.hh,
+ * preprocessing/split_bg_fg.hh,
+ * primitive/all.hh,
+ * primitive/extract/all.hh,
+ * primitive/extract/canvas.hh,
+ * primitive/extract/cells.hh,
+ * primitive/extract/components.hh,
+ * primitive/extract/horizontal_separators.hh,
+ * primitive/extract/lines_discontinued.hh,
+ * primitive/extract/lines_h_discontinued.hh,
+ * primitive/extract/lines_h_pattern.hh,
+ * primitive/extract/lines_h_single.hh,
+ * primitive/extract/lines_h_thick.hh,
+ * primitive/extract/lines_h_thick_and_single.hh,
+ * primitive/extract/lines_pattern.hh,
+ * primitive/extract/lines_thick.hh,
+ * primitive/extract/lines_v_discontinued.hh,
+ * primitive/extract/lines_v_pattern.hh,
+ * primitive/extract/lines_v_single.hh,
+ * primitive/extract/lines_v_thick.hh,
+ * primitive/extract/lines_v_thick_and_single.hh,
+ * primitive/extract/separators.hh,
+ * primitive/extract/vertical_separators.hh,
+ * primitive/group/all.hh,
+ * primitive/group/apply.hh,
+ * primitive/group/from_double_link.hh,
+ * primitive/group/from_graph.hh,
+ * primitive/group/from_single_link.hh,
+ * primitive/internal/all.hh,
+ * primitive/internal/find_graph_link.hh,
+ * primitive/internal/find_root.hh,
+ * primitive/internal/have_link_valid.hh,
+ * primitive/internal/is_link_valid.hh,
+ * primitive/internal/rd.hh,
+ * primitive/internal/update_graph_link.hh,
+ * primitive/link/all.hh,
+ * primitive/link/compute.hh,
+ * primitive/link/compute_several.hh,
+ * primitive/link/internal/compute_anchor.hh,
+ * primitive/link/internal/dmax_default.hh,
+ * primitive/link/internal/dmax_functor_base.hh,
+ * primitive/link/internal/dmax_width_and_height.hh,
+ * primitive/link/internal/dmax_width_only.hh,
+ * primitive/link/internal/find_link.hh,
+ * primitive/link/internal/find_several_links.hh,
+ * primitive/link/internal/link_functor_base.hh,
+ * primitive/link/internal/link_several_dmax_base.hh,
+ * primitive/link/internal/link_single_dmax_base.hh,
+ * primitive/link/internal/link_single_dmax_ratio_base.hh,
+ * primitive/link/merge_double_link.hh,
+ * primitive/link/with_graph.hh,
+ * primitive/link/with_rag.hh,
+ * primitive/link/with_several_graphes.hh,
+ * primitive/link/with_several_left_links.hh,
+ * primitive/link/with_several_right_closest_links.hh,
+ * primitive/link/with_several_right_links.hh,
+ * primitive/link/with_several_right_links_overlap.hh,
+ * primitive/link/with_single_down_link.hh,
+ * primitive/link/with_single_left_link.hh,
+ * primitive/link/with_single_left_link_dmax_ratio.hh,
+ * primitive/link/with_single_right_link.hh,
+ * primitive/link/with_single_right_link_bottom.hh,
+ * primitive/link/with_single_right_link_dmax_ratio.hh,
+ * primitive/link/with_single_right_link_top.hh,
+ * primitive/link/with_single_up_link.hh,
+ * primitive/regroup/from_single_left_link.hh,
+ * primitive/regroup/from_single_left_link_wrt_h_ratio.hh,
+ * primitive/remove/separators.hh,
+ * subsampling/bilinear.hh,
+ * subsampling/integral.hh,
+ * subsampling/integral_single_image.hh,
+ * table/align_lines_horizontaly.hh,
+ * table/align_lines_verticaly.hh,
+ * table/all.hh,
+ * table/connect_horizontal_lines.hh,
+ * table/connect_vertical_lines.hh,
+ * table/erase.hh,
+ * table/extract.hh,
+ * table/internal/align_lines.hh,
+ * table/internal/all.hh,
+ * table/internal/connect_lines.hh,
+ * table/internal/repair_lines.hh,
+ * table/rebuild.hh,
+ * table/repair_horizontal_lines.hh,
+ * table/repair_vertical_lines.hh,
+ * text/all.hh,
+ * text/clean.hh,
+ * text/clean_inplace.hh,
+ * text/extract_lines.hh,
+ * text/look_like_text_lines.hh,
+ * text/merging.hh,
+ * text/recognition.hh,
+ * toolchain/nepomuk/text_extraction.hh,
+ * toolchain/text_in_doc.hh,
+ * upsampling/bs2x.hh,
+ * upsampling/eagle.hh: Move...
+
+ * scribo/all.hh,
+ * scribo/binarization/all.hh,
+ * scribo/binarization/global_threshold.hh,
+ * scribo/binarization/global_threshold_auto.hh,
+ * scribo/binarization/internal/first_pass_functor.hh,
+ * scribo/binarization/local_threshold.hh,
+ * scribo/binarization/sauvola.hh,
+ * scribo/binarization/sauvola_ms.hh,
+ * scribo/binarization/sauvola_ms_split.hh,
+ * scribo/binarization/sauvola_threshold_image.hh,
+ * scribo/binarization/sauvola_threshold_image_debug.hh,
+ * scribo/canvas/integral_browsing.hh,
+ * scribo/convert/from_qimage.hh,
+ * scribo/core/all.hh,
+ * scribo/core/central_sites.hh,
+ * scribo/core/component_info.hh,
+ * scribo/core/component_set.hh,
+ * scribo/core/concept/dmax_functor.hh,
+ * scribo/core/concept/link_functor.hh,
+ * scribo/core/def/lbl_type.hh,
+ * scribo/core/erase_objects.hh,
+ * scribo/core/init_integral_image.hh,
+ * scribo/core/line_info.hh,
+ * scribo/core/line_set.hh,
+ * scribo/core/macros.hh,
+ * scribo/core/object_groups.hh,
+ * scribo/core/object_links.hh,
+ * scribo/core/tag/anchor.hh,
+ * scribo/core/tag/component.hh,
+ * scribo/core/tag/line.hh,
+ * scribo/debug/alignment_decision_image.hh,
+ * scribo/debug/all.hh,
+ * scribo/debug/bboxes_enlarged_image.hh,
+ * scribo/debug/char_space_image.hh,
+ * scribo/debug/decision_image.hh,
+ * scribo/debug/highlight_text_area.hh,
+ * scribo/debug/line_info_image.hh,
+ * scribo/debug/links_decision_image.hh,
+ * scribo/debug/looks_like_a_text_line_image.hh,
+ * scribo/debug/mean_and_base_lines_image.hh,
+ * scribo/debug/save_bboxes_image.hh,
+ * scribo/debug/save_comp_diff.hh,
+ * scribo/debug/save_label_image.hh,
+ * scribo/debug/save_linked_bboxes_image.hh,
+ * scribo/debug/save_table_image.hh,
+ * scribo/debug/several_links_decision_image.hh,
+ * scribo/debug/text_areas_image.hh,
+ * scribo/debug/usage.hh,
+ * scribo/draw/all.hh,
+ * scribo/draw/bounding_box_links.hh,
+ * scribo/draw/bounding_boxes.hh,
+ * scribo/draw/groups_bboxes.hh,
+ * scribo/estim/object_groups_v_thickness.hh,
+ * scribo/filter/all.hh,
+ * scribo/filter/common/objects_photo.hh,
+ * scribo/filter/internal/alignment_angle.hh,
+ * scribo/filter/internal/component_aligned.hh,
+ * scribo/filter/internal/compute.hh,
+ * scribo/filter/object_groups_size_ratio.hh,
+ * scribo/filter/object_groups_small.hh,
+ * scribo/filter/object_groups_v_thickness.hh,
+ * scribo/filter/object_groups_with_holes.hh,
+ * scribo/filter/object_links_bbox_h_ratio.hh,
+ * scribo/filter/object_links_bbox_overlap.hh,
+ * scribo/filter/object_links_bbox_ratio.hh,
+ * scribo/filter/object_links_bbox_w_ratio.hh,
+ * scribo/filter/object_links_bottom_aligned.hh,
+ * scribo/filter/object_links_center_aligned.hh,
+ * scribo/filter/object_links_left_aligned.hh,
+ * scribo/filter/object_links_non_aligned_simple.hh,
+ * scribo/filter/object_links_right_aligned.hh,
+ * scribo/filter/object_links_top_aligned.hh,
+ * scribo/filter/objects_h_thick.hh,
+ * scribo/filter/objects_h_thin.hh,
+ * scribo/filter/objects_large.hh,
+ * scribo/filter/objects_size_ratio.hh,
+ * scribo/filter/objects_small.hh,
+ * scribo/filter/objects_thick.hh,
+ * scribo/filter/objects_thin.hh,
+ * scribo/filter/objects_v_thick.hh,
+ * scribo/filter/objects_v_thin.hh,
+ * scribo/filter/objects_with_holes.hh,
+ * scribo/fun/v2b/label_to_bool.hh,
+ * scribo/fun/v2b/objects_large_filter.hh,
+ * scribo/fun/v2b/objects_small_filter.hh,
+ * scribo/io/text_boxes/save.hh,
+ * scribo/io/xml/save.hh,
+ * scribo/make/all.hh,
+ * scribo/make/debug_filename.hh,
+ * scribo/make/influence_zone_graph.hh,
+ * scribo/postprocessing/all.hh,
+ * scribo/postprocessing/fill_object_holes.hh,
+ * scribo/preprocessing/all.hh,
+ * scribo/preprocessing/crop.hh,
+ * scribo/preprocessing/crop_without_localization.hh,
+ * scribo/preprocessing/denoise.hh,
+ * scribo/preprocessing/denoise_bg.hh,
+ * scribo/preprocessing/denoise_fg.hh,
+ * scribo/preprocessing/deskew.hh,
+ * scribo/preprocessing/deskew_crop.hh,
+ * scribo/preprocessing/homogeneous_contrast.hh,
+ * scribo/preprocessing/rotate_90.hh,
+ * scribo/preprocessing/split_bg_fg.hh,
+ * scribo/primitive/all.hh,
+ * scribo/primitive/extract/all.hh,
+ * scribo/primitive/extract/canvas.hh,
+ * scribo/primitive/extract/cells.hh,
+ * scribo/primitive/extract/components.hh,
+ * scribo/primitive/extract/horizontal_separators.hh,
+ * scribo/primitive/extract/lines_discontinued.hh,
+ * scribo/primitive/extract/lines_h_discontinued.hh,
+ * scribo/primitive/extract/lines_h_pattern.hh,
+ * scribo/primitive/extract/lines_h_single.hh,
+ * scribo/primitive/extract/lines_h_thick.hh,
+ * scribo/primitive/extract/lines_h_thick_and_single.hh,
+ * scribo/primitive/extract/lines_pattern.hh,
+ * scribo/primitive/extract/lines_thick.hh,
+ * scribo/primitive/extract/lines_v_discontinued.hh,
+ * scribo/primitive/extract/lines_v_pattern.hh,
+ * scribo/primitive/extract/lines_v_single.hh,
+ * scribo/primitive/extract/lines_v_thick.hh,
+ * scribo/primitive/extract/lines_v_thick_and_single.hh,
+ * scribo/primitive/extract/separators.hh,
+ * scribo/primitive/extract/vertical_separators.hh,
+ * scribo/primitive/group/all.hh,
+ * scribo/primitive/group/apply.hh,
+ * scribo/primitive/group/from_double_link.hh,
+ * scribo/primitive/group/from_graph.hh,
+ * scribo/primitive/group/from_single_link.hh,
+ * scribo/primitive/internal/all.hh,
+ * scribo/primitive/internal/find_graph_link.hh,
+ * scribo/primitive/internal/find_root.hh,
+ * scribo/primitive/internal/have_link_valid.hh,
+ * scribo/primitive/internal/is_link_valid.hh,
+ * scribo/primitive/internal/rd.hh,
+ * scribo/primitive/internal/update_graph_link.hh,
+ * scribo/primitive/link/all.hh,
+ * scribo/primitive/link/compute.hh,
+ * scribo/primitive/link/compute_several.hh,
+ * scribo/primitive/link/internal/compute_anchor.hh,
+ * scribo/primitive/link/internal/dmax_default.hh,
+ * scribo/primitive/link/internal/dmax_functor_base.hh,
+ * scribo/primitive/link/internal/dmax_width_and_height.hh,
+ * scribo/primitive/link/internal/dmax_width_only.hh,
+ * scribo/primitive/link/internal/find_link.hh,
+ * scribo/primitive/link/internal/find_several_links.hh,
+ * scribo/primitive/link/internal/link_functor_base.hh,
+ * scribo/primitive/link/internal/link_several_dmax_base.hh,
+ * scribo/primitive/link/internal/link_single_dmax_base.hh,
+ * scribo/primitive/link/internal/link_single_dmax_ratio_base.hh,
+ * scribo/primitive/link/merge_double_link.hh,
+ * scribo/primitive/link/with_graph.hh,
+ * scribo/primitive/link/with_rag.hh,
+ * scribo/primitive/link/with_several_graphes.hh,
+ * scribo/primitive/link/with_several_left_links.hh,
+ * scribo/primitive/link/with_several_right_closest_links.hh,
+ * scribo/primitive/link/with_several_right_links.hh,
+ * scribo/primitive/link/with_several_right_links_overlap.hh,
+ * scribo/primitive/link/with_single_down_link.hh,
+ * scribo/primitive/link/with_single_left_link.hh,
+ * scribo/primitive/link/with_single_left_link_dmax_ratio.hh,
+ * scribo/primitive/link/with_single_right_link.hh,
+ * scribo/primitive/link/with_single_right_link_bottom.hh,
+ * scribo/primitive/link/with_single_right_link_dmax_ratio.hh,
+ * scribo/primitive/link/with_single_right_link_top.hh,
+ * scribo/primitive/link/with_single_up_link.hh,
+ * scribo/primitive/regroup/from_single_left_link.hh,
+ * scribo/primitive/regroup/from_single_left_link_wrt_h_ratio.hh,
+ * scribo/primitive/remove/separators.hh,
+ * scribo/subsampling/bilinear.hh,
+ * scribo/subsampling/integral.hh,
+ * scribo/subsampling/integral_single_image.hh,
+ * scribo/table/align_lines_horizontaly.hh,
+ * scribo/table/align_lines_verticaly.hh,
+ * scribo/table/all.hh,
+ * scribo/table/connect_horizontal_lines.hh,
+ * scribo/table/connect_vertical_lines.hh,
+ * scribo/table/erase.hh,
+ * scribo/table/extract.hh,
+ * scribo/table/internal/align_lines.hh,
+ * scribo/table/internal/all.hh,
+ * scribo/table/internal/connect_lines.hh,
+ * scribo/table/internal/repair_lines.hh,
+ * scribo/table/rebuild.hh,
+ * scribo/table/repair_horizontal_lines.hh,
+ * scribo/table/repair_vertical_lines.hh,
+ * scribo/text/all.hh,
+ * scribo/text/clean.hh,
+ * scribo/text/clean_inplace.hh,
+ * scribo/text/extract_lines.hh,
+ * scribo/text/look_like_text_lines.hh,
+ * scribo/text/merging.hh,
+ * scribo/text/recognition.hh,
+ * scribo/toolchain/nepomuk/text_extraction.hh,
+ * scribo/toolchain/text_in_doc.hh,
+ * scribo/upsampling/bs2x.hh,
+ * scribo/upsampling/eagle.hh: ... here.
+
+ 2010-08-10 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Setup conditional unit-tests in Scribo.
+
+ * tests/tests.mk: Add specific flags for external dependencies.
+
+ * tests/unit_test/Makefile.am
+ (EXTRA_DIST): Add const_tests_* files.
+ (regen-am): Use build-aux/build_unit_test.sh.
+ (scribo_*FLAGS): Remove specific flags for conditional unit-tests.
+
+ * tests/unit_test/build_unit_test.sh: Remove. Useless since
+ build-aux/build_unit_test.sh is used instead.
+
+ * tests/unit_test/cond_tests_qt,
+ * tests/unit_test/cond_tests_qt_tesseract_tiff,
+ * tests/unit_test/cond_tests_tesseract_tiff: New.
+
+ * tests/unit_test/unit-tests.mk: Regen.
+
+ 2010-08-09 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * tests/unit_test/disabled_tests: Update list of disabled tests.
+
+ 2010-08-09 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add a new rotation tool.
+
+ * src/preprocessing/Makefile.am: Add a new target.
+
+ * src/preprocessing/rotate.cc: New.
+
+ 2010-08-09 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Remove deprecated references to object_image.
+
+ * core/object_image.hh: Remove.
+
+ * filter/object_groups_size_ratio.hh,
+ * filter/object_links_bbox_w_ratio.hh,
+ * filter/object_links_left_aligned.hh,
+ * filter/object_links_right_aligned.hh,
+ * primitive/extract/lines_h_thick_and_single.hh,
+ * primitive/extract/lines_v_thick_and_single.hh,
+ * primitive/link/internal/find_several_links.hh,
+ * primitive/link/internal/link_several_dmax_base.hh,
+ * primitive/link/with_single_up_link.hh,
+ * src/debug/show_links_left_right_links_validation.cc,
+ * src/primitive/find/find_discontinued_lines.cc,
+ * src/primitive/find/find_pattern_lines.cc,
+ * tests/filter/small_and_large_bboxes.cc,
+ * src/primitive/group/group_from_double_link_filter_non_aligned.cc:
+ Remove include of object_image.hh.
+
+ 2010-08-09 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Cleanup Makefiles.
+
+ * src/Makefile.am: Disable tests and remove deprecated ones.
+
+ * src/preprocessing/Makefile.am: Use MAGICKXX_* flags.
+
+ 2010-08-09 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Cleanup and improve text recognition.
+
+ * src/text_recognition_in_picture.cc: Use new routines. Cleanup
+ useless comments. Use a height ratio filter to improve OCR
+ results.
+
+ 2010-08-09 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Cleanup and make use of the new routines.
+
+ * src/text_in_picture.cc: Here.
+
+ 2010-08-09 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Make use of the new component_set interface.
+
+ * filter/internal/compute.hh,
+ * filter/objects_small.hh,
+ * filter/objects_thick.hh,
+ * filter/objects_thin.hh,
+ * primitive/group/from_double_link.hh,
+ * primitive/link/compute_several.hh,
+ * table/align_lines_horizontaly.hh,
+ * table/erase.hh,
+ * table/extract.hh: Here.
+
+ 2010-08-09 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Fix compilation of Scribo tools.
+
+ * src/debug/show_links_bbox_overlap.cc,
+ * src/debug/show_links_center_aligned.cc,
+ * src/debug/show_links_non_h_aligned.cc,
+ * src/debug/show_links_several_right.cc,
+ * src/debug/show_links_several_right_overlap.cc,
+ * src/debug/show_links_single_down.cc,
+ * src/debug/show_links_single_down_left_aligned.cc,
+ * src/debug/show_links_single_down_right_aligned.cc,
+ * src/debug/show_links_single_left.cc,
+ * src/debug/show_links_single_left_dmax_ratio.cc,
+ * src/debug/show_links_single_right.cc,
+ * src/debug/show_links_single_right_dmax_ratio.cc,
+ * src/debug/show_links_single_up.cc,
+ * src/debug/show_links_single_up_left_aligned.cc,
+ * src/debug/show_links_single_up_right_aligned.cc,
+ * src/debug/show_objects_large.cc,
+ * src/debug/show_objects_large_small.cc,
+ * src/debug/show_objects_small.cc,
+ * src/debug/show_objects_thick.cc,
+ * src/debug/show_objects_thin.cc,
+ * src/filter/objects_large.cc,
+ * src/filter/objects_small.cc,
+ * src/filter/objects_thick.cc,
+ * src/filter/objects_thin.cc,
+ * src/filter/objects_with_holes.cc,
+ * src/filter/objects_with_holes_pgm.cc,
+ * src/preprocessing/preprocess.cc,
+ * src/preprocessing/split_bg_fg.cc,
+ * src/preprocessing/unskew.cc,
+ * src/primitive/extract/extract_discontinued_hlines.cc,
+ * src/primitive/extract/extract_discontinued_lines.cc,
+ * src/primitive/extract/extract_discontinued_vlines.cc,
+ * src/primitive/extract/extract_thick_hlines.cc,
+ * src/primitive/extract/extract_thick_vlines.cc,
+ * src/primitive/find/find_discontinued_lines.cc,
+ * src/primitive/find/find_single_lines.cc,
+ * src/primitive/find/find_thick_and_single_lines.cc,
+ * src/primitive/find/find_thick_lines.cc,
+ * src/primitive/group/Makefile.am,
+ * src/primitive/group/group_from_double_link.cc,
+ * src/primitive/group/group_from_double_several_links.cc,
+ * src/primitive/group/group_from_several_left_links.cc,
+ * src/primitive/group/group_from_single_link.cc,
+ * src/table/erase.cc,
+ * src/text/cleantxt.cc: Here.
+
+ 2010-08-09 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Catch up with the current interface of scribo::debug::usage.
+
+ * src/debug/show_links_bottom_aligned.cc,
+ * src/debug/show_links_top_aligned.cc,
+ * src/misc/negate.cc,
+ * src/misc/superpose.cc,
+ * src/preprocessing/rotate_90.cc,
+ * src/primitive/extract/lines_pattern.cc,
+ * src/primitive/find/find_pattern_lines.cc,
+ * src/table/extract.cc: Here.
+
+ 2010-08-09 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Replace the use of object_image with component_set.
+
+ * core/erase_objects.hh,
+ * debug/several_links_decision_image.hh,
+ * filter/object_groups_size_ratio.hh,
+ * filter/object_links_bbox_w_ratio.hh,
+ * filter/object_links_center_aligned.hh,
+ * filter/object_links_left_aligned.hh,
+ * filter/object_links_right_aligned.hh,
+ * filter/objects_h_thick.hh,
+ * filter/objects_h_thin.hh,
+ * filter/objects_size_ratio.hh,
+ * filter/objects_v_thick.hh,
+ * filter/objects_v_thin.hh,
+ * primitive/extract/lines_h_thick_and_single.hh,
+ * primitive/extract/lines_v_thick_and_single.hh,
+ * primitive/group/from_graph.hh,
+ * primitive/internal/find_graph_link.hh,
+ * primitive/link/with_graph.hh,
+ * primitive/link/with_rag.hh,
+ * primitive/link/with_several_graphes.hh,
+ * primitive/link/with_several_left_links.hh,
+ * primitive/link/with_several_right_closest_links.hh,
+ * primitive/link/with_several_right_links.hh,
+ * primitive/link/with_single_down_link.hh,
+ * primitive/link/with_single_up_link.hh: Replace the use of
+ object_image with component_set.
+
+ 2010-08-09 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Small fixes in Scribo.
+
+ * core/component_info.hh (is_valid): Check the bounding box
+ validity.
+
+ * core/macros.hh: Add a new macro.
+
+ * debug/decision_image.hh: Remove deprecated preconditions and add
+ missing includes.
+
+ * draw/bounding_boxes.hh: Check the component validity.
+
+ * filter/object_links_non_aligned_simple.hh: Update doc.
+
+ * filter/objects_with_holes.hh: Remove debug and timers. Add
+ missing includes.
+
+ * primitive/extract/lines_pattern.hh: Use the window template
+ parameter instead of an exact window type.
+
+ * primitive/link/internal/find_several_links.hh: Update code with
+ new interfaces.
+
+ * primitive/link/internal/link_functor_base.hh
+ (nanchors()): Remove this method.
+ (labeled_image()): Add a const version.
+
+ * primitive/link/internal/link_several_dmax_base.hh
+ (nanchors(), anchors()): New methods.
+ Introduce 'direction_' attribute.
+
+ * debug/several_links_decision_image.hh: Remove deprecated
+ preconditions.
+
+ * src/debug/show_links_single_left.cc: Update include.
+
+ * table/internal/align_lines.hh,
+ * table/rebuild.hh: Make use of component_set structure.
+
+ * debug/text_areas_image.hh,
+ * primitive/regroup/from_single_left_link_wrt_h_ratio.hh: Add
+ missing includes.
+
+ * src/contest/hdibco-2010/Makefile.am: Do not consider this tool
+ as a test anymore.
+
+ 2010-08-09 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add missing includes and headers in AFP's dedicated code.
+
+ * src/afp/components.hh,
+ * src/afp/link.hh,
+ * src/afp/regroup.hh: Add missing includes and headers.
+
+ 2010-08-09 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add new routines in Scribo.
+
+ * debug/highlight_text_area.hh,
+ * debug/save_bboxes_image.hh: Add a new overload.
+
+ * debug/save_comp_diff.hh,
+ * debug/text_areas_image.hh,
+ * primitive/regroup/from_single_left_link_wrt_h_ratio.hh: New.
+
+ 2010-08-09 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Remove deprecated files.
+
+ * core/internal/link_functor_base.hh,
+ * debug/save_object_diff.hh,
+ * make/text.hh,
+ * primitive/internal/update_link_array.hh,
+ * primitive/link/internal/anchors_3.hh,
+ * primitive/link/internal/link_ms_dmax_base.hh,
+ * primitive/link/internal/link_ms_dmax_ratio_base.hh,
+ * src/pbm_lines_in_doc.cc: Remove.
+
+ 2010-08-09 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Fix many tests in Scribo.
+
+ * all.hh,
+ * binarization/all.hh,
+ * binarization/internal/first_pass_functor.hh,
+ * convert/from_qimage.hh,
+ * core/tag/component.hh,
+ * core/tag/line.hh,
+ * debug/links_decision_image.hh,
+ * debug/mean_and_base_lines_image.hh,
+ * filter/object_groups_with_holes.hh,
+ * io/xml/save.hh,
+ * make/all.hh,
+ * postprocessing/all.hh,
+ * postprocessing/fill_object_holes.hh,
+ * preprocessing/all.hh,
+ * preprocessing/crop_without_localization.hh,
+ * preprocessing/denoise_bg.hh,
+ * preprocessing/denoise_fg.hh,
+ * preprocessing/deskew.hh,
+ * preprocessing/deskew_crop.hh,
+ * preprocessing/split_bg_fg.hh,
+ * primitive/extract/all.hh,
+ * primitive/extract/lines_h_single.hh,
+ * primitive/extract/lines_pattern.hh,
+ * primitive/extract/lines_v_single.hh,
+ * primitive/group/all.hh,
+ * primitive/internal/all.hh,
+ * primitive/internal/is_link_valid.hh,
+ * primitive/link/all.hh,
+ * primitive/link/internal/compute_anchor.hh,
+ * primitive/link/internal/dmax_functor_base.hh,
+ * primitive/regroup/from_single_left_link.hh,
+ * primitive/remove/separators.hh,
+ * subsampling/bilinear.hh,
+ * text/merging.hh,
+ * toolchain/nepomuk/text_extraction.hh,
+ * upsampling/eagle.hh: Add missing headers in order to fix
+ unit-tests.
+
+ * tests/Makefile.am: Disable "table" directory's tests.
+
+ * tests/core/Makefile.am: Remove object_image test.
+
+ * tests/core/object_image.cc: Remove. Deprecated.
+
+ * tests/filter/objects_with_holes.cc,
+ * tests/filter/small_and_large_bboxes.cc: Write a real test.
+
+ * tests/unit_test/Makefile.am: Add specific flags for unit-tests
+ using tesseract and image magick.
+
+ 2010-07-21 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Have Tesseract-related parts of Scribo compile again.
+
+ * scribo/debug/bboxes_enlarged_image.hh,
+ * scribo/debug/looks_like_a_text_line_image.hh,
+ * scribo/debug/mean_and_base_lines_image.hh,
+ * scribo/debug/save_bboxes_image.hh:
+ Catch up with scribo::line_info<L>'s current interface.
+ Reported by Olivier Grisel <ogrisel(a)nuxeo.com>.
+
+ 2010-08-04 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * core/component_set.hh: Add a new internal member
+ valid_comps_image_().
+
+ 2010-08-04 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * filter/object_groups_with_holes.hh: Fix an invalid mismatch
+ between groups ids and their related component ids and add more
+ comments.
+
+ 2010-07-06 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Compilation related fixes in Scribo.
+
+ * core/line_info.hh: Rename hidden as is_hidden.
+
+ * core/object_links.hh: Add duplicate().
+
+ * filter/object_links_bbox_ratio.hh: Use object_links::duplicate.
+
+ * debug/links_decision_image.hh,
+ * src/debug/show_info_median_inter_characters.cc,
+ * src/debug/show_info_x_height.cc,
+ * src/debug/show_links_bbox_h_ratio.cc,
+ * src/debug/show_links_left_right_links_validation.cc: Make
+ compile again.
+
+ * tests/unit_test/unit-tests.mk: Regen.
+
+ * text/extract_lines.hh: Update with latest changes.
+
+ * text/recognition.hh: Check whether a line is hidden or not.
+
+ 2010-07-06 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add new debug routines.
+
+ * debug/char_space_image.hh,
+ * debug/line_info_image.hh: New.
+
+ 2010-07-06 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Disable some debug output.
+
+ * text/clean_inplace.hh,
+ * text/recognition.hh: Disable some debug output.
+
+ 2010-07-06 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add a tool for text recognition in natural pictures.
+
+ * src/Makefile.am: Add a new rule.
+
+ * src/text_recognition_in_picture.cc: New.
+
+ 2010-07-06 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add text::look_like_text_lines.
+
+ * text/look_like_text_lines.hh: New.
+
+ * text/merging.hh: Make use of
+ text::look_like_text_lines.
+
+ 2010-06-30 Arthur Crepin-Leblond <crepin(a)stockholm.lrde.epita.fr>
+
+ Extended XML mode support.
+
+ * scribo/demo/viewer/Makefile.am
+
+ * demo/viewer/image_region.cc,
+ * viewer/image_region.hh,
+ * viewer/image_region.hxx: Change regions depths to have a
+ hierarchy.
+
+ * demo/viewer/image_scene.cc,
+ * demo/viewer/image_scene.hh: Change mouse click behaviour.
+
+ * demo/viewer/key_widget.cc,
+ * demo/viewer/key_widget.hh: Add new items (text line and
+ paragraph)
+
+ * demo/viewer/viewer.cc,
+ * demo/viewer/viewer.hh: Change XML parsing to support extended
+ format.
+
+ * scribo/demo/viewer/common.hh: Add new RegionId's.
+
+ 2010-06-30 Arthur Crepin-Leblond <crepin(a)stockholm.lrde.epita.fr>
+
+ New features in Qt interface.
+
+ * demo/viewer/browser_widget.hh: Improve picture browser.
+
+ * demo/viewer/step_widget.cc: Add a "step chooser" to load several
+ XML files related to one picture.
+
+ 2010-06-30 Arthur Crepin-Leblond <crepin(a)stockholm.lrde.epita.fr>
+
+ Change XML output (replacement of html markups).
+
+ * io/xml/save.hh: Add internal::html_markups_replace.
+
+ 2010-06-29 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add text::clean_inplace.
+
+ * text/clean.hh: Make use of text::clean_inplace.
+
+ * text/clean_inplace.hh: New.
+
+ * text/recognition.hh: Include text::clean_inplace.
+
+ 2010-06-25 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Small Fixes in Scribo build system.
+
+ * demo/Makefile.am: Enabled demos only if QT is configured.
+
+ * src/Makefile.am: Make use of MAGICKCXX flags.
+
+ 2010-06-25 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Improve text recognition.
+
+ * text/clean.hh: Use upsampling::eagle.
+
+ * text/recognition.hh: Make sure there is a border around the
+ text even after having resized images.
+
+ 2010-06-25 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * binarization/sauvola_ms.hh: Fix an invalid test.
+
+ 2010-06-25 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * upsampling/eagle.hh: Add a new upsampling algorithm.
+
+ 2010-06-23 Arthur Crepin-Leblond <crepin(a)stockholm.lrde.epita.fr>
+
+ Add extensions to ICDAR XML format.
+
+ * io/xml/save_text_lines.hh: Rename as...
+ * io/xml/save.hh: ...this.
+
+ * src/pbm_text_in_doc.cc: Update call to io::xml::save.
+
+ 2010-06-18 green <jacquelet(a)lrde.epita.fr>
+
+ Prepare green's sandbox.
+
+ * sandbox: New experimental directory.
+ * sandbox/green: New green'work.
+ * sandbox/green/ChangeLog: New ChangeLog file.
+
+ 2010-06-15 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Small fixes.
+
+ * debug/save_linked_bboxes_image.hh: Fix namespace ambiguity.
+
+ * src/pbm_text_in_doc.cc: Fix comment.
+
+ * src/text_in_picture: Change few settings.
+
+ * text/recognition.hh: Fix invalid default arguments.
+
+ 2010-06-15 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Remove deprecated code.
+
+ * util/all.hh,
+ * util/text.hh: Remove.
+
+ 2010-06-15 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add new Makefiles in Scribo demo directories.
+
+ * Makefile.am,
+ * demo/Makefile.am: Add new Makefiles.
+
+ 2010-06-15 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * primitive/extract/components.hh: Use labeling::value_and_compute.
+
+ 2010-06-15 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add a fast rotation tool.
+
+ * src/preprocessing/Makefile.am,
+ * src/preprocessing/rotate_90.cc: New.
+
+ 2010-06-15 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add a new routine to highlight text areas in an image.
+
+ * debug/highlight_text_area.hh: New.
+
+ * src/debug/Makefile.am,
+ * src/debug/highlight_text_area.cc: New tool.
+
+ * src/text_in_picture.cc: Make use of this new routine.
+
+ 2010-06-03 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * src/README: New.
+
+ 2010-06-03 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Improve Scribo demo.
+
+ * demo/demat/demat.pro: Add new flags.
+
+ * demo/demat/src/main.cc: Make use of MLN_WO_GLOBALS_VARS.
+
+ * demo/demat/src/main_window.cc,
+ * demo/demat/src/main_window.hh: Cropping is not required
+ anymore. Improve visualization speed.
+
+ * demo/demat/src/preprocessing_task.hh,
+ * demo/demat/src/runner.cc,
+ * demo/demat/src/runner.hh,
+ * demo/demat/ui/main_window.ui: Add a new task for Sauvola ms
+ split.
+
+ * demo/review/src/main.cc,
+ * demo/review/src/mainwindow.cc,
+ * demo/review/src/mainwindow.hh: Start updating executable names
+ and arguments.
+
+ * demo/shared/src/crop_item.cc,
+ * demo/shared/src/crop_item.hh,
+ * demo/shared/src/image_viewer.cc,
+ * demo/shared/src/image_viewer.hh,
+ * demo/shared/src/image_viewer.hxx,
+ * demo/shared/src/internal/interactive_scene.cc,
+ * demo/shared/src/internal/interactive_scene.hh,
+ * demo/shared/ui/image_viewer.ui: Improve look and feel and
+ drawing speed of these components.
+
+ * demo/wizard/src/load_page.cc,
+ * demo/wizard/src/main_window.cc,
+ * demo/wizard/src/runner.cc: Fix compilation.
+
+ 2010-06-03 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Small fixes.
+
+ * binarization/sauvola_threshold_image.hh: Add ifdefs.
+
+ * core/object_groups.hh: Fix a wrong assertion.
+
+ * postprocessing/fill_object_holes.hh: Disable debug output.
+
+ * preprocessing/denoise_bg.hh: Do not negate the image anymore.
+
+ 2010-06-03 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add the binarization tool submitted to H-DIBCO 2010.
+
+ * src/Makefile.am,
+ * src/contest/Makefile.am,
+ * src/contest/hdibco-2010/Makefile.am: New.
+
+ * src/contest/hdibco-2010/sauvola_ms_hdibco.cc: New. Source code
+ of the submitted program for H-DIBCO 2010.
+
+ 2010-06-03 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Update tools in scribo/src.
+
+ * src/Makefile.am: Add postprocessing subdir.
+
+ * src/postprocessing/Makefile.am,
+ * src/postprocessing/fill_object_holes.cc: New.
+
+ * src/preprocessing/denoise.cc: Remove.
+
+ * src/preprocessing/denoise_bg.cc,
+ * src/preprocessing/denoise_fg.cc: New.
+
+ 2010-06-03 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add a specific toolchain for Nepomuk integration.
+
+ * convert/from_qimage.hh: New. convert an image2d to a QImage.
+
+ * core/line_info.hh: Add a new member has_text.
+
+ * text/recognition.hh: Remove an invalid precondition.
+
+ * toolchain/nepomuk/text_extraction.hh: New. Specific toolchain
+ for Nepomuk.
+
+ * tests/Makefile.am: Add toolchain/* subdirs.
+
+ * tests/toolchain/Makefile.am,
+ * tests/toolchain/nepomuk/Makefile.am: New.
+
+ * tests/img/wildly.pbm: New. New test image.
+
+ * tests/toolchain/nepomuk/text_extraction.cc: New. New test.
+
+ 2010-05-25 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Cleanup sample tools.
+
+ * src/preprocessing/Makefile.am,
+ * src/text/Makefile.am,
+ * src/Makefile.am: Update.
+
+ * src/multi_scale/Makefile.am,
+ * src/multi_scale/find_lines.cc
+ * src/text/pbm_recognition.cc
+ * src/text/recognition.cc
+ * src/text_in_article_preprocess.cc
+ * src/text_in_doc.cc
+ * src/text_in_doc_ppm.cc
+ * src/text_in_photo.cc
+ * src/text_in_photo_invert.cc
+ * src/text_in_photo_pbm_fast.cc
+ * src/text_in_photo_ppm.cc
+ * test.cc: Remove. Deprecated.
+
+ * src/text_in_article_pbm.cc: Rename as...
+ * src/pbm_text_in_doc.cc: ... this. Make use of the new toolchain
+ routines.
+
+ * src/text/pbm_lines_recognition.cc,
+ * src/text_in_doc_preprocess.cc: New.
+
+ * src/text_in_photo_fast.cc: Rename as...
+ * src/text_in_picture.cc: ... this.
+
+ * src/preprocessing/subsample.cc: Make use of io::magick.
+
+ 2010-05-25 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * toolchain/text_in_doc.hh: Introduce a new routine for extracting
+ text in a document.
+
+ 2010-05-25 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * core/def/lbl_type.hh: Introduce a global label type.
+
+ 2010-05-25 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Improve line detection.
+
+ * primitive/extract/lines_h_pattern.hh,
+ * primitive/extract/lines_v_pattern.hh: Use reconstruction
+ algorithm.
+
+ * primitive/extract/lines_pattern.hh: Add a fast implementation.
+
+ 2010-05-25 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * io/text_boxes/save.hh: New. Save text boxes information.
+
+ 2010-05-25 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add a new deskew algorithm.
+
+ * preprocessing/deskew.hh,
+ * preprocessing/deskew_crop.hh: New.
+
+ * preprocessing/unskew.hh: Remove. Deprecated.
+
+ * tests/preprocessing/unskew.cc: Rename as...
+ * tests/preprocessing/deskew.cc: ... this.
+
+ * tests/preprocessing/Makefile.am: Update.
+
+ * tests/img/text_to_group.pgm: New test image.
+
+ 2010-05-25 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add crop tools.
+
+ * preprocessing/crop.hh,
+ * preprocessing/crop_without_localization.hh: new routines.
+
+ * tests/preprocessing/Makefile.am,
+ * tests/preprocessing/crop.cc,
+ * tests/preprocessing/crop_without_localization.cc: Associated
+ tests.
+
+ 2010-05-25 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Small fixes.
+
+ * core/object_groups.hh: Fix an invalid size.
+
+ * debug/save_bboxes_image.hh,
+ * filter/object_links_non_aligned_simple.hh,
+ * primitive/group/from_single_link.hh,
+ * subsampling/bilinear.hh,
+ * text/merging.hh,
+ * upsampling/bs2x.hh: Fix namespace ambiguities.
+
+ * primitive/group/from_double_link.hh: Fix comment.
+
+ * primitive/internal/find_root.hh: Fix guards.
+
+ * primitive/link/with_single_right_link_dmax_ratio.hh: Add a
+ missing include.
+
+ * primitive/remove/separators.hh: Improve computation time.
+
+ * preprocessing/rotate_90.hh: Add a fixme.
+
+ 2010-05-25 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Store OCR results in the line_info structure.
+
+ * core/line_info.hh: Add a new attribute 'text'.
+
+ * text/recognition.hh: Store results in the line_info structure.
+
+ 2010-05-25 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Improve debug outputs in Sauvola and make binarization tools
+ compile again.
+
+ * binarization/internal/first_pass_functor.hh,
+ * binarization/sauvola_ms.hh,
+ * binarization/sauvola_threshold_image.hh: Add debug outputs if
+ SCRIBO_SAUVOLA_DEBUG flag is set.
+
+ * binarization/sauvola_ms_split.hh: Remove lambda argument.
+
+ * binarization/sauvola_threshold_image_debug.hh: Add the threshold
+ image as debug output.
+
+ * src/binarization/Makefile.am: Add sauvola_ms_debug.
+ * src/binarization/sauvola_ms_debug.cc: New.
+
+ * src/binarization/fg_sauvola_ms.cc,
+ * src/binarization/pgm_sauvola_ms.cc,
+ * src/binarization/ppm_fg_sauvola_ms.cc,
+ * src/binarization/ppm_sauvola_ms.cc,
+ * src/binarization/ppm_sauvola_ms_split.cc,
+ * src/binarization/sauvola_debug.cc,
+ * src/binarization/sauvola_ms.cc,
+ * src/binarization/sauvola_ms_split.cc: Make compile again.
+
+ 2010-05-04 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Small fixes for Nuxeo/XWiki.
+
+ * src/text_in_article_preprocess.cc: Fix use of program
+ arguments.
+
+ * core/line_set.hh,
+ * text/clean.hh,
+ * text/merging.hh: Fix compilation.
+
+ * text/recognition.hh: Update output format.
+
+ 2010-05-04 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * text/merging.hh: Disable some debug.
+
+ 2010-05-04 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Prepare DIA tools for Nuxeo/XWiki.
+
+ * src/Makefile.am: Add a new target.
+
+ * src/text_in_article_preprocess.cc: New.
+
+ * src/text_in_article_pbm.cc: Add optional cropping and makes the
+ debug optionnal.
+
+ * text/clean.hh: Improve cleanup.
+
+ * text/recognition.hh: Remove last '\n' in Tesseract's output.
+
+ 2010-04-30 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Improve OCR recognition.
+
+ * src/text_in_article_pbm.cc: Update call to text::recognition.
+
+ * text/clean.hh: Resize text lines according to their x_height.
+
+ * text/extract_lines.hh: Update call to extract::components.
+
+ * text/merging.hh: Remove Debug.
+
+ * text/recognition.hh: Update call to text::clean and do
+ recognition only on lines considered as text.
+
+ * subsampling/bilinear.hh,
+ * upsampling/bs2x.hh: New.
+
+ 2010-04-30 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * postprocessing/fill_object_holes.hh: New routine.
+
+ 2010-04-30 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add new routines to detect separators.
+
+ * primitive/extract/horizontal_separators.hh,
+ * primitive/extract/separators.hh,
+ * primitive/extract/vertical_separators.hh,
+ * primitive/remove/separators.hh: New.
+
+ 2010-04-30 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add A first draft of a README in Scribo.
+
+ * README: New.
+
+ 2010-04-30 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Move AFP's GUI into Scribo's demo directory.
+
+ * ../milena/sandbox/lazzara/afp/photos/gui/gui.pro,
+ * ../milena/sandbox/lazzara/afp/photos/gui/gui.qrc,
+ * ../milena/sandbox/lazzara/afp/photos/gui/icons/next.png,
+ * ../milena/sandbox/lazzara/afp/photos/gui/icons/ok.png,
+ * ../milena/sandbox/lazzara/afp/photos/gui/icons/photos.png,
+ * ../milena/sandbox/lazzara/afp/photos/gui/icons/prev.png,
+ * ../milena/sandbox/lazzara/afp/photos/gui/icons/remove.png,
+ * ../milena/sandbox/lazzara/afp/photos/gui/src/custom_delegate.cc,
+ * ../milena/sandbox/lazzara/afp/photos/gui/src/custom_delegate.hh,
+ * ../milena/sandbox/lazzara/afp/photos/gui/src/launch_dialog.cc,
+ * ../milena/sandbox/lazzara/afp/photos/gui/src/launch_dialog.hh,
+ * ../milena/sandbox/lazzara/afp/photos/gui/src/main.cc,
+ * ../milena/sandbox/lazzara/afp/photos/gui/src/main_window.cc,
+ * ../milena/sandbox/lazzara/afp/photos/gui/src/main_window.hh,
+ * ../milena/sandbox/lazzara/afp/photos/gui/ui/launch_dialog.ui,
+ * ../milena/sandbox/lazzara/afp/photos/gui/ui/main_window.ui: Move...
+
+ * demo/tip/gui.pro,
+ * demo/tip/gui.qrc,
+ * demo/tip/icons/next.png,
+ * demo/tip/icons/ok.png,
+ * demo/tip/icons/photos.png,
+ * demo/tip/icons/prev.png,
+ * demo/tip/icons/remove.png,
+ * demo/tip/src/custom_delegate.cc,
+ * demo/tip/src/custom_delegate.hh,
+ * demo/tip/src/launch_dialog.cc,
+ * demo/tip/src/launch_dialog.hh,
+ * demo/tip/src/main.cc,
+ * demo/tip/src/main_window.cc,
+ * demo/tip/src/main_window.hh,
+ * demo/tip/ui/launch_dialog.ui,
+ * demo/tip/ui/main_window.ui: ... here.
+
+ 2010-04-30 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Introduce dmax_functor concept.
+
+ * core/concept/dmax_functor.hh,
+ * primitive/link/internal/dmax_default.hh,
+ * primitive/link/internal/dmax_functor_base.hh,
+ * primitive/link/internal/dmax_width_and_height.hh,
+ * primitive/link/internal/dmax_width_only.hh: New.
+
+ * primitive/link/internal/link_single_dmax_ratio_base.hh,
+ * primitive/link/with_single_left_link_dmax_ratio.hh,
+ * primitive/link/with_single_right_link_dmax_ratio.hh: Make use of
+ the new functors.
+
+ 2010-04-30 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Small fixes in Scribo.
+
+ * binarization/sauvola_ms.hh,
+ * binarization/sauvola_threshold_image_debug.hh: Update prototypes.
+
+ * primitive/internal/rd.hh,
+ * primitive/group/apply.hh,
+ * debug/save_bboxes_image.hh: Add missing mln:: namespace prefix.
+
+ * filter/objects_large.hh: Split into a routine and a functor.
+
+ * fun/v2b/objects_large_filter.hh: New.
+
+ * io/xml/save_text_lines.hh: Save line type.
+
+ * table/internal/repair_lines.hh,
+ * table/internal/align_lines.hh,
+ * make/text.hh: Update macro name.
+
+ * core/erase_objects.hh,
+ * primitive/extract/lines_discontinued.hh,
+ * primitive/extract/lines_h_discontinued.hh,
+ * primitive/extract/lines_h_pattern.hh,
+ * primitive/extract/lines_h_single.hh,
+ * primitive/extract/lines_h_thick.hh,
+ * primitive/extract/lines_thick.hh,
+ * primitive/extract/lines_v_discontinued.hh,
+ * primitive/extract/lines_v_single.hh,
+ * primitive/extract/lines_v_thick.hh,
+ * primitive/group/from_graph.hh,
+ * primitive/internal/find_graph_link.hh,
+ * primitive/link/with_graph.hh,
+ * primitive/link/with_several_graphes.hh,
+ * primitive/link/with_several_left_links.hh,
+ * primitive/link/with_several_right_links.hh,
+ * table/erase.hh,
+ * table/extract.hh: Remove any references to object_image.
+
+ * table/internal/connect_lines.hh: use
+ influence_zone_geodesic_saturated
+
+ * filter/objects_small.hh: Duplicate component set.
+
+ * primitive/internal/all.hh,
+ * primitive/extract/all.hh,
+ * filter/all.hh,
+ * core/all.hh: Remove non existing includes.
+
+ * core/macros.hh: New macro.
+
+ * core/line_info.hh: Fix stats.
+
+ * filter/object_links_non_aligned.hh,
+ * filter/object_links_non_h_aligned.hh,
+ * filter/object_links_non_v_aligned.hh: Removed.
+
+ 2010-03-19 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Improve dematerialization wizard.
+
+ * demo/wizard/src/crop_widget.cc,
+ * demo/wizard/src/main.cc,
+ * demo/wizard/src/main_window.cc,
+ * demo/wizard/src/main_window.hh,
+ * demo/wizard/src/preprocessing_widget.cc,
+ * demo/wizard/src/process_page.cc,
+ * demo/wizard/src/result_page.cc,
+ * demo/wizard/src/result_page.hh,
+ * demo/wizard/src/result_widget.cc,
+ * demo/wizard/src/result_widget.hh,
+ * demo/wizard/src/runner.cc,
+ * demo/wizard/ui/preprocessing_widget.ui,
+ * demo/wizard/wizard.pro: Add support for text recognition and
+ display results.
+
+ 2010-03-19 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add a new demo in Scribo.
+
+ * demo/demat/demat.pro,
+ * demo/demat/demat.qrc,
+ * demo/demat/src/doc_type.hh,
+ * demo/demat/src/main.cc,
+ * demo/demat/src/main_window.cc,
+ * demo/demat/src/main_window.hh,
+ * demo/demat/src/mln_widgets.cc,
+ * demo/demat/src/preprocessing_task.hh,
+ * demo/demat/src/process_args.hh,
+ * demo/demat/src/runner.cc,
+ * demo/demat/src/runner.hh,
+ * demo/demat/ui/main_window.ui: New.
+
+ * demo/shared/src/crop_item.cc,
+ * demo/shared/src/crop_item.hh,
+ * demo/shared/src/image_viewer.cc,
+ * demo/shared/src/image_viewer.hh,
+ * demo/shared/ui/image_viewer.ui: Update according the needs of
+ this new demo.
+
+ 2010-04-13 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * io/xml/save_text_lines.hh: Fix XML output.
+
+ 2010-04-13 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * debug/decision_image.hh: Add the anchor::Type as argument.
+
+ 2010-04-13 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Use anchor::Type in alignment routines' dispatch.
+
+ * filter/object_links_bottom_aligned.hh,
+ * filter/object_links_center_aligned.hh,
+ * filter/object_links_left_aligned.hh,
+ * filter/object_links_non_aligned_simple.hh,
+ * filter/object_links_right_aligned.hh,
+ * filter/object_links_top_aligned.hh: Use anchor::Type.
+
+ * filter/internal/alignment_angle.hh,
+ * filter/internal/component_aligned.hh: New.
+
+ 2010-04-13 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Small fixes related to object_groups.
+
+ * core/object_groups.hh: Add more preconditions.
+
+ * filter/object_groups_small.hh: Call duplicate().
+
+ 2010-04-13 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add init() member to object_links structure.
+
+ * core/object_links.hh: New init() member.
+
+ * filter/object_groups_v_thickness.hh,
+ * filter/object_groups_with_holes.hh,
+ * primitive/group/from_double_link.hh,
+ * primitive/link/internal/link_functor_base.hh,
+ * primitive/link/merge_double_link.hh,
+ * src/afp/link.hh,
+ * src/afp/regroup.hh: Call init() on object_links instances.
+
+ * primitive/internal/init_link_array.hh: Remove.
+
+ 2010-04-13 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * src/text_in_photo_fast.cc: Group routine parameters in a global
+ structure.
+
+ 2010-04-13 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add new Sauvola overloads and update examples.
+
+ * binarization/internal/first_pass_functor.hh,
+ * binarization/local_threshold.hh,
+ * binarization/sauvola.hh,
+ * binarization/sauvola_ms.hh,
+ * binarization/sauvola_ms_split.hh,
+ * binarization/sauvola_threshold_image.hh,
+ * canvas/integral_browsing.hh: Add more parameters to Sauvola
+ routines.
+
+ * binarization/sauvola_threshold_image_debug.hh: New. New overload
+ providing debug outputs.
+
+ * debug/usage.hh: Remove a parameter.
+
+ * src/binarization/Makefile.am,
+ * src/binarization/pgm_global_threshold_auto.cc,
+ * src/binarization/pgm_sauvola.cc,
+ * src/binarization/pgm_sauvola_ms.cc,
+ * src/binarization/ppm_fg_sauvola_ms.cc,
+ * src/binarization/ppm_sauvola.cc,
+ * src/binarization/ppm_sauvola_ms.cc,
+ * src/binarization/ppm_sauvola_ms_split.cc: Add new program
+ arguments.
+
+ * src/binarization/fg_sauvola_ms.cc,
+ * src/binarization/sauvola.cc,
+ * src/binarization/sauvola_ms.cc,
+ * src/binarization/sauvola_ms_split.cc,
+ * src/binarization/sauvola_debug.cc: New.
+
+ 2010-03-29 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add support for various image types in text_in_photo_fast.
+
+ * src/Makefile.am: Add ImageMagick CPPFLAGS and LDFLAGS.
+
+ * src/text_in_photo_ppm_fast.cc: Rename as...
+ * src/text_in_photo_fast.cc: ... this. Use ImageMagick to load images.
+
+ 2010-03-19 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Improve dematerialization wizard.
+
+ * demo/wizard/src/crop_widget.cc,
+ * demo/wizard/src/main.cc,
+ * demo/wizard/src/main_window.cc,
+ * demo/wizard/src/main_window.hh,
+ * demo/wizard/src/preprocessing_widget.cc,
+ * demo/wizard/src/process_page.cc,
+ * demo/wizard/src/result_page.cc,
+ * demo/wizard/src/result_page.hh,
+ * demo/wizard/src/result_widget.cc,
+ * demo/wizard/src/result_widget.hh,
+ * demo/wizard/src/runner.cc,
+ * demo/wizard/ui/preprocessing_widget.ui,
+ * demo/wizard/wizard.pro: Add support for text recognition and
+ display results.
+
+ 2010-03-19 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add a new demo in Scribo.
+
+ * demo/demat/demat.pro,
+ * demo/demat/demat.qrc,
+ * demo/demat/src/doc_type.hh,
+ * demo/demat/src/main.cc,
+ * demo/demat/src/main_window.cc,
+ * demo/demat/src/main_window.hh,
+ * demo/demat/src/mln_widgets.cc,
+ * demo/demat/src/preprocessing_task.hh,
+ * demo/demat/src/process_args.hh,
+ * demo/demat/src/runner.cc,
+ * demo/demat/src/runner.hh,
+ * demo/demat/ui/main_window.ui: New.
+
+ * demo/shared/src/crop_item.cc,
+ * demo/shared/src/crop_item.hh,
+ * demo/shared/src/image_viewer.cc,
+ * demo/shared/src/image_viewer.hh,
+ * demo/shared/ui/image_viewer.ui: Update according the needs of
+ this new demo.
+
+ 2010-03-19 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Small fixes in Scribo.
+
+ * binarization/sauvola_ms.hh: Fix compilation issues on MacOS X.
+
+ * core/component_set.hh: Add labeled_image_() member.
+
+ * debug/save_bboxes_image.hh: Add a missing include.
+
+ * preprocessing/split_bg_fg.hh,
+ * primitive/extract/components.hh: Fix namespace ambiguities.
+
+ * src/text_in_article.cc: Rename as...
+ * src/text_in_article_pbm.cc: ... this.
+
+ * src/Makefile.am: Update source file names.
+
+ 2010-03-18 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Cleanup binarization tools.
+
+ * binarization/binarize.hh,
+ * binarization/simple.hh,
+ * binarization/sauvola_threshold.hh,
+ * src/binarization/simple.cc,
+ * src/binarization/sauvola_pgm.cc,
+ * src/binarization/sauvola_ms.cc,
+ * src/binarization/sauvola.cc: Rename as...
+
+
+ * binarization/local_threshold.hh,
+ * binarization/global_threshold_auto.hh,
+ * binarization/sauvola_threshold_image.hh,
+ * src/binarization/pgm_global_threshold_auto.cc,
+ * src/binarization/pgm_sauvola.cc,
+ * src/binarization/pgm_sauvola_ms.cc,
+ * src/binarization/ppm_sauvola.cc: ... this.
+
+ * binarization/global_threshold.hh,
+ * binarization/sauvola_ms_split.hh,
+ * src/binarization/ppm_fg_sauvola_ms.cc,
+ * src/binarization/ppm_sauvola_ms.cc,
+ * src/binarization/ppm_sauvola_ms_split.cc: New.
+
+ * binarization/internal/first_pass_functor.hh: Fix an include.
+
+ * binarization/sauvola.hh: Update code according to last renaming.
+
+ * binarization/sauvola_ms.hh: Invert threshold test and add
+ documentation.
+
+ * src/binarization/Makefile.am: Add new targets.
+
+ * tests/Makefile.am,
+ * tests/binarization/Makefile.am,
+ * tests/binarization/global_threshold.cc,
+ * tests/binarization/local_threshold.cc: New tests.
+
+ 2010-03-17 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Update AFP's toolchain according to last changes in core classes.
+
+ * core/object_groups.hh: Add duplicate().
+
+ * primitive/group/apply.hh: Preserve components ids.
+
+ * draw/groups_bboxes.hh,
+ * filter/object_groups_with_holes.hh,
+ * primitive/regroup/from_single_left_link.hh: New.
+
+ * src/text_in_photo_ppm_fast.cc: Make it work with the new core
+ classes. Fix component ids issues when relabeling.
+
+ 2010-03-11 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add a new example for finding text in pictures.
+
+ * src/Makefile.am: Add new target.
+
+ * src/text_in_photo_pbm_fast.cc: New.
+
+ 2010-03-11 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ First draft of the dematerialization wizard.
+
+ * demo/shared/icons/Symbols-Delete-icon.png,
+ * demo/shared/icons/accept-icon.png,
+ * demo/shared/icons/close.gif,
+ * demo/shared/icons/crop-icon.png,
+ * demo/shared/icons/image-add-icon.png,
+ * demo/shared/icons/image-edit-icon.png,
+ * demo/shared/icons/image-multi-icon.png,
+ * demo/shared/icons/image-next-icon.png,
+ * demo/shared/icons/image-remove-icon.png,
+ * demo/shared/icons/next-icon.png,
+ * demo/shared/icons/page-down-icon.png,
+ * demo/shared/icons/page-search-icon.png,
+ * demo/shared/icons/rotate_ccw.png,
+ * demo/shared/icons/rotate_cw.png,
+ * demo/shared/icons/search-add-icon.png,
+ * demo/shared/icons/search-remove-icon.png,
+ * demo/shared/shared.qrc,
+ * demo/shared/src/bak/crop_item.cc,
+ * demo/shared/src/bak/crop_item.hh,
+ * demo/shared/src/bak/image_viewer.cc,
+ * demo/shared/src/bak/image_viewer.hh,
+ * demo/shared/src/bak/types.hh,
+ * demo/shared/src/browse_widget.cc,
+ * demo/shared/src/browse_widget.hh,
+ * demo/shared/src/crop_item.cc,
+ * demo/shared/src/crop_item.hh,
+ * demo/shared/src/image_viewer.cc,
+ * demo/shared/src/image_viewer.hh,
+ * demo/shared/src/internal.bak/interactive_scene.cc,
+ * demo/shared/src/internal.bak/interactive_scene.hh,
+ * demo/shared/src/internal.bak/selection_rectangle.cc,
+ * demo/shared/src/internal.bak/selection_rectangle.hh,
+ * demo/shared/src/internal/interactive_scene.cc,
+ * demo/shared/src/internal/interactive_scene.hh,
+ * demo/shared/src/internal/selection_rectangle.cc,
+ * demo/shared/src/internal/selection_rectangle.hh,
+ * demo/shared/src/to_mln_image.hh,
+ * demo/shared/src/types.hh,
+ * demo/shared/ui/browse_widget.ui,
+ * demo/shared/ui/crop_widget.ui,
+ * demo/shared/ui/image_viewer.ui,
+ * demo/shared/ui/interactive_scene.cc,
+ * demo/shared/ui/interactive_scene.hh,
+ * demo/shared/ui/rotate_widget.ui,
+ * demo/wizard/images/dematerialization.png,
+ * demo/wizard/src/crop_page.cc,
+ * demo/wizard/src/crop_page.hh,
+ * demo/wizard/src/crop_widget.cc,
+ * demo/wizard/src/crop_widget.hh,
+ * demo/wizard/src/doc_type.hh,
+ * demo/wizard/src/doc_type_page.cc,
+ * demo/wizard/src/doc_type_page.hh,
+ * demo/wizard/src/doc_type_widget.cc,
+ * demo/wizard/src/doc_type_widget.hh,
+ * demo/wizard/src/load_page.cc,
+ * demo/wizard/src/load_page.hh,
+ * demo/wizard/src/load_widget.cc,
+ * demo/wizard/src/load_widget.hh,
+ * demo/wizard/src/main.cc,
+ * demo/wizard/src/main_window.cc,
+ * demo/wizard/src/main_window.hh,
+ * demo/wizard/src/mln_widgets.cc,
+ * demo/wizard/src/preprocessing_page.cc,
+ * demo/wizard/src/preprocessing_page.hh,
+ * demo/wizard/src/preprocessing_task.hh,
+ * demo/wizard/src/preprocessing_widget.cc,
+ * demo/wizard/src/preprocessing_widget.hh,
+ * demo/wizard/src/process_page.cc,
+ * demo/wizard/src/process_page.hh,
+ * demo/wizard/src/process_widget.cc,
+ * demo/wizard/src/process_widget.hh,
+ * demo/wizard/src/rotate_page.cc,
+ * demo/wizard/src/rotate_page.hh,
+ * demo/wizard/src/rotate_widget.cc,
+ * demo/wizard/src/rotate_widget.hh,
+ * demo/wizard/src/runner.cc,
+ * demo/wizard/src/runner.hh,
+ * demo/wizard/src/test.cc,
+ * demo/wizard/ui/doc_type_widget.ui,
+ * demo/wizard/ui/load_widget.ui,
+ * demo/wizard/ui/main_window.ui,
+ * demo/wizard/ui/preprocessing_widget.ui,
+ * demo/wizard/wizard.pro,
+ * demo/wizard/wizard.qrc: New.
+
+ 2010-03-11 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Update examples.
+
+ * src/text_in_photo_ppm_fast.cc,
+ * src/debug/show_links_bottom_aligned.cc,
+ * src/debug/show_links_top_aligned.cc: Update calls to routines.
+
+ * src/preprocessing/trash.cc,
+ * src/text_in_photo_ppm_fast_2.cc,
+ * src/preprocessing/split_bg_fg_ms.cc,
+ * src/preprocessing/denoising.cc: Removed.
+
+ * src/preprocessing/denoise.cc,
+ * src/preprocessing/homogeneous_contrast.ccm,
+ * src/preprocessing/subsample.cc: New.
+
+ * src/preprocessing/Makefile.am: Add new files as target.
+
+ * src/preprocessing/split_bg_fg.cc: Fix usage.
+
+ * src/text_in_article.cc: Update processing chain.
+
+ 2010-03-11 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Improve text line merging algorithm.
+
+ * text/merging.hh: Change merge rules and improve integration with
+ Scribo line structures.
+
+ 2010-03-11 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add a reconstruction algorithm.
+
+ * primitive/internal/rd.hh: New.
+
+ 2010-03-11 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Small fixes.
+
+ * binarization/sauvola_ms.hh: Add a missing include.
+
+ * binarization/sauvola_threshold.hh: Remove debug and useless
+ comments.
+
+ * preprocessing/unskew.hh: Fix invalid guards.
+
+ * primitive/extract/components.hh: Fill image extension.
+
+ * primitive/extract/lines_pattern.hh: Adjust and fill image
+ extension.
+
+ * primitive/extract/lines_v_thick.hh: Fix traces.
+
+ 2010-03-11 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add new preprocessing routines.
+
+ * preprocessing/denoise.hh,
+ * preprocessing/denoise_bg.hh,
+ * preprocessing/denoise_fg.hh,
+ * preprocessing/homogeneous_contrast.hh,
+ * preprocessing/rotate_90.hh: New routines.
+
+ * fun/v2b/label_to_bool.hh: New function.
+
+ * tests/preprocessing/Makefile.am,
+ * tests/preprocessing/rotate_90.cc: New test.
+
+ 2010-03-11 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Update code according to last changes in Scribo core classes.
+
+ * draw/bounding_box_links.hh,
+ * primitive/internal/init_link_array.hh,
+ * primitive/internal/is_link_valid.hh,
+ * primitive/link/internal/link_single_dmax_base.hh,
+ * src/afp/link.hh: Update the use of object_link class.
+
+ * draw/bounding_boxes.hh,
+ * filter/objects_with_holes.hh,
+ * src/afp/regroup.hh: Update for_all macro.
+
+ * estim/object_groups_v_thickness.hh,
+ * filter/object_groups_small.hh,
+ * filter/object_groups_v_thickness.hh,
+ * text/recognition.hh: Update access to component_set.
+
+ * filter/object_links_bbox_h_ratio.hh,
+ * filter/object_links_bbox_overlap.hh,
+ * filter/object_links_bbox_ratio.hh,
+ * filter/object_links_bottom_aligned.hh,
+ * filter/object_links_non_aligned_simple.hh,
+ * filter/object_links_top_aligned.hh,
+ * primitive/group/apply.hh,
+ * primitive/group/from_single_link.hh,
+ * primitive/link/merge_double_link.hh,
+ * primitive/link/with_single_right_link_bottom.hh,
+ * primitive/link/with_single_right_link_dmax_ratio.hh,
+ * primitive/link/with_single_right_link_top.hh: Improve routine
+ prototypes.
+
+ * primitive/link/internal/link_functor_base.hh: Make use of
+ separators if exist.
+
+ 2010-03-11 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Improve debug routines in Scribo.
+
+ * debug/bboxes_enlarged_image.hh,
+ * debug/looks_like_a_text_line_image.hh,
+ * debug/mean_and_base_lines_image.hh: New routines.
+
+ * debug/alignment_decision_image.hh,
+ * debug/decision_image.hh,
+ * debug/save_bboxes_image.hh: Update code according to last
+ changes in core classes.
+
+ * debug/usage.hh: Make the description optional.
+
+ 2010-03-11 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Improve core classes in Scribo.
+
+ * core/component_info.hh,
+ * core/component_set.hh: Add new methods and an output operator.
+
+ * core/line_info.hh: Add new methods and improve stats computation.
+
+ * core/line_set.hh: Add new methods.
+
+ * core/macros.hh: Add more specific macros.
+
+ * core/tag/component.hh,
+ * core/tag/line.hh: Add output operators.
+
+ 2010-03-09 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Share internal data in groups and links structures.
+
+ * core/object_groups.hh,
+ * core/object_links.hh: Share internal data using a tracked
+ pointer.
+
+ 2010-03-02 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * text/merging.hh (scribo): Update code with lastest Theo's
+ changes.
+
+ 2010-02-19 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add a small tool to recognize text in a binary image.
+
+ * src/text/Makefile.am: New target.
+
+ * src/text/pbm_recognition.cc: New.
+
+ * text/recognition.hh: Add an overload taking an image as
+ argument.
+
+ 2010-02-19 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add a subsampling algorithm.
+
+ * subsampling/integral.hh: New. Compute a subsample image and an
+ integral image at the same time.
+
+ 2010-02-19 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add a first draft of a text line merging algorithm.
+
+ * text/merging.hh: New.
+
+ 2010-02-19 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add and update examples.
+
+ * src/Makefile.am,
+ * src/binarization/Makefile.am,
+ * src/preprocessing/Makefile.am: Add new targets.
+
+ * src/preprocessing/denoising.cc: New.
+
+ * src/preprocessing/split_bg_fg.cc: Fix usage.
+
+ * src/text_in_article.cc,
+ * src/text_in_photo_ppm_fast.cc: Update code according last
+ changes in core classes.
+
+ * src/text_in_photo_ppm_fast_2.cc: New example.
+
+ 2010-02-19 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Small fixes.
+
+ * binarization/sauvola_ms.hh: Remove a useless include.
+
+ * debug/usage.hh: Move description output.
+
+ * io/xml/save_text_lines.hh: Fix invalid xml output.
+
+ * primitive/link/internal/link_ms_dmax_ratio_base.hh,
+ * primitive/link/internal/link_single_dmax_ratio_base.hh: update
+ distance criterion.
+
+ * scribo.mk: Change compilation flags.
+
+ * src/afp/components.hh: Merge data in only one array.
+
+ * tests/filter/Makefile.am,
+ * tests/filter/objects_with_holes.cc: New test.
+
+ * text/clean.hh: use upsampling::hq4x instead of upsampling::hq2x.
+
+ 2010-02-19 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Keep updating code according to last changed in core classes.
+
+ * debug/decision_image.hh,
+ * debug/save_linked_bboxes_image.hh,
+ * draw/bounding_boxes.hh,
+ * estim/object_groups_v_thickness.hh,
+ * filter/common/objects_photo.hh,
+ * filter/internal/compute.hh,
+ * filter/object_groups_size_ratio.hh,
+ * filter/object_groups_small.hh,
+ * filter/object_groups_v_thickness.hh,
+ * filter/object_links_bbox_overlap.hh,
+ * filter/object_links_bottom_aligned.hh,
+ * filter/object_links_non_aligned_simple.hh,
+ * filter/objects_thick.hh,
+ * filter/objects_thin.hh,
+ * filter/objects_with_holes.hh,
+ * primitive/group/apply.hh,
+ * primitive/group/from_double_link.hh,
+ * primitive/group/from_single_link.hh,
+ * primitive/link/internal/link_single_dmax_base.hh,
+ * primitive/link/with_single_left_link.hh,
+ * primitive/link/with_single_right_link.hh,
+ * src/afp/link.hh,
+ * src/afp/regroup.hh,
+ * text/recognition.hh: Update the use of core classes. Replace the
+ use of object_image with component_set.
+
+ 2010-02-19 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Improve core classes.
+
+ * core/component_info.hh,
+ * core/component_set.hh,
+ * core/line_info.hh,
+ * core/line_set.hh,
+ * core/object_groups.hh: Add more methods and constructors.
+
+ * core/macros.hh: Add a new macro.
+
+ * core/tag/line.hh: Add more enums.
+
+ 2010-02-19 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * io/xml/save_text_lines.hh: New. Add partial support for
+ PageContent XML format.
+
+ 2010-03-11 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Introduce new Scribo core classes and start using them.
+
+ * core/component_info.hh,
+ * core/component_set.hh,
+ * core/line_info.hh,
+ * core/line_set.hh,
+ * core/macros.hh,
+ * core/object_groups.hh,
+ * core/object_links.hh,
+ * core/tag/anchor.hh,
+ * core/tag/component.hh,
+ * core/tag/line.hh: New core classes.
+
+ * core/object_image.hh: Remove.
+
+ * core/anchors.hh
+ * primitive/extract/objects.hh: Rename as...
+
+ * primitive/link/internal/compute_anchor.hh,
+ * primitive/extract/components.hh: ... this.
+
+ * draw/bounding_box_links.hh,
+ * filter/object_links_bbox_h_ratio.hh,
+ * filter/object_links_bbox_ratio.hh,
+ * filter/objects_small.hh,
+ * fun/v2b/objects_small_filter.hh,
+ * primitive/group/apply.hh,
+ * primitive/group/from_single_link.hh,
+ * primitive/internal/find_root.hh,
+ * primitive/internal/init_link_array.hh,
+ * primitive/link/compute.hh,
+ * primitive/link/internal/find_link.hh,
+ * primitive/link/internal/find_several_links.hh,
+ * primitive/link/internal/link_functor_base.hh,
+ * primitive/link/internal/link_several_dmax_base.hh,
+ * primitive/link/internal/link_single_dmax_base.hh,
+ * primitive/link/internal/link_single_dmax_ratio_base.hh,
+ * primitive/link/merge_double_link.hh,
+ * primitive/link/with_single_left_link_dmax_ratio.hh,
+ * primitive/link/with_single_right_link_bottom.hh,
+ * primitive/link/with_single_right_link_dmax_ratio.hh,
+ * primitive/link/with_single_right_link_top.hh: Make use of
+ the new core classes.
+
+ 2010-02-19 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add anchor support in debug routines.
+
+ * debug/alignment_decision_image.hh,
+ * debug/links_decision_image.hh,
+ * debug/save_linked_bboxes_image.hh,
+ * draw/bounding_box_links.hh: Make use of anchor points to
+ draw debug outputs.
+
+ 2010-02-19 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add new link filters.
+
+ * filter/object_links_non_aligned_simple.hh: Handle new
+ cases.
+
+ * filter/object_links_left_aligned.hh,
+ * filter/object_links_right_aligned.hh: New filters.
+
+ 2010-02-19 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Improve object linking backend.
+
+ * primitive/internal/find_left_link.hh,
+ * primitive/internal/find_right_link.hh,
+ * primitive/internal/is_invalid_link.hh: Remove.
+
+ * primitive/link/internal/compute_anchor.hh,
+ * primitive/link/internal/link_ms_dmax_base.hh,
+ * primitive/link/internal/link_ms_dmax_ratio_base.hh,
+ * primitive/link/internal/link_single_dmax_base.hh,
+ * primitive/link/internal/link_single_dmax_ratio_base.hh,
+ * primitive/link/with_single_down_link.hh,
+ * primitive/link/with_single_left_link.hh,
+ * primitive/link/with_single_left_link_dmax_ratio.hh,
+ * primitive/link/with_single_right_link.hh,
+ * primitive/link/with_single_right_link_dmax_ratio.hh,
+ * primitive/link/with_single_up_link.hh: Introduce the
+ anchor concept and make use of it.
+
+ 2010-02-19 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * filter/objects_with_holes.hh: New component filter.
+
+ 2010-02-19 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * draw/bounding_boxes.hh: Do not draw box centers anymore.
+
+ 2010-02-19 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add dedicated routines for AFP's use case.
+
+ * src/afp/components.hh,
+ * src/afp/link.hh,
+ * src/afp/regroup.hh: New.
+
+ 2010-02-19 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add new tools in Scribo.
+
+ * src/preprocessing/Makefile.am,
+ * src/filter/Makefile.am,
+ * src/debug/Makefile.am: Add new targets.
+
+ * src/debug/show_info_median_inter_characters.cc,
+ * src/debug/show_info_x_height.cc,
+ * src/debug/show_links_single_down.cc,
+ * src/debug/show_links_single_down_left_aligned.cc,
+ * src/debug/show_links_single_down_right_aligned.cc,
+ * src/debug/show_links_single_up.cc,
+ * src/debug/show_links_single_up_left_aligned.cc,
+ * src/debug/show_links_single_up_right_aligned.cc,
+ * src/filter/objects_with_holes.cc,
+ * src/filter/objects_with_holes_pgm.cc,
+ * src/pbm_lines_in_doc.cc,
+ * src/preprocessing/split_bg_fg_ms.cc,
+ * src/text_in_article.cc,
+ * src/text_in_photo_ppm_fast.cc: New tools.
+
+ * src/debug/show_left_right_links_validation.cc: Rename as...
+ * src/debug/show_links_left_right_links_validation.cc: ...this.
+
+ * src/debug/show_links_bbox_h_ratio.cc: Add a missing argument.
+
+ 2010-02-19 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * src/text_in_photo_ppm.cc: Improve output.
+
+ 2010-02-19 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Cleanup and avoid warnings in Sauvola related files.
+
+ * binarization/sauvola_ms.hh,
+ * binarization/sauvola_threshold.hh,
+ * canvas/integral_browsing.hh,
+ * src/binarization/sauvola_ms.cc,
+ * src/binarization/sauvola_pgm.cc,x
+ * subsampling/integral_single_image.hh: Cleanup and avoir
+ warnings.
+
+ 2009-12-15 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add a new test for object_image.
+
+ * tests/Makefile.am,
+ * tests/core/Makefile.am: Update build system.
+
+ * tests/core/object_image.cc: New test.
+
+ 2009-12-15 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * primitive/extract/objects.hh: Compute and store mass centers.
+
+ 2009-12-14 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Fix object links filters.
+
+ * filter/object_links_bottom_aligned.hh,
+ * filter/object_links_center_aligned.hh,
+ * filter/object_links_non_aligned_simple.hh,
+ * filter/object_links_top_aligned.hh: Pass the proper dimension as
+ routine argument.
+
+ 2009-12-14 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Cleanup Sauvola's binarization code.
+
+ * binarization/sauvola_threshold.hh,
+ * binarization/sauvola.hh: Use fun::v2v::rgb_to_int_u8.
+
+ * binarization/sauvola_ms.hh: New. Sauvola multi-scale routine.
+
+ * src/binarization/sauvola.cc: Make the window size a program
+ argument.
+
+ * src/binarization/sauvola_ms.cc: Use Sauvola multi-scale routine.
+
+ 2009-12-14 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * core/object_image.hh: Make use of mln::labeled_image_base.
+
+ 2009-12-14 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Improve linking routines.
+
+ * core/anchors.hh: New. Add anchor types.
+
+ * filter/objects_thin.hh: Use filter::internal::compute.
+
+ * primitive/link/internal/find_several_links.hh,
+ * primitive/link/internal/find_link.hh,
+ * primitive/link/compute.hh: Update functor interface in order to
+ specify anchors.
+
+ * primitive/link/compute_several.hh: Fix an invalid namespace.
+
+ * primitive/link/internal/anchors_3.hh: Move...
+
+ * primitive/link/internal/compute_anchor.hh: ... here.
+
+ * primitive/link/internal/link_functor_base.hh: Use anchor type.
+
+ * primitive/link/internal/link_several_dmax_base.hh: New.
+
+ * primitive/link/internal/link_center_dmax_base.hh,
+ * primitive/link/internal/link_center_dmax_ratio_base.hh: Removed.
+
+ * primitive/link/with_several_right_links_overlap.hh: Fix includes.
+
+ * primitive/link/with_single_right_link_bottom.hh,
+ * primitive/link/with_single_right_link_top.hh,
+ * primitive/link/with_single_left_link.hh,
+ * primitive/link/with_single_right_link.hh: Use
+ link_single_dmax_base functor.
+
+ * src/debug/show_links_several_right_overlap.cc,
+ * src/debug/show_links_single_left.cc,
+ * src/debug/show_links_single_left_dmax_ratio.cc,
+ * src/debug/show_links_single_right.cc,
+ * src/debug/show_links_single_right_dmax_ratio.cc: Update functor
+ interface.
+
+ 2009-12-11 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Improve Sauvola Multi-scale.
+
+ * binarization/internal/first_pass_functor.hh: Use
+ sauvola_threshold routine.
+
+ * binarization/sauvola_threshold.hh: Remove debug and fix invalid
+ read in integral image.
+
+ * canvas/integral_browsing.hh,
+ * subsampling/integral_single_image.hh: Fix stats computation.
+
+ * src/binarization/sauvola_ms.cc: Fix window parameter and make
+ debug output optional.
+
+ 2009-12-04 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Optimize Sauvola's multiscale binarization.
+
+ * core/init_integral_image.hh: New.
+
+ * src/binarization/sauvola_ms.cc: Optimize and make it more
+ robust.
+
+ * canvas/integral_browsing.hh: New canvas to browse and compute
+ data in an integral image.
+
+ * binarization/internal/first_pass_functor.hh: New functor to be
+ used in the integral browsing.
+
+ * binarization/sauvola_threshold.hh: Add new overloads.
+
+ * subsampling/integral_single_image.hh: Subsample an image and
+ compute integral images at the same time.
+
+2010-07-31 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Fix Scribo's dependencies w.r.t. libraries.
+
+ * src/Makefile.am (text_in_doc_LDFLAGS, text_in_doc_ppm_LDFLAGS):
+ Remove -lhpdf.
+
2010-04-23 Roland Levillain <roland(a)lrde.epita.fr>
Get C++ compiler flags for Scribo from configure.
diff --cc scribo/src/Makefile.am
index 818b005,b1a29e8..e7decc3
--- a/scribo/src/Makefile.am
+++ b/scribo/src/Makefile.am
@@@ -22,45 -24,68 +24,80 @@@ SUBDIRS =
primitive \
filter \
misc \
- multi_scale \
+ postprocessing \
preprocessing \
- table \
text
- bin_PROGRAMS = \
- text_in_photo \
- text_in_photo_ppm \
- text_in_photo_invert
+ # Disabled for the moment:
+ # table
- text_in_photo_SOURCES = text_in_photo.cc
- text_in_photo_ppm_SOURCES = text_in_photo_ppm.cc
- text_in_photo_invert_SOURCES = text_in_photo_invert.cc
+ bin_PROGRAMS =
+ if HAVE_TESSERACT
+
+ bin_PROGRAMS += pbm_text_in_doc
+ pbm_text_in_doc_CPPFLAGS = $(AM_CPPFLAGS) -g -ggdb \
+ $(TESSERACT_CPPFLAGS) \
+ $(TIFF_CPPFLAGS)
+ pbm_text_in_doc_LDFLAGS = $(AM_LDFLAGS) -g -ggdb\
+ $(TESSERACT_LDFLAGS) \
+ $(TIFF_LDFLAGS) \
+ -lpthread
+
+ pbm_text_in_doc_SOURCES = pbm_text_in_doc.cc
+
+ endif HAVE_TESSERACT
+
+
+ if HAVE_MAGICKXX
+
+ bin_PROGRAMS += text_in_doc_preprocess
+ text_in_doc_preprocess_CPPFLAGS = $(AM_CPPFLAGS) \
+ $(MAGICKXX_CPPFLAGS)
+ text_in_doc_preprocess_LDFLAGS = $(AM_LDFLAGS) \
+ -lpthread \
+ $(MAGICKXX_LDFLAGS)
+
+ text_in_doc_preprocess_SOURCES = text_in_doc_preprocess.cc
+
+
+
+ bin_PROGRAMS += text_in_picture
+ text_in_picture_SOURCES = text_in_picture.cc
+ text_in_picture_CPPFLAGS = $(AM_CPPFLAGS) \
+ $(MAGICKXX_CPPFLAGS)
+ text_in_picture_LDFLAGS = $(AM_LDFLAGS) \
+ -lpthread \
+ $(MAGICKXX_LDFLAGS)
if HAVE_TESSERACT
+
- bin_PROGRAMS += text_recognition_in_picture
- text_recognition_in_picture_SOURCES = text_recognition_in_picture.cc
- text_recognition_in_picture_CPPFLAGS = $(AM_CPPFLAGS) \
- $(TESSERACT_CPPFLAGS) \
- $(TIFF_CPPFLAGS) \
- $(MAGICKXX_CPPFLAGS)
- text_recognition_in_picture_LDFLAGS = $(AM_LDFLAGS) \
- -lpthread \
- $(TESSERACT_LDFLAGS) \
- $(TIFF_LDFLAGS) \
- $(MAGICKXX_LDFLAGS)
+if HAVE_TIFF
+
+ bin_PROGRAMS += text_in_doc
+ text_in_doc_SOURCES = text_in_doc.cc
+ text_in_doc_CPPFLAGS = $(AM_CPPFLAGS) \
+ $(TESSERACT_CPPFLAGS) \
+ $(TIFF_CPPFLAGS)
+ text_in_doc_LDFLAGS = $(AM_LDFLAGS) \
+ $(TESSERACT_LDFLAGS) \
+ $(TIFF_LDFLAGS) \
+ -lpthread
+
+ bin_PROGRAMS += text_in_doc_ppm
+ text_in_doc_ppm_SOURCES = text_in_doc_ppm.cc
+ text_in_doc_ppm_CPPFLAGS = $(AM_CPPFLAGS) \
+ $(TESSERACT_CPPFLAGS) \
+ $(TIFF_CPPFLAGS)
+ text_in_doc_ppm_LDFLAGS = $(AM_LDFLAGS) \
+ $(TESSERACT_LDFLAGS) \
+ $(TIFF_LDFLAGS) \
+ -lpthread
+
+endif HAVE_TIFF
+
endif HAVE_TESSERACT
+
+ endif HAVE_MAGICKXX
hooks/post-receive
--
Olena, a generic and efficient image processing platform
1
0
* configure.ac: Remove tags `<<lrde' and `dnl>>' around
Scribo-related bits.
* Makefile.am: Likewise.
(LRDE_NODIST_FILES): Remove $(distdir)/scribo.
---
ChangeLog | 9 +++++++++
Makefile.am | 7 ++-----
configure.ac | 4 ----
3 files changed, 11 insertions(+), 9 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 12bf80f..e5d4dac 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2010-05-11 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Distribute Scribo.
+
+ * configure.ac: Remove tags `<<lrde' and `dnl>>' around
+ Scribo-related bits.
+ * Makefile.am: Likewise.
+ (LRDE_NODIST_FILES): Remove $(distdir)/scribo.
+
2010-07-13 Roland Levillain <roland(a)lrde.epita.fr>
* AUTHORS: Update.
diff --git a/Makefile.am b/Makefile.am
index 347913f..a471451 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,4 +1,4 @@
-# Copyright (C) 2006, 2007, 2008, 2009 EPITA Research and Development
+# Copyright (C) 2006, 2007, 2008, 2009, 2010 EPITA Research and Development
# Laboratory (LRDE).
#
# This file is part of Olena.
@@ -23,11 +23,9 @@ if ENABLE_SWILENA
SUBDIRS += swilena
endif ENABLE_SWILENA
-#<<lrde
if ENABLE_SCRIBO
SUBDIRS += scribo
endif ENABLE_SCRIBO
-#>>
# Target shortcuts delegating the actual action to milena/Makefile.
LOCAL_RECURSIVE_TARGETS = pretty-check tests
@@ -87,8 +85,7 @@ LRDE_NODIST_FILES = \
$(distdir)/milena/tests/linear/gaussian.cc \
$(distdir)/milena/tests/linear/gaussian/filter.cc \
$(distdir)/milena/tests/registration/registration.cc \
- $(distdir)/milena/tests/value/stack.cc \
- $(distdir)/scribo
+ $(distdir)/milena/tests/value/stack.cc
## FIXME: Running `build-aux/build_unit_test.sh' just to update
## `milena/tests/unit_test/unit-tests.mk' is overkill:
diff --git a/configure.ac b/configure.ac
index 20efb20..a85edbe 100644
--- a/configure.ac
+++ b/configure.ac
@@ -166,9 +166,7 @@ AC_ARG_ENABLE([all],
[
enable_trimesh=yes
enable_swilena=yes
-dnl<<lrde
enable_scribo=yes
-dnl>>
enable_apps=yes
enable_tools=yes
])
@@ -271,7 +269,6 @@ AC_CONFIG_FILES(m4_do([swilena/python/sps-local],
[:swilena/python/sps-local.in]),
[chmod +x swilena/python/sps-local])
-dnl<<lrde
## -------- ##
## Scribo. ##
## -------- ##
@@ -318,7 +315,6 @@ if test "$GXX" = yes || test "$ICPC" = yes; then
# FIXME: We might want to use -ggdb when g++ is used.
test -z "$SCRIBO_TESTS_CXXFLAGS" && SCRIBO_TESTS_CXXFLAGS="-g -O0"
fi
-dnl>>
## --------------- ##
## Configuration. ##
--
1.5.6.5
1
0

20 Aug '10
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Olena, a generic and efficient image processing platform".
The branch distribute-scribo has been created
at 01410e4425360fbaf2651969c30f11fe51f8b3da (commit)
- Log -----------------------------------------------------------------
01410e4 Distribute Scribo.
-----------------------------------------------------------------------
hooks/post-receive
--
Olena, a generic and efficient image processing platform
1
0

last-svn-commit-199-gfe65e41 Start a VTK output for complex-based images.
by Roland Levillain 18 Aug '10
by Roland Levillain 18 Aug '10
18 Aug '10
* mln/io/vtk/save.hh: New.
---
milena/ChangeLog | 6 +
milena/mln/io/vtk/save.hh | 623 +++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 629 insertions(+), 0 deletions(-)
create mode 100644 milena/mln/io/vtk/save.hh
diff --git a/milena/ChangeLog b/milena/ChangeLog
index f83deda..6523940 100644
--- a/milena/ChangeLog
+++ b/milena/ChangeLog
@@ -1,3 +1,9 @@
+2010-06-24 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Start a VTK output for complex-based images.
+
+ * mln/io/vtk/save.hh: New.
+
2010-08-18 Roland Levillain <roland(a)lrde.epita.fr>
* mln/topo/skeleton/breadth_first_thinning.hh: Reindent.
diff --git a/milena/mln/io/vtk/save.hh b/milena/mln/io/vtk/save.hh
new file mode 100644
index 0000000..10c3f0b
--- /dev/null
+++ b/milena/mln/io/vtk/save.hh
@@ -0,0 +1,623 @@
+// Copyright (C) 2008, 2009, 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/>.
+//
+// As a special exception, you may use this file as part of a free
+// software project without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to produce
+// an executable, this file does not by itself cause the resulting
+// executable to be covered by the GNU General Public License. This
+// exception does not however invalidate any other reasons why the
+// executable file might be covered by the GNU General Public License.
+
+#ifndef MLN_IO_VTK_SAVE_HH
+# define MLN_IO_VTK_SAVE_HH
+
+/// \file
+/// Input saving function for VTK files.
+///
+/// \see http://www.vtk.org/VTK/img/file-formats.pdf
+/// \see http://dunne.uni-hd.de/VisuSimple/documents/vtkfileformat.html
+
+# include <cstdlib>
+
+# include <iostream>
+# include <fstream>
+# include <sstream>
+
+# include <string>
+
+# include <mln/core/alias/complex_image.hh>
+# include <mln/core/image/complex_neighborhoods.hh>
+# include <mln/core/image/complex_neighborhood_piter.hh>
+
+
+namespace mln
+{
+
+ namespace io
+ {
+
+ namespace vtk
+ {
+
+ /** \brief Save a (binary) VTK image into a complex image.
+
+ \param[in] ima The image to save.
+ \param[in] filename The name of the file where to save the image.
+
+ The image is said binary since data represent only the
+ existence of faces. */
+ void save(const bin_2complex_image3df& ima,
+ const std::string& filename);
+
+ /** \brief Save an 8-bit grey-level VTK image into a complex image.
+
+ \param[in] ima The image to save.
+ \param[in] filename The name of the file where to save the image.
+
+ Only data is attached to 2-faces is saved; the VTK file
+ cannot store data attached to faces of other dimensions. */
+ void save(const int_u8_2complex_image3df& ima,
+ const std::string& filename);
+
+ /** \brief Save a floating-point value grey-level VTK image into
+ a complex image.
+
+ \param[in] ima The image to save.
+ \param[in] filename The name of the file where to save the image.
+
+ Only data is attached to 2-faces is saved; the VTK file
+ cannot store data attached to faces of other dimensions. */
+ void save(const float_2complex_image3df& ima,
+ const std::string& filename);
+
+ /** \brief Save a 3x8-bit RGB (color) VTK image into a complex image.
+
+ \param[in] ima The image to save.
+ \param[in] filename The name of the file where to save the image.
+
+ Only data is attached to 2-faces is saved; the VTK file
+ cannot store data attached to faces of other dimensions. */
+ void save(const rgb8_2complex_image3df& ima,
+ const std::string& filename);
+
+
+ namespace internal
+ {
+
+ template <typename I, typename E>
+ struct vtk_saver : public Object<E>
+ {
+ /// Type of the image.
+ typedef I image;
+
+ /// Type of the values.
+ typedef mln_value(I) value;
+
+ /// Dimension of the built complex.
+ static const unsigned D = 2;
+
+ /// \brief Constructor, with static checks.
+ vtk_saver();
+
+ /// Save an image \a ima into \a filename.
+ void operator()(const I& ima, const std::string& filename) const;
+
+ protected:
+ /// Helper factoring the task of writing scalar data
+ /// associated to faces.
+ void write_scalar_data(std::ostream& ostr, const image& ima,
+ const std::string& data_type) const;
+ };
+
+
+ struct bin_vtk_saver
+ : public vtk_saver< bin_2complex_image3df, bin_vtk_saver >
+ {
+ /// \brief Save face data.
+ void write_face_data(std::ostream& ostr, const image& ima) const;
+ };
+
+ struct int_u8_vtk_saver
+ : public vtk_saver< int_u8_2complex_image3df, int_u8_vtk_saver >
+ {
+ /// \brief Save face data.
+ void write_face_data(std::ostream& ostr, const image& ima) const;
+ };
+
+
+ struct float_vtk_saver
+ : public vtk_saver< float_2complex_image3df, float_vtk_saver >
+ {
+ /// \brief Save face data.
+ void write_face_data(std::ostream& ostr, const image& ima) const;
+ };
+
+
+ struct rgb8_vtk_saver
+ : public vtk_saver< rgb8_2complex_image3df, rgb8_vtk_saver >
+ {
+ /// \brief Save face data.
+ void write_face_data(std::ostream& ostr, const image& ima) const;
+ };
+
+ } // end of namespace mln::io::vtk::internal
+
+
+
+# ifndef MLN_INCLUDE_ONLY
+
+ /*----------.
+ | Facades. |
+ `----------*/
+
+ void
+ save(const bin_2complex_image3df& ima, const std::string& filename)
+ {
+ trace::entering("mln::io::vtk::save");
+ internal::bin_vtk_saver()(ima, filename);
+ trace::exiting("mln::io::vtk::save");
+ }
+
+ void
+ save(const int_u8_2complex_image3df& ima, const std::string& filename)
+ {
+ trace::entering("mln::io::vtk::save");
+ internal::int_u8_vtk_saver()(ima, filename);
+ trace::exiting("mln::io::vtk::save");
+ }
+
+ void
+ save(const float_2complex_image3df& ima, const std::string& filename)
+ {
+ trace::entering("mln::io::vtk::save");
+ internal::float_vtk_saver()(ima, filename);
+ trace::exiting("mln::io::vtk::save");
+ }
+
+ void
+ save(const rgb8_2complex_image3df& ima, const std::string& filename)
+ {
+ trace::entering("mln::io::vtk::save");
+ internal::rgb8_vtk_saver()(ima, filename);
+ trace::exiting("mln::io::vtk::save");
+ }
+
+
+ /*-------------------------.
+ | Actual implementations. |
+ `-------------------------*/
+
+ // -------- //
+ // Canvas. //
+ // -------- //
+
+ namespace internal
+ {
+
+ template <typename I, typename E>
+ vtk_saver<I, E>::vtk_saver()
+ {
+ // Concept checking.
+ void (E::*m1)(std::ostream&, const I&) const =
+ &E::write_face_data;
+ m1 = 0;
+ }
+
+
+ template <typename I, typename E>
+ void
+ vtk_saver<I, E>::operator()(const I& ima,
+ const std::string& filename) const
+ {
+ const std::string me = "mln::io::vtk::save";
+
+ std::ofstream ostr(filename.c_str());
+ if (!ostr)
+ {
+ std::cerr << me << ": `" << filename << "' invalid file."
+ << std::endl;
+ /* FIXME: Too violent. We should allow the use of
+ exceptions, at least to have Milena's code behave
+ correctly in interpreted environments (std::exit() or
+ std::abort() causes the termination of a Python
+ interpreter, for instance!). */
+ std::exit(1);
+ }
+
+ /*---------.
+ | Header. |
+ `---------*/
+
+ /* ``The legacy VTK file formats consist of five basic
+ parts.'' */
+
+ /* ``1. The first part is the file version and
+ identifier. This part contains the single line:
+
+ # vtk DataFile Version x.x.
+
+ This line must be exactly as shown with the
+ exception of the version number x.x, which will vary
+ with different releases of VTK. (Note: the current
+ version number is 3.0. Version 1.0 and 2.0 files are
+ compatible with version 3.0 files.)'' */
+ ostr << "# vtk DataFile Version 2.0" << std::endl;
+
+ /* ``2. The second part is the header. The header consists
+ of a character string terminated by end-of-line
+ character `\n'. The header is 256 characters
+ maximum. The header can be used to describe the data
+ and include any other pertinent information.'' */
+ ostr << "Generated by Milena 1.0 http://olena.lrde.epita.fr"
+ << std::endl;
+
+ /* ``3. The next part is the file format. The file format
+ describes the type of file, either ASCII or
+ binary. On this line the single word ASCII or BINARY
+ must appear.'' */
+ ostr << "ASCII" << std::endl;
+
+ /*-------.
+ | Data. |
+ `-------*/
+
+ /* ``4. The fourth part is the dataset structure. The
+ geometry part describes the geometry and topology of
+ the dataset. This part begins with a line containing
+ the keyword DATASET followed by a keyword describing
+ the type of dataset. Then, depending upon the type
+ of dataset, other keyword/data combinations define
+ the actual data.''
+
+ [...]
+
+ Dataset Format. The Visualization Toolkit supports
+ five different dataset formats: structured points,
+ structured grid, rectilinear grid, unstructured
+ grid, and polygonal data.'' */
+
+ ostr << "DATASET POLYDATA" << std::endl << std::endl;
+
+ // --------- //
+ // Complex. //
+ // --------- //
+
+ typedef mln_geom(I) G;
+
+ /* ``* Polygonal Data
+ The polygonal dataset consists of arbitrary
+ combinations of surface graphics primitives
+ vertices (and polyvertices), lines (and
+ polylines), polygons (of various types), and
+ triangle strips. Polygonal data is defined by
+ the POINTS, VERTICES, LINES, POLYGONS, or
+ TRIANGLE_STRIPS sections. The POINTS definition
+ is the same as we saw for structured grid
+ datasets.'' */
+
+ // ---------------------------- //
+ // Geometry (point locations). //
+ // ---------------------------- //
+
+ ostr << "POINTS "
+ << ima.domain().cplx().template nfaces_of_static_dim<0>()
+ << " float" << std::endl;
+ // Iterate on 0-faces (vertices).
+ p_n_faces_fwd_piter<D, G> v(ima.domain(), 0);
+ for_all(v)
+ {
+ mln_invariant(v.to_site().size() == 1);
+ ostr << v.to_site().front()[0] << ' '
+ << v.to_site().front()[1] << ' '
+ << v.to_site().front()[2] << std::endl;
+ }
+ ostr << std::endl;
+
+ /* ``The VERTICES, LINES, POLYGONS, or
+ TRIANGLE_STRIPS keywords define the polygonal
+ dataset topology. Each of these keywords
+ requires two parameters: the number of cells `n'
+ and the size of the cell list `size'. The cell
+ list size is the total number of integer values
+ required to represent the list (i.e., sum of
+ `numPoints' and connectivity indices over each
+ cell). None of the keywords VERTICES, LINES,
+ POLYGONS, or TRIANGLE_STRIPS is required.'' */
+
+ // ---------- //
+ // Vertices. //
+ // ---------- //
+
+ /* We do not use
+
+ ima.domain().cplx().template nfaces_of_static_dim<N>()
+
+ to get the number of N-faces, since the image may be
+ masked, and exhibit less N-faces than its underlying
+ complex. Iterating on the N-faces is safer. */
+ /* FIXME: Is there anything faster? See what the interface
+ of the (morphed) image can provide. */
+ unsigned nvertices = 0;
+ for_all(v)
+ ++nvertices;
+
+ if (nvertices > 0)
+ {
+ ostr << "VERTICES " << nvertices << ' '
+ /* Each vertex requires two numbers: the cardinal of
+ its ends (which is always 1) and the indices of the
+ point among the POINTS section. Hence the total
+ number of values in the VERTEX section is
+ nvertices * 2. */
+ << nvertices * 2 << std::endl;
+
+ for_all(v)
+ ostr << "1 " << v.unproxy_().face().face_id() << std::endl;
+ ostr << std::endl;
+ }
+
+ // ------- //
+ // Edges. //
+ // ------- //
+
+ // Same comment as above about the count of N-faces.
+ unsigned nedges = 0;
+ p_n_faces_fwd_piter<D, G> e(ima.domain(), 1);
+ for_all (e)
+ ++nedges;
+
+ if (nedges > 0)
+ {
+ ostr << "LINES " << nedges << ' '
+ /* Each edge requires three numbers: the cardinal of
+ its ends (which is always 2) and the indices of
+ these ends among the POINTS section. Hence the
+ total number of values in the LINES section is
+ nedges * 3. */
+ << nedges * 3 << std::endl;
+
+ // Vertices adjacent to edges.
+ typedef complex_lower_neighborhood<D, G> adj_vertices_nbh_t;
+ adj_vertices_nbh_t adj_vertices_nbh;
+ mln_niter(adj_vertices_nbh_t) adj_v(adj_vertices_nbh, e);
+ // Iterate on 1-faces (edges).
+ for_all (e)
+ {
+ ostr << "2";
+ // Iterate on vertices (0-faces).
+ for_all (adj_v)
+ {
+ // FIXME: Accessing the face id is too complicated.
+ ostr << " " << adj_v.unproxy_().face().face_id();
+ }
+ ostr << std::endl;
+ }
+ ostr << std::endl;
+ }
+
+ // ---------- //
+ // Polygons. //
+ // ---------- //
+
+ // Same comment as above about the count of N-faces.
+ unsigned npolygons = 0;
+ p_n_faces_fwd_piter<D, G> p(ima.domain(), 2);
+ for_all (p)
+ ++npolygons;
+
+ if (npolygons > 0)
+ {
+ // A neighborhood where neighbors are the set of 0-faces
+ // transitively adjacent to the reference point.
+ typedef complex_m_face_neighborhood<D, G> nbh_t;
+ nbh_t nbh;
+ mln_fwd_niter(nbh_t) u(nbh, p);
+ /* FIXME: We should be able to pass this value (m)
+ either at the construction of the neighborhood or at
+ the construction of the iterator. */
+ u.iter().set_m(0);
+
+ /* Compute the number of values (`size') to be passed as
+ second parameter of the POLYGONS keyword. */
+ unsigned polygons_size = 0;
+ // Iterate on polygons (2-face).
+ for_all(p)
+ {
+ unsigned nvertices = 0;
+ /* FIXME: There may be a faster way to do this (e.g.,
+ the neighbordhood may provide a method returning
+ the number of P's neighbors. */
+ // Iterate on transitively adjacent vertices (0-face).
+ for_all(u)
+ ++nvertices;
+ // The number of values describing this polygon P is
+ // the cardinal of its set of vertices (1 value) plus
+ // the NVERTICES indices of these vertices.
+ polygons_size += 1 + nvertices;
+ }
+ ostr << "POLYGONS " << npolygons << ' ' << polygons_size
+ << std::endl;
+
+ /* Output polygons (one per line), with their number of
+ vertices and the indices of these vertices. */
+ // Iterate on polygons (2-face).
+ for_all(p)
+ {
+ unsigned nvertices = 0;
+ std::ostringstream vertices;
+ // Iterate on transitively adjacent vertices (0-face).
+ for_all(u)
+ {
+ // FIXME: Likewise, this is a bit too long.
+ vertices << ' ' << u.unproxy_().face().face_id();
+ ++nvertices;
+ }
+ ostr << nvertices << vertices.str() << std::endl;
+ }
+ ostr << std::endl;
+ }
+
+ /* ``5. The final part describes the dataset attributes.
+ This part begins with the keywords POINT_DATA or
+ CELL_DATA,followed by an integer number specifying
+ the number of points or cells, respectively. (It
+ doesn't matter whether POINT_DATA or CELL_DATA comes
+ first.) Other keyword/data combinations then define
+ the actual dataset attribute values (i.e., scalars,
+ vectors, tensors, normals, texture coordinates, or
+ field data).'' */
+
+ unsigned nfaces = nvertices + nedges + npolygons;
+ if (nfaces > 0)
+ {
+ // We don't use POINT_DATA (to associate values to
+ // POINTs), since CELL_DATA is used to associate values
+ // to VERTICES, EDGES and POLYGONS.
+ ostr << "CELL_DATA " << nfaces << std::endl;
+ exact(this)->write_face_data(ostr, ima);
+ }
+
+ ostr.close();
+ }
+
+ // ---------------- //
+ // Specific parts. //
+ // ---------------- //
+
+ /* ``Dataset Attribute Format. The Visualization Toolkit
+ supports the following dataset attributes: scalars
+ (one to four components), vectors, normals,
+ texture coordinates (1D, 2D, and 3D), 3 x 3
+ tensors, and field data. In addition, a lookup
+ table using the RGBA color specification,
+ associated with the scalar data, can be defined as
+ well. Dataset attributes are supported for both
+ points and cells.
+ Each type of attribute data has a `dataName'
+ associated with it. This is a character string
+ (without embedded whitespace) used to identify a
+ particular data. The `dataName' is used by the VTK
+ readers to extract data. As a result, more than
+ one attribute data of the same type can be
+ included in a file. For example, two different
+ scalar fields defined on the dataset points,
+ pressure and temperature, can be contained in the
+ same file. (If the appropriate dataName is not
+ specified in the VTK reader, then the first data
+ of that type is extracted from the file.)
+
+ * Scalars
+ Scalar definition includes specification of a
+ lookup table. The definition of a lookup table
+ is optional.
+
+ [...]
+
+ SCALARS dataName dataType numComp
+ LOOKUP_TABLE tableName
+ s0
+ s1
+ ...
+ sn-1''
+
+ Note: values accepted by Paraview 3.8 for `dataType' are:
+ "bit", "char", "unsigned_char", "short", "unsigned_short",
+ "vtkidtype", "int", "unsigned_int", "long",
+ "unsigned_long", "vtktypeint64", "vtktypeuint64", "float",
+ "double", "string", "utf8_string" and "variant". */
+
+ /** \{ */
+ template <typename I, typename E>
+ void
+ vtk_saver<I, E>::write_scalar_data(std::ostream& ostr,
+ const image& ima,
+ const std::string& data_type) const
+ {
+ ostr << "SCALARS values " << data_type << std::endl
+ << "LOOKUP_TABLE default" << std::endl;
+ // Iterate on all faces, dimension increasing.
+ mln_fwd_piter(image) p(ima.domain());
+ for_all(p)
+ ostr << ima(p) << std::endl;
+ }
+
+
+ void
+ bin_vtk_saver::write_face_data(std::ostream& ostr,
+ const image& ima) const
+ {
+ write_scalar_data(ostr, ima, "bit");
+ }
+
+ void
+ int_u8_vtk_saver::write_face_data(std::ostream& ostr,
+ const image& ima) const
+ {
+ write_scalar_data(ostr, ima, "unsigned_char");
+ }
+
+ void
+ float_vtk_saver::write_face_data(std::ostream& ostr,
+ const image& ima) const
+ {
+ write_scalar_data(ostr, ima, "float");
+ }
+
+ /* ``The definition of color scalars (i.e., unsigned
+ char values directly mapped to color) varies
+ depending upon the number of values (`nValues')
+ per scalar. If the file format is ASCII, the
+ color scalars are defined using nValues float
+ values between (0,1).
+
+ COLOR_SCALARS dataName nValues
+ c00 c01 ... c0(nValues-1)
+ c10 c11 ... c1(nValues-1)
+ ...
+ c(n-1)0 c(n-1)1 ... c(n-1)(nValues-1)'' */
+
+ void
+ rgb8_vtk_saver::write_face_data(std::ostream& ostr,
+ const image& ima) const
+ {
+ ostr << "COLOR_SCALARS values 4" << std::endl;
+ // Iterate on all faces, dimension increasing.
+ mln_fwd_piter_(image) p(ima.domain());
+ for_all(p)
+ // RGBA values (with alpha channel always set to 1.0).
+ ostr << float(ima(p).red()) / mln_max(value::red_t) << ' '
+ << float(ima(p).green()) / mln_max(value::green_t) << ' '
+ << float(ima(p).blue()) / mln_max(value::blue_t) << ' '
+ << 1.f
+ << std::endl;
+ }
+ /** \} */
+
+ } // end of namespace mln::io::vtk::internal
+
+# endif // ! MLN_INCLUDE_ONLY
+
+ } // end of namespace mln::io::vtk
+
+ } // end of namespace mln::io
+
+} // end of namespace mln
+
+
+#endif // ! MLN_IO_VTK_SAVE_HH
--
1.5.6.5
1
0
* tests/io/vtk/save.cc: New.
* tests/io/vtk/Makefile.am: New.
* tests/io/Makefile.am (SUBDIRS): Add vtk.
---
milena/ChangeLog | 8 +++
milena/tests/io/Makefile.am | 3 +-
milena/tests/io/{pbm => vtk}/Makefile.am | 16 ++---
milena/tests/io/vtk/save.cc | 97 ++++++++++++++++++++++++++++++
4 files changed, 114 insertions(+), 10 deletions(-)
copy milena/tests/io/{pbm => vtk}/Makefile.am (74%)
create mode 100644 milena/tests/io/vtk/save.cc
diff --git a/milena/ChangeLog b/milena/ChangeLog
index 6523940..c8219e9 100644
--- a/milena/ChangeLog
+++ b/milena/ChangeLog
@@ -1,5 +1,13 @@
2010-06-24 Roland Levillain <roland(a)lrde.epita.fr>
+ Exercise mln::io::vtk::save.
+
+ * tests/io/vtk/save.cc: New.
+ * tests/io/vtk/Makefile.am: New.
+ * tests/io/Makefile.am (SUBDIRS): Add vtk.
+
+2010-06-24 Roland Levillain <roland(a)lrde.epita.fr>
+
Start a VTK output for complex-based images.
* mln/io/vtk/save.hh: New.
diff --git a/milena/tests/io/Makefile.am b/milena/tests/io/Makefile.am
index bd6c0a4..41dce69 100644
--- a/milena/tests/io/Makefile.am
+++ b/milena/tests/io/Makefile.am
@@ -1,4 +1,4 @@
-# Copyright (C) 2007, 2008, 2009 EPITA Research and Development
+# Copyright (C) 2007, 2008, 2009, 2010 EPITA Research and Development
# Laboratory (LRDE).
#
# This file is part of Olena.
@@ -32,6 +32,7 @@ SUBDIRS = \
pnm \
ppm \
ppms \
+ vtk \
fld
## ------------------------------------------------- ##
diff --git a/milena/tests/io/pbm/Makefile.am b/milena/tests/io/vtk/Makefile.am
similarity index 74%
copy from milena/tests/io/pbm/Makefile.am
copy to milena/tests/io/vtk/Makefile.am
index 690c895..3467f78 100644
--- a/milena/tests/io/pbm/Makefile.am
+++ b/milena/tests/io/vtk/Makefile.am
@@ -1,5 +1,4 @@
-# Copyright (C) 2007, 2009, 2010 EPITA Research and Development
-# Laboratory (LRDE).
+# Copyright (C) 2010 EPITA Research and Development Laboratory (LRDE).
#
# This file is part of Olena.
#
@@ -17,15 +16,14 @@
include $(top_srcdir)/milena/tests/tests.mk
-check_PROGRAMS = \
- pbm \
- pbm_ascii
+check_PROGRAMS = save
-pbm_SOURCES = pbm.cc
-pbm_ascii_SOURCES = pbm_ascii.cc
+save_SOURCES = save.cc
TESTS = $(check_PROGRAMS)
MOSTLYCLEANFILES = \
- pbm-out.pbm \
- pbm_ascii-out.pbm
+ save-tetrahedron-bool.vtk \
+ save-tetrahedron-int_u8.vtk \
+ save-tetrahedron-float.vtk \
+ save-tetrahedron-rgb8.vtk
diff --git a/milena/tests/io/vtk/save.cc b/milena/tests/io/vtk/save.cc
new file mode 100644
index 0000000..908636b
--- /dev/null
+++ b/milena/tests/io/vtk/save.cc
@@ -0,0 +1,97 @@
+// 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/>.
+//
+// As a special exception, you may use this file as part of a free
+// software project without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to produce
+// an executable, this file does not by itself cause the resulting
+// executable to be covered by the GNU General Public License. This
+// exception does not however invalidate any other reasons why the
+// executable file might be covered by the GNU General Public License.
+
+#include <mln/io/off/load.hh>
+#include <mln/io/vtk/save.hh>
+
+#include <mln/literal/colors.hh>
+
+#include "tests/data.hh"
+
+
+template <typename I>
+inline
+I
+make_image(const mln::bin_2complex_image3df& bin_ima,
+ const std::vector<mln_value(I)>& values)
+{
+ I ima;
+ mln::initialize(ima, bin_ima);
+ mln_piter(I) p(ima.domain());
+ unsigned i = 0;
+ for_all(p)
+ ima(p) = values[i++ % values.size()];
+ return ima;
+}
+
+
+int
+main()
+{
+ using namespace mln;
+
+ // Boolean values.
+ typedef bin_2complex_image3df bin_ima_t;
+ bin_ima_t bin_ima;
+ /* FIXME: It would be better not to depend on the OFF file loader to
+ create the complex-based image, to be saved as a VTK file; build
+ this image by hand instead? */
+ io::off::load(bin_ima, MLN_MESH_DIR "/tetrahedron.off");
+
+ io::vtk::save(bin_ima, "save-tetrahedron-bool.vtk");
+
+ unsigned nfaces = bin_ima.domain().cplx().nfaces();
+
+ // `int_u8' values.
+ {
+ std::vector<value::int_u8> values(nfaces);
+ for (unsigned i = 0; i < nfaces; ++i)
+ values[i] = mln_max(value::int_u8) * i / nfaces;
+ io::vtk::save(make_image<int_u8_2complex_image3df>(bin_ima, values),
+ "save-tetrahedron-int_u8.vtk");
+ }
+
+ // Floating-point values.
+ {
+ std::vector<float> values(nfaces);
+ for (unsigned i = 0; i < nfaces; ++i)
+ values[i] = mln_max(float) / nfaces * i;
+ io::vtk::save(make_image<float_2complex_image3df>(bin_ima, values),
+ "save-tetrahedron-float.vtk");
+ }
+
+ // `rgb8' values.
+ {
+ value::rgb8 colors_array[] =
+ { literal::red, literal::green, literal::blue, literal::brown,
+ literal::lime, literal::orange, literal::pink, literal::purple,
+ literal::teal, literal::violet, literal::cyan, literal::magenta,
+ literal::yellow, literal::olive };
+ const unsigned colors_size = sizeof(colors_array) / sizeof(value::rgb8);
+ std::vector<value::rgb8> colors (colors_array, colors_array + colors_size);
+ io::vtk::save(make_image<rgb8_2complex_image3df>(bin_ima, colors),
+ "save-tetrahedron-rgb8.vtk");
+ }
+}
--
1.5.6.5
1
0

last-svn-commit-201-g66c20dd configure.ac: Configure milena/tests/io/vtk/Makefile.
by Roland Levillain 18 Aug '10
by Roland Levillain 18 Aug '10
18 Aug '10
---
ChangeLog | 4 ++++
configure.ac | 1 +
2 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 4468fea..f3ef8a4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2010-06-24 Roland Levillain <roland(a)lrde.epita.fr>
+
+ * configure.ac: Configure milena/tests/io/vtk/Makefile.
+
2010-07-15 Roland Levillain <roland(a)lrde.epita.fr>
Configure tests in mesh-segm-skel apps.
diff --git a/configure.ac b/configure.ac
index 62a95a0..6fc5465 100644
--- a/configure.ac
+++ b/configure.ac
@@ -413,6 +413,7 @@ AC_CONFIG_FILES([
milena/tests/io/ppm/Makefile
milena/tests/io/ppms/Makefile
milena/tests/io/tiff/Makefile
+ milena/tests/io/vtk/Makefile
milena/tests/labeling/Makefile
milena/tests/linear/Makefile
milena/tests/linear/local/Makefile
--
1.5.6.5
1
0