Olena-patches
Threads by month
- ----- 2025 -----
- 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
August 2010
- 6 participants
- 204 discussions

last-svn-commit-480-g7aad3ee src/Makefile.am: Remove useless flags. Aesthetic changes.
by Guillaume Lazzara 13 Aug '10
by Guillaume Lazzara 13 Aug '10
13 Aug '10
---
scribo/ChangeLog | 4 ++++
scribo/src/Makefile.am | 21 +++++++++------------
2 files changed, 13 insertions(+), 12 deletions(-)
diff --git a/scribo/ChangeLog b/scribo/ChangeLog
index 2dd5cb4..ebaa322 100644
--- a/scribo/ChangeLog
+++ b/scribo/ChangeLog
@@ -1,5 +1,9 @@
2010-08-13 Guillaume Lazzara <z(a)lrde.epita.fr>
+ * src/Makefile.am: Remove useless flags. Aesthetic changes.
+
+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>
diff --git a/scribo/src/Makefile.am b/scribo/src/Makefile.am
index b1a29e8..52df66d 100644
--- a/scribo/src/Makefile.am
+++ b/scribo/src/Makefile.am
@@ -37,35 +37,32 @@ bin_PROGRAMS =
if HAVE_TESSERACT
- bin_PROGRAMS += pbm_text_in_doc
- pbm_text_in_doc_CPPFLAGS = $(AM_CPPFLAGS) -g -ggdb \
+ bin_PROGRAMS += pbm_text_in_doc
+ pbm_text_in_doc_SOURCES = pbm_text_in_doc.cc
+ pbm_text_in_doc_CPPFLAGS = $(AM_CPPFLAGS) \
$(TESSERACT_CPPFLAGS) \
$(TIFF_CPPFLAGS)
- pbm_text_in_doc_LDFLAGS = $(AM_LDFLAGS) -g -ggdb\
+ pbm_text_in_doc_LDFLAGS = $(AM_LDFLAGS) \
$(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
+ bin_PROGRAMS += text_in_doc_preprocess
+ text_in_doc_preprocess_SOURCES = text_in_doc_preprocess.cc
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
+ 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) \
@@ -74,7 +71,7 @@ if HAVE_MAGICKXX
if HAVE_TESSERACT
- bin_PROGRAMS += text_recognition_in_picture
+ 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) \
--
1.5.6.5
1
0

last-svn-commit-479-g38c9468 configure.ac: Handle ImageMagick++ dependency with both dpk-config and OLN_WITH_LIB.
by Guillaume Lazzara 13 Aug '10
by Guillaume Lazzara 13 Aug '10
13 Aug '10
---
ChangeLog | 5 +++++
configure.ac | 47 ++++++++++++++++++++++++++++++-----------------
2 files changed, 35 insertions(+), 17 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 00d8c12..10249a6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
2010-08-13 Guillaume Lazzara <z(a)lrde.epita.fr>
+ * configure.ac: Handle ImageMagick++ dependency with both
+ dpk-config and OLN_WITH_LIB.
+
+2010-08-13 Guillaume Lazzara <z(a)lrde.epita.fr>
+
* configure.ac: Make Boost dependency optional.
2010-08-12 Guillaume Lazzara <z(a)lrde.epita.fr>
diff --git a/configure.ac b/configure.ac
index ce1a5a2..5ea0ac8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -267,7 +267,7 @@ OLN_WITH_LIB([CFITSIO], [fitsio.h], [cfitsio])
# FIXME: We should handle Magick++ both with Magick++-config and
# pkg-config? instead of OLN_WITH_LIB. See how other projects handle
# this.
-#OLN_WITH_LIB([Magick++], [Magick++.h], [Magick++], [magickxx], [MAGICKXX])
+
AC_ARG_WITH([magickxx],
[AC_HELP_STRING([--with-magickxx],
@@ -276,26 +276,39 @@ AC_ARG_WITH([magickxx],
[with_magickxx='yes'])
oln_have_magickxx=no
-MAGICKXX_CFLAGS=""
-MAGICKXX_LIBS=""
-MAGICKXX_PKG=""
if test "x$with_magickxx" != xno; then
AC_MSG_RESULT([])
AC_MSG_RESULT([* libMagick++])
AC_MSG_RESULT([---------------])
- PKG_CHECK_MODULES(MAGICKXX,[ImageMagick++], oln_have_magickxx=yes, oln_have_magickxx=no)
- AC_MSG_RESULT([])
-
- if test "$oln_have_magickxx" = yes; then
- AC_DEFINE([HAVE_MAGICKXX], 1, [Define to 1 if we can use libMagick++])
- # Use standard variable names.
- MAGICKXX_CPPFLAGS="$MAGICKXX_CFLAGS"
- MAGICKXX_LDFLAGS="$MAGICKXX_LIBS"
- AC_SUBST(MAGICKXX_CPPFLAGS)
- AC_SUBST(MAGICKXX_LDFLAGS)
- fi
+ # Try to use ImageMagick from a specified path.
+ if test "x$with_magickxx" != xyes; then
+ AC_MSG_CHECKING([with given path $with_magickxx])
+ AC_MSG_RESULT([])
+ OLN_WITH_LIB([Magick++], [Magick++.h], [Magick++], [magickxx],
+ [MAGICKXX])
+ fi
+
+ # Check with pkg-config if previous test failed or if no path have
+ # been passed through --with-magickxx argument.
+ if test "x$oln_have_magickxx" = xno; then
+ AC_MSG_CHECKING([with pkg-config])
+ AC_MSG_RESULT([])
+ PKG_CHECK_MODULES(MAGICKXX,[ImageMagick++], oln_have_magickxx=yes,
+ oln_have_magickxx=no)
+ AC_MSG_RESULT([])
+
+ if test "x$oln_have_magickxx" = xyes; then
+ AC_DEFINE([HAVE_MAGICKXX], 1,
+ [Define to 1 if we can use libMagick++])
+ # Use standard variable names.
+ MAGICKXX_CPPFLAGS="$MAGICKXX_CFLAGS"
+ MAGICKXX_LDFLAGS="$MAGICKXX_LIBS"
+ AC_SUBST(MAGICKXX_CPPFLAGS)
+ AC_SUBST(MAGICKXX_LDFLAGS)
+ fi
+ fi
fi
AM_CONDITIONAL(HAVE_MAGICKXX, test "x$oln_have_magickxx" = xyes)
@@ -802,8 +815,8 @@ Options used to compile and link:
UIC = $UIC
RCC = $RCC
BOOST_ROOT = $BOOST_ROOT
- MAGICKXX_CFLAGS = $MAGICKXX_CFLAGS
- MAGICKXX_LIBS = $MAGICKXX_LIBS
+ MAGICKXX_CFLAGS = $MAGICKXX_CPPFLAGS
+ MAGICKXX_LIBS = $MAGICKXX_LDFLAGS
SCRIBO_CXXFLAGS = $SCRIBO_CXXFLAGS
APPS_CXXFLAGS = $APPS_CXXFLAGS
TOOLS_CXXFLAGS = $TOOLS_CXXFLAGS
--
1.5.6.5
1
0

branch exp/next-build-ok updated: last-svn-commit-478-g79263eb
by lazzaraï¼ lrde.epita.fr 13 Aug '10
by lazzaraï¼ lrde.epita.fr 13 Aug '10
13 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
via 79263eb8957ea0cc946d73fc71cfdfd9f6b31abe (commit)
from 53a57b1d3275c5b9fb41db4b706342d6a7df992d (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 -----------------------------------------------------------------
79263eb configure.ac: Make Boost dependency optional.
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 4 ++++
configure.ac | 36 ++++++++++++++++++++++--------------
2 files changed, 26 insertions(+), 14 deletions(-)
hooks/post-receive
--
Olena, a generic and efficient image processing platform
1
0

last-svn-commit-478-g79263eb configure.ac: Make Boost dependency optional.
by Guillaume Lazzara 13 Aug '10
by Guillaume Lazzara 13 Aug '10
13 Aug '10
---
ChangeLog | 4 ++++
configure.ac | 36 ++++++++++++++++++++++--------------
2 files changed, 26 insertions(+), 14 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 301ed5d..00d8c12 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2010-08-13 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * configure.ac: Make Boost dependency optional.
+
2010-08-12 Guillaume Lazzara <z(a)lrde.epita.fr>
* build-aux/build_unit_test.sh: Handle composed dependency names
diff --git a/configure.ac b/configure.ac
index 108b827..ce1a5a2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -215,20 +215,28 @@ if test "x$with_boost" != xno; then
AC_MSG_RESULT([* Boost])
AC_MSG_RESULT([-------])
- # Preprocessor
- BOOST_FIND_HEADER([boost/preprocessor/repetition/repeat.hpp],
- oln_have_boost_preprocessor="no",
- oln_have_boost_preprocessor="yes")
- if test "x$oln_have_boost_preprocessor" = xyes; then
- AC_DEFINE([HAVE_BOOST_PREPROCESSOR], 1, [Define to 1 if we can use Boost Preprocessor.])
- fi
+ # Is Boost installed?
+ BOOST_REQUIRE([], oln_have_boost=no)
+
+ if test "x$oln_have_boost" != xno; then
+
+ # Preprocessor
+ BOOST_FIND_HEADER([boost/preprocessor/repetition/repeat.hpp],
+ oln_have_boost_preprocessor=no,
+ oln_have_boost_preprocessor=yes)
+ if test "x$oln_have_boost_preprocessor" = xyes; then
+ AC_DEFINE([HAVE_BOOST_PREPROCESSOR], 1,
+ [Define to 1 if we can use Boost Preprocessor.])
+ fi
- # Tuple
- BOOST_FIND_HEADER([boost/tuple/tuple.hpp],
- oln_have_boost_tuple=no,
- oln_have_boost_tuple=yes)
- if test "x$oln_have_boost_tuple" = xyes; then
- AC_DEFINE([HAVE_BOOST_TUPLE], 1, [Define to 1 if we can use Boost Tuple.])
+ # Tuple
+ BOOST_FIND_HEADER([boost/tuple/tuple.hpp],
+ oln_have_boost_tuple=no,
+ oln_have_boost_tuple=yes)
+ if test "x$oln_have_boost_tuple" = xyes; then
+ AC_DEFINE([HAVE_BOOST_TUPLE], 1,
+ [Define to 1 if we can use Boost Tuple.])
+ fi
fi
fi
--
1.5.6.5
1
0

13 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 has been deleted
was 53a57b1d3275c5b9fb41db4b706342d6a7df992d
-----------------------------------------------------------------------
53a57b1d3275c5b9fb41db4b706342d6a7df992d Fix compilation with g++-3.3 in Milena.
-----------------------------------------------------------------------
hooks/post-receive
--
Olena, a generic and efficient image processing platform
1
0

13 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/milena-z has been deleted
was 53a57b1d3275c5b9fb41db4b706342d6a7df992d
-----------------------------------------------------------------------
53a57b1d3275c5b9fb41db4b706342d6a7df992d Fix compilation with g++-3.3 in Milena.
-----------------------------------------------------------------------
hooks/post-receive
--
Olena, a generic and efficient image processing platform
1
0

13 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 2434455d28293575f4bacc80f3e7bb3cd648c3c0 (commit)
via 565a8acd20101cf22d58b674d4d1695d8e9926c6 (commit)
via 7671c7df2acc25243c83131813db612be8a654b2 (commit)
via 15a057175710227bdea5a9702dcbf5bd64704a9d (commit)
from 53a57b1d3275c5b9fb41db4b706342d6a7df992d (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 -----------------------------------------------------------------
2434455 Merge branch 'exp/scribo-z' into next
-----------------------------------------------------------------------
Summary of changes:
milena/ChangeLog | 28 +++++
milena/mln/io/magick/load.hh | 202 ++++++++++++++++++------------------
milena/mln/io/magick/save.hh | 144 ++++++++++++++-----------
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 ++
8 files changed, 381 insertions(+), 210 deletions(-)
hooks/post-receive
--
Olena, a generic and efficient image processing platform
1
0

13 Aug '10
This is a merge commit message of the following branches:
Merge: 565a8ac... 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 | 8 +-
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 | 91 +-
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, 112985 insertions(+), 24587 deletions(-)
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..3d3a05b
--- 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
@@@ -79,53 -72,52 +81,53 @@@
# ifndef MLN_INCLUDE_ONLY
- inline
- Magick::Color get_color(bool value)
+ namespace impl
{
- return Magick::ColorMono(value);
- }
- // Gray values must be between 0 and 1.
- inline
- Magick::Color get_color(const value::int_u8& value)
- {
- return Magick::ColorGray(value / 255.0f);
- }
+ inline
+ Magick::Color get_color(bool value)
+ {
+ return Magick::ColorMono(value);
+ }
- // Color values must be between 0 and 1.
- inline
- Magick::Color get_color(const value::rgb8& value)
- {
- return Magick::ColorRGB(value.red() / 255.0f,
- value.green() / 255.0f,
- value.blue() / 255.0f);
- }
+ inline
+ Magick::Color get_color(const value::int_u8& value)
+ {
+ // Ensure a Magick++'s Quantum is an 8-bit value.
+ mln::metal::equal<Magick::Quantum, unsigned char>::check();
+ return Magick::Color(value, value, value);
+ }
- // Color values must be between 0 and 1.
- inline
- Magick::Color get_color(const value::qt::rgb32& value)
- {
- return Magick::ColorRGB(value.red() / 255.0f,
- value.green() / 255.0f,
- value.blue() / 255.0f);
- }
+ inline
+ Magick::Color get_color(const value::rgb8& value)
+ {
+ // Ensure a Magick++'s Quantum is an 8-bit value.
+ mln::metal::equal<Magick::Quantum, unsigned char>::check();
+ return Magick::Color(value.red(), value.green(), value.blue());
+ }
+
+ } // end of namespace mln::io::magick::impl
-
template <typename I>
inline
- void save(const Image<I>& ima_, const std::string& filename)
+ void
+ save(const Image<I>& ima_, const std::string& filename)
{
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.
hooks/post-receive
--
Olena, a generic and efficient image processing platform
1
0

13 Aug '10
* arthur/xml_transform/templates/opendoc/css.css,
* arthur/xml_transform/templates/opendoc/opendoc_generator.sh,
* arthur/xml_transform/templates/opendoc/xsl.xsl: New.
* arthur/xml_transform/README
* arthur/xml_transform/loader.cc
* arthur/xml_transform/loader.hh
* arthur/xml_transform/main.cc
* arthur/xml_transform/xml_transform.cc
* arthur/xml_transform/xml_transform.hh
---
scribo/sandbox/ChangeLog | 15 ++++++++++++
scribo/sandbox/arthur/xml_transform/README | 9 ++++++-
scribo/sandbox/arthur/xml_transform/loader.cc | 12 ++++++++++
scribo/sandbox/arthur/xml_transform/loader.hh | 1 +
scribo/sandbox/arthur/xml_transform/main.cc | 18 ++++++++++++--
.../templates/{html => opendoc}/css.css | 1 -
.../templates/opendoc/opendoc_generator.sh | 24 ++++++++++++++++++++
.../templates/{html => opendoc}/xsl.xsl | 6 +----
.../sandbox/arthur/xml_transform/xml_transform.cc | 19 +++++++++++++++
.../sandbox/arthur/xml_transform/xml_transform.hh | 1 +
10 files changed, 96 insertions(+), 10 deletions(-)
copy scribo/sandbox/arthur/xml_transform/templates/{html => opendoc}/css.css (93%)
mode change 100644 => 100755
create mode 100755 scribo/sandbox/arthur/xml_transform/templates/opendoc/opendoc_generator.sh
copy scribo/sandbox/arthur/xml_transform/templates/{html => opendoc}/xsl.xsl (95%)
mode change 100644 => 100755
diff --git a/scribo/sandbox/ChangeLog b/scribo/sandbox/ChangeLog
index 7c53037..176e809 100644
--- a/scribo/sandbox/ChangeLog
+++ b/scribo/sandbox/ChangeLog
@@ -1,3 +1,18 @@
+2010-07-23 Arthur Crepin-Leblond <crepin(a)ptaouchnok.lrde.epita.fr>
+
+ OpenDocument output (odt and odf).
+
+ * arthur/xml_transform/templates/opendoc/css.css,
+ * arthur/xml_transform/templates/opendoc/opendoc_generator.sh,
+ * arthur/xml_transform/templates/opendoc/xsl.xsl: New.
+
+ * arthur/xml_transform/README
+ * arthur/xml_transform/loader.cc
+ * arthur/xml_transform/loader.hh
+ * arthur/xml_transform/main.cc
+ * arthur/xml_transform/xml_transform.cc
+ * arthur/xml_transform/xml_transform.hh
+
2010-07-22 Arthur Crepin-Leblond <crepin(a)ptaouchnok.lrde.epita.fr>
SVG output.
diff --git a/scribo/sandbox/arthur/xml_transform/README b/scribo/sandbox/arthur/xml_transform/README
index 4e98a76..9ac4973 100644
--- a/scribo/sandbox/arthur/xml_transform/README
+++ b/scribo/sandbox/arthur/xml_transform/README
@@ -16,14 +16,21 @@ SVG output:
Base 64 operations:
--to-base64 <xml> <ppm> <out_xml> : Produces a container XML file by converting cropped pictures into base 64 format.
+
+OpenDocument output:
+ --open <xml> <ppm> <out_dir> : OpenDocument output (odt, odf).
+
+Base 64 operations:
+ --to-base64 <xml> <ppm> <out_xml> : Produces a container XML file by converting cropped pictures into base 64 format.
--to-base64-no-crop <xml> <ppm> <out_xml> : Same as to-base64 but only the picture is converted in base 64.
--from-base64 <xml> <out_dir> : Decodes a XML container file to produce original image files.
-For PDF/HTML/SVG output, Bourne shell scripts are provided to produce the outputs, just run sh *_generator.sh
+For PDF/HTML/SVG/OD output, Bourne shell scripts are provided to produce the outputs, just run sh *_generator.sh
Requirements:
PDF : fop >= 0.95
HTML : xsltproc
SVG : trunk version of fop
+OpenDocument : ooconvert
BUILD:
diff --git a/scribo/sandbox/arthur/xml_transform/loader.cc b/scribo/sandbox/arthur/xml_transform/loader.cc
index 1698899..d4778a9 100644
--- a/scribo/sandbox/arthur/xml_transform/loader.cc
+++ b/scribo/sandbox/arthur/xml_transform/loader.cc
@@ -141,6 +141,18 @@ void Loader::add_svg_templates(QString output)
xsl.copy(output + "main.xsl");
}
+void Loader::add_open_templates(QString output)
+{
+ QFile css("templates/opendoc/css.css");
+ css.copy(output + "css.css");
+
+ QFile gen("templates/opendoc/opendoc_generator.sh");
+ gen.copy(output + "opendoc_generator.sh");
+
+ QFile xsl("templates/opendoc/xsl.xsl");
+ xsl.copy(output + "xsl.xsl");
+}
+
bool Loader::xml_output(QString xml_file, bool html, QString output)
{
QFile file(xml_file);
diff --git a/scribo/sandbox/arthur/xml_transform/loader.hh b/scribo/sandbox/arthur/xml_transform/loader.hh
index 3cbae5c..a5c3637 100644
--- a/scribo/sandbox/arthur/xml_transform/loader.hh
+++ b/scribo/sandbox/arthur/xml_transform/loader.hh
@@ -43,6 +43,7 @@ class Loader : public QObject
bool set_output(QString& output);
void add_pdf_templates(bool crop, bool base64, QString output);
void add_svg_templates(QString output);
+ void add_open_templates(QString output);
void add_html_templates(bool base64, QString output);
};
diff --git a/scribo/sandbox/arthur/xml_transform/main.cc b/scribo/sandbox/arthur/xml_transform/main.cc
index d1c789d..34a1b6e 100644
--- a/scribo/sandbox/arthur/xml_transform/main.cc
+++ b/scribo/sandbox/arthur/xml_transform/main.cc
@@ -19,18 +19,25 @@ int main(int argc, char **argv)
"SVG output:\n"
"\t--svg <xml> <out_dir> : SVG output (works only with base 64 xml encoded.\n\n"
"Base 64 operations:\n"
+ "\t--to-base64 <xml> <ppm> <out_xml> : Produces a container XML file by converting cropped pictures into base 64 format.\n\n"
+
+ "OpenDocument output:\n"
+ "\t--open <xml> <ppm> <out_dir> : OpenDocument output (odt, odf).\n\n"
+ "Base 64 operations:\n"
"\t--to-base64 <xml> <ppm> <out_xml> : Produces a container XML file by converting cropped pictures into base 64 format.\n"
"\t--to-base64-no-crop <xml> <ppm> <out_xml> : Same as to-base64 but only the picture is converted in base 64.\n"
"\t--from-base64 <xml> <out_dir> : Decodes a XML container file to produce original image files.\n\n"
- "For PDF/HTML/SVG output, Bourne shell scripts are provided to produce the outputs, just run sh *_generator.sh \n"
+ "For PDF/HTML/SVG/OD output, Bourne shell scripts are provided to produce the outputs, just run sh *_generator.sh \n"
"Requirements:\n"
"PDF : fop >= 0.95\n"
"HTML : xsltproc\n"
- "SVG : trunk version of fop\n";
+ "SVG : trunk version of fop\n"
+ "OpenDocument : ooconvert";
if (argc > 4)
{
std::string html = "--html";
+ std::string open = "--open";
std::string pdf = "--pdf";
std::string pdf_no_crop = "--pdf-no-crop";
std::string to_base64 = "--to-base64";
@@ -41,11 +48,16 @@ int main(int argc, char **argv)
XmlTransform xmlt(argv[2], argv[3], argv[4]);
xmlt.createHTML(false);
}
- if (pdf.compare(argv[1]) == 0)
+ else if (pdf.compare(argv[1]) == 0)
{
XmlTransform xmlt(argv[2], argv[3], argv[4]);
xmlt.createPDF(true, false);
}
+ else if (open.compare(argv[1]) == 0)
+ {
+ XmlTransform xmlt(argv[2], argv[3], argv[4]);
+ xmlt.createOpen();
+ }
else if (pdf_no_crop.compare(argv[1]) == 0)
{
XmlTransform xmlt(argv[2], argv[3], argv[4]);
diff --git a/scribo/sandbox/arthur/xml_transform/templates/html/css.css b/scribo/sandbox/arthur/xml_transform/templates/opendoc/css.css
old mode 100644
new mode 100755
similarity index 93%
copy from scribo/sandbox/arthur/xml_transform/templates/html/css.css
copy to scribo/sandbox/arthur/xml_transform/templates/opendoc/css.css
index 0443390..1559149
--- a/scribo/sandbox/arthur/xml_transform/templates/html/css.css
+++ b/scribo/sandbox/arthur/xml_transform/templates/opendoc/css.css
@@ -1,7 +1,6 @@
.line
{
position:absolute;
- background-color:white;
z-index:7;
display:inline;
white-space:pre;
diff --git a/scribo/sandbox/arthur/xml_transform/templates/opendoc/opendoc_generator.sh b/scribo/sandbox/arthur/xml_transform/templates/opendoc/opendoc_generator.sh
new file mode 100755
index 0000000..c2d9e6f
--- /dev/null
+++ b/scribo/sandbox/arthur/xml_transform/templates/opendoc/opendoc_generator.sh
@@ -0,0 +1,24 @@
+#!/bin/sh
+
+if [ -z "$1" ]
+then
+ echo "opendoc_generator <odt|odf>";
+else
+ if [ "$1" == "odt" ]
+ then
+ echo "saving to output.odt";
+ xsltproc xsl.xsl output.xml > output.html
+ ooconvert output.html output.odt
+ rm output.html
+ elif [ "$1" == "odf" ]
+ then
+ echo "saving to output.odf";
+ xsltproc xsl.xsl output.xml > output.html
+ ooconvert output.html output.odf;
+ rm output.html
+ else
+ echo "opendoc_generator <odt|odf>";
+ fi
+fi
+
+#rm output.html
\ No newline at end of file
diff --git a/scribo/sandbox/arthur/xml_transform/templates/html/xsl.xsl b/scribo/sandbox/arthur/xml_transform/templates/opendoc/xsl.xsl
old mode 100644
new mode 100755
similarity index 95%
copy from scribo/sandbox/arthur/xml_transform/templates/html/xsl.xsl
copy to scribo/sandbox/arthur/xml_transform/templates/opendoc/xsl.xsl
index 1f29044..bf1cc30
--- a/scribo/sandbox/arthur/xml_transform/templates/html/xsl.xsl
+++ b/scribo/sandbox/arthur/xml_transform/templates/opendoc/xsl.xsl
@@ -15,8 +15,6 @@
pcGts/page/chart_region|
pcGts/page/table_region|
pcGts/page/separator_region|
- pcGts/page/text_region|
- pcGts/page/text_region/paragraph|
pcGts/page/text_region/paragraph/line">
<!-- Regions Coordinates -->
@@ -129,10 +127,8 @@
</xsl:choose>
</xsl:variable>
- <div class="line" onmouseover="this.style.opacity=0.2;this.filters.alpha.opacity=20"
- onmouseout="this.style.opacity=1;this.filters.alpha.opacity=100">
+ <div class="line">
<xsl:attribute name="style">
- opacity:1;
height:auto;
font-size:<xsl:value-of select="$a+$d" />px;
width:<xsl:value-of select="$x2 - $x1" />px;
diff --git a/scribo/sandbox/arthur/xml_transform/xml_transform.cc b/scribo/sandbox/arthur/xml_transform/xml_transform.cc
index c40366a..90af5a5 100644
--- a/scribo/sandbox/arthur/xml_transform/xml_transform.cc
+++ b/scribo/sandbox/arthur/xml_transform/xml_transform.cc
@@ -117,6 +117,25 @@ void XmlTransform::createPDF (bool crop, bool base64)
abort();
}
+void XmlTransform::createOpen ()
+{
+ if (loader_->xml_output(xml_file_, false, output_dir_))
+ {
+ QString output = output_dir_;
+ output.append("img");
+
+ if (loader_->set_output(output))
+ {
+ crop_->crop_regions();
+ loader_->add_open_templates(output_dir_);
+ }
+ else
+ abort();
+ }
+ else
+ abort();
+}
+
void XmlTransform::createSVG ()
{
if (loader_->xml_output(xml_file_, false, output_dir_))
diff --git a/scribo/sandbox/arthur/xml_transform/xml_transform.hh b/scribo/sandbox/arthur/xml_transform/xml_transform.hh
index 30d5c6c..ad83fd5 100644
--- a/scribo/sandbox/arthur/xml_transform/xml_transform.hh
+++ b/scribo/sandbox/arthur/xml_transform/xml_transform.hh
@@ -43,6 +43,7 @@ class XmlTransform : public QObject
void createHTML(bool base64);
void createPDF(bool crop, bool base64);
void createSVG();
+ void createOpen();
void toBase64(bool crop);
void fromBase64();
--
1.5.6.5
1
0
* arthur/xml_transform/README
* arthur/xml_transform/loader.cc
* arthur/xml_transform/loader.hh
* arthur/xml_transform/main.cc
* arthur/xml_transform/xml_transform.cc
* arthur/xml_transform/xml_transform.hh
* arthur/xml_transform/templates/pdf/regions_svg.xsl,
* arthur/xml_transform/templates/pdf/svg_generator.sh: New.
---
scribo/sandbox/ChangeLog | 15 +++
scribo/sandbox/arthur/xml_transform/README | 25 ++++--
scribo/sandbox/arthur/xml_transform/loader.cc | 15 +++
scribo/sandbox/arthur/xml_transform/loader.hh | 1 +
scribo/sandbox/arthur/xml_transform/main.cc | 41 ++++++---
.../xml_transform/templates/pdf/regions_svg.xsl | 98 ++++++++++++++++++++
.../xml_transform/templates/pdf/svg_generator.sh | 3 +
.../sandbox/arthur/xml_transform/xml_transform.cc | 10 ++
.../sandbox/arthur/xml_transform/xml_transform.hh | 1 +
9 files changed, 188 insertions(+), 21 deletions(-)
create mode 100644 scribo/sandbox/arthur/xml_transform/templates/pdf/regions_svg.xsl
create mode 100644 scribo/sandbox/arthur/xml_transform/templates/pdf/svg_generator.sh
diff --git a/scribo/sandbox/ChangeLog b/scribo/sandbox/ChangeLog
index 8d7b3e9..7c53037 100644
--- a/scribo/sandbox/ChangeLog
+++ b/scribo/sandbox/ChangeLog
@@ -1,3 +1,18 @@
+2010-07-22 Arthur Crepin-Leblond <crepin(a)ptaouchnok.lrde.epita.fr>
+
+ SVG output.
+
+ * arthur/xml_transform/README
+ * arthur/xml_transform/loader.cc
+ * arthur/xml_transform/loader.hh
+ * arthur/xml_transform/main.cc
+ * arthur/xml_transform/xml_transform.cc
+ * arthur/xml_transform/xml_transform.hh
+
+ * arthur/xml_transform/templates/pdf/regions_svg.xsl,
+ * arthur/xml_transform/templates/pdf/svg_generator.sh: New.
+
+
2010-07-15 Arthur Crepin-Leblond <crepin(a)stockholm.lrde.epita.fr>
XML Tranform.
diff --git a/scribo/sandbox/arthur/xml_transform/README b/scribo/sandbox/arthur/xml_transform/README
index aedf220..4e98a76 100644
--- a/scribo/sandbox/arthur/xml_transform/README
+++ b/scribo/sandbox/arthur/xml_transform/README
@@ -1,23 +1,29 @@
xml_transform
-
OPTIONS:
HTML output:
- --html <xml> <ppm> <out_dir> : HTML output with non-text regions croped into many png files.
+ --html <xml> <ppm> <out_dir> : HTML output with non-text regions cropped into many png files.
--html-base64 <xml> <out_dir> : HTML output from a container XML file.
PDF output:
- --pdf <xml> <ppm> <out_dir> : PDF output with non-text regions croped into many png files.
+ --pdf <xml> <ppm> <out_dir> : PDF output with non-text regions cropped into many png files.
--pdf-no-crop <xml> <ppm> <out_dir>: PDF output with the entire picture displayed over the text.
--pdf-base64 <xml> <out_dir> : PDF output from a container XML file.
- --pdf-base64-no-crop <xml> <ppm> <out_dir> : PDF with the entire picture displayed over the text,
- the picture is loaded from a container XML file.
+ --pdf-base64-no-crop <xml> <ppm> <out_dir> : PDF with the entire picture displayed over the text, the picture is loaded from a container XML file.
+
+SVG output:
+ --svg <xml> <out_dir> : SVG output (works only with base 64 xml encoded.
Base 64 operations:
- --to-base64 <xml> <ppm> <out_xml> : Produces a container XML file by converting croped pictures into base 64 format.
+ --to-base64 <xml> <ppm> <out_xml> : Produces a container XML file by converting cropped pictures into base 64 format.
--to-base64-no-crop <xml> <ppm> <out_xml> : Same as to-base64 but only the picture is converted in base 64.
--from-base64 <xml> <out_dir> : Decodes a XML container file to produce original image files.
+For PDF/HTML/SVG output, Bourne shell scripts are provided to produce the outputs, just run sh *_generator.sh
+Requirements:
+PDF : fop >= 0.95
+HTML : xsltproc
+SVG : trunk version of fop
BUILD:
@@ -25,5 +31,10 @@ Chnage the environment variable QMAKE_CXXFLAGS in xml_transfrom.pro then
mkdir _build
cd _build
+cp -r ../templates .
qmake ../xml_transfrom.pro
-make
\ No newline at end of file
+make
+
+/!\ IMPORTANT NOTE /!\
+
+xml_transfrom uses a templates directory, binary and this folder should be in the same place.
\ No newline at end of file
diff --git a/scribo/sandbox/arthur/xml_transform/loader.cc b/scribo/sandbox/arthur/xml_transform/loader.cc
index 2b64337..1698899 100644
--- a/scribo/sandbox/arthur/xml_transform/loader.cc
+++ b/scribo/sandbox/arthur/xml_transform/loader.cc
@@ -126,6 +126,21 @@ void Loader::add_pdf_templates(bool crop, bool base64, QString output)
}
}
+void Loader::add_svg_templates(QString output)
+{
+ QFile regions("templates/pdf/regions_svg.xsl");
+ regions.copy(output + "regions.xsl");
+
+ QFile gen("templates/pdf/svg_generator.sh");
+ gen.copy(output + "svg_generator.sh");
+
+ QFile line("templates/pdf/line.xsl");
+ line.copy(output + "line.xsl");
+
+ QFile xsl("templates/pdf/main_crop.xsl");
+ xsl.copy(output + "main.xsl");
+}
+
bool Loader::xml_output(QString xml_file, bool html, QString output)
{
QFile file(xml_file);
diff --git a/scribo/sandbox/arthur/xml_transform/loader.hh b/scribo/sandbox/arthur/xml_transform/loader.hh
index fadceed..3cbae5c 100644
--- a/scribo/sandbox/arthur/xml_transform/loader.hh
+++ b/scribo/sandbox/arthur/xml_transform/loader.hh
@@ -42,6 +42,7 @@ class Loader : public QObject
QDomDocument* xml_to_dom(QString xml_file);
bool set_output(QString& output);
void add_pdf_templates(bool crop, bool base64, QString output);
+ void add_svg_templates(QString output);
void add_html_templates(bool base64, QString output);
};
diff --git a/scribo/sandbox/arthur/xml_transform/main.cc b/scribo/sandbox/arthur/xml_transform/main.cc
index c259c76..d1c789d 100644
--- a/scribo/sandbox/arthur/xml_transform/main.cc
+++ b/scribo/sandbox/arthur/xml_transform/main.cc
@@ -6,20 +6,27 @@ int main(int argc, char **argv)
{
std::string man;
- man = "xml_transform\n";
- man += "OPTIONS:\n\n";
- man += "HTML output:\n";
- man += "\t--html <xml> <ppm> <out_dir> : HTML output with non-text regions cropped into many png files.\n";
- man += "\t--html-base64 <xml> <out_dir> : HTML output from a container XML file.\n\n";
- man += "PDF output:\n";
- man += "\t--pdf <xml> <ppm> <out_dir> : PDF output with non-text regions cropped into many png files.\n";
- man += "\t--pdf-no-crop <xml> <ppm> <out_dir>: PDF output with the entire picture displayed over the text.\n";
- man += "\t--pdf-base64 <xml> <out_dir> : PDF output from a container XML file.\n";
- man += "\t--pdf-base64-no-crop <xml> <ppm> <out_dir> : PDF with the entire picture displayed over the text, the picture is loaded from a container XML file.\n\n";
- man += "Base 64 operations:\n";
- man += "\t--to-base64 <xml> <ppm> <out_xml> : Produces a container XML file by converting cropped pictures into base 64 format.\n";
- man += "\t--to-base64-no-crop <xml> <ppm> <out_xml> : Same as to-base64 but only the picture is converted in base 64.\n";
- man += "\t--from-base64 <xml> <out_dir> : Decodes a XML container file to produce original image files.\n";
+ man = "xml_transform\n"
+ "OPTIONS:\n\n"
+ "HTML output:\n"
+ "\t--html <xml> <ppm> <out_dir> : HTML output with non-text regions cropped into many png files.\n"
+ "\t--html-base64 <xml> <out_dir> : HTML output from a container XML file.\n\n"
+ "PDF output:\n"
+ "\t--pdf <xml> <ppm> <out_dir> : PDF output with non-text regions cropped into many png files.\n"
+ "\t--pdf-no-crop <xml> <ppm> <out_dir>: PDF output with the entire picture displayed over the text.\n"
+ "\t--pdf-base64 <xml> <out_dir> : PDF output from a container XML file.\n"
+ "\t--pdf-base64-no-crop <xml> <ppm> <out_dir> : PDF with the entire picture displayed over the text, the picture is loaded from a container XML file.\n\n"
+ "SVG output:\n"
+ "\t--svg <xml> <out_dir> : SVG output (works only with base 64 xml encoded.\n\n"
+ "Base 64 operations:\n"
+ "\t--to-base64 <xml> <ppm> <out_xml> : Produces a container XML file by converting cropped pictures into base 64 format.\n"
+ "\t--to-base64-no-crop <xml> <ppm> <out_xml> : Same as to-base64 but only the picture is converted in base 64.\n"
+ "\t--from-base64 <xml> <out_dir> : Decodes a XML container file to produce original image files.\n\n"
+ "For PDF/HTML/SVG output, Bourne shell scripts are provided to produce the outputs, just run sh *_generator.sh \n"
+ "Requirements:\n"
+ "PDF : fop >= 0.95\n"
+ "HTML : xsltproc\n"
+ "SVG : trunk version of fop\n";
if (argc > 4)
{
@@ -60,6 +67,7 @@ int main(int argc, char **argv)
else if (argc > 3)
{
std::string pdfbase64 = "--pdf-base64";
+ std::string svg = "--svg";
std::string pdfbase64nocrop = "--pdf-base64-no-crop";
std::string htmlbase64 = "--html-base64";
std::string from_base64 = "--from-base64";
@@ -69,6 +77,11 @@ int main(int argc, char **argv)
XmlTransform xmlt(argv[2], QString::Null(), argv[3]);
xmlt.createPDF(true, true);
}
+ else if (svg.compare(argv[1]) == 0)
+ {
+ XmlTransform xmlt(argv[2], QString::Null(), argv[3]);
+ xmlt.createSVG();
+ }
else if (pdfbase64nocrop.compare(argv[1]) == 0)
{
XmlTransform xmlt(argv[2], QString::Null(), argv[3]);
diff --git a/scribo/sandbox/arthur/xml_transform/templates/pdf/regions_svg.xsl b/scribo/sandbox/arthur/xml_transform/templates/pdf/regions_svg.xsl
new file mode 100644
index 0000000..86b5f51
--- /dev/null
+++ b/scribo/sandbox/arthur/xml_transform/templates/pdf/regions_svg.xsl
@@ -0,0 +1,98 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" version="1.0">
+
+ <!-- FILE: regions.xsl
+ DESCRIPTION: Match all regions that are not text to display them -->
+
+ <xsl:template match="pcGts/page/image_region|
+ pcGts/page/graphic_region|
+ pcGts/page/chart_region|
+ pcGts/page/table_region|
+ pcGts/page/separator_region">
+
+ <!-- ID of the region, used to display id.png -->
+ <xsl:variable name="data">
+ <xsl:value-of select="container/data" />
+ </xsl:variable>
+
+ <!-- Regions coordinates -->
+ <xsl:variable name="y1">
+ <xsl:for-each select="coords/point">
+ <xsl:sort select="@y" order="ascending" data-type="number"/>
+ <xsl:if test="position() = 1">
+ <xsl:value-of select="@y" />
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:variable>
+
+ <xsl:variable name="x1">
+ <xsl:for-each select="coords/point">
+ <xsl:sort select="@x" order="ascending" data-type="number"/>
+ <xsl:if test="position() = 1">
+ <xsl:value-of select="@x" />
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:variable>
+
+ <xsl:variable name="y2">
+ <xsl:for-each select="coords/point">
+ <xsl:sort select="@y" order="descending" data-type="number"/>
+ <xsl:if test="position() = 1">
+ <xsl:value-of select="@y" />
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:variable>
+
+ <xsl:variable name="x2">
+ <xsl:for-each select="coords/point">
+ <xsl:sort select="@x" order="descending" data-type="number"/>
+ <xsl:if test="position() = 1">
+ <xsl:value-of select="@x" />
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:variable>
+ <!-- END OF regions coordinates -->
+
+ <fo:block-container>
+
+ <fo:block>
+ <fo:instream-foreign-object>
+ <svg:svg xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ Version="1.1">
+
+ <xsl:attribute name="viewBox">
+ <xsl:value-of select="$x1" /> <xsl:value-of select="$y1" /> <xsl:value-of select="$x2" /> <xsl:value-of select="$y2" />
+ </xsl:attribute>
+
+ <svg:image position="absolute">
+
+ <xsl:attribute name="y">
+ <xsl:value-of select="$y1" />
+ </xsl:attribute>
+
+ <xsl:attribute name="x">
+ <xsl:value-of select="$x1" />
+ </xsl:attribute>
+
+ <xsl:attribute name="width">
+ <xsl:value-of select="$x2 - $x1" />
+ </xsl:attribute>
+
+ <xsl:attribute name="height">
+ <xsl:value-of select="$y2 - $y1" />
+ </xsl:attribute>
+
+ <xsl:attribute name="xlink:href">data:image/png;base64,<xsl:value-of select="$data" /></xsl:attribute>
+ </svg:image>
+
+ </svg:svg>
+
+ </fo:instream-foreign-object>
+
+ </fo:block>
+ </fo:block-container>
+
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/scribo/sandbox/arthur/xml_transform/templates/pdf/svg_generator.sh b/scribo/sandbox/arthur/xml_transform/templates/pdf/svg_generator.sh
new file mode 100644
index 0000000..0d4907c
--- /dev/null
+++ b/scribo/sandbox/arthur/xml_transform/templates/pdf/svg_generator.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+fop -xsl main.xsl -xml output.xml -svg output.svg
\ No newline at end of file
diff --git a/scribo/sandbox/arthur/xml_transform/xml_transform.cc b/scribo/sandbox/arthur/xml_transform/xml_transform.cc
index ebfbed8..c40366a 100644
--- a/scribo/sandbox/arthur/xml_transform/xml_transform.cc
+++ b/scribo/sandbox/arthur/xml_transform/xml_transform.cc
@@ -117,6 +117,16 @@ void XmlTransform::createPDF (bool crop, bool base64)
abort();
}
+void XmlTransform::createSVG ()
+{
+ if (loader_->xml_output(xml_file_, false, output_dir_))
+ {
+ loader_->add_svg_templates(output_dir_);
+ }
+ else
+ abort();
+}
+
void XmlTransform::createHTML(bool base64)
{
if (loader_->xml_output(xml_file_, true, output_dir_))
diff --git a/scribo/sandbox/arthur/xml_transform/xml_transform.hh b/scribo/sandbox/arthur/xml_transform/xml_transform.hh
index 172bddb..30d5c6c 100644
--- a/scribo/sandbox/arthur/xml_transform/xml_transform.hh
+++ b/scribo/sandbox/arthur/xml_transform/xml_transform.hh
@@ -42,6 +42,7 @@ class XmlTransform : public QObject
void createHTML(bool base64);
void createPDF(bool crop, bool base64);
+ void createSVG();
void toBase64(bool crop);
void fromBase64();
--
1.5.6.5
1
0