* 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.
---
scribo/ChangeLog | 54 +++++++++++++++
scribo/all.hh | 8 ++-
.../{core/def/lbl_type.hh => binarization/all.hh} | 29 +++++---
scribo/binarization/internal/first_pass_functor.hh | 8 ++-
scribo/convert/from_qimage.hh | 1 +
scribo/core/tag/component.hh | 5 +-
scribo/core/tag/line.hh | 5 +-
scribo/debug/links_decision_image.hh | 2 +
scribo/debug/mean_and_base_lines_image.hh | 4 +-
scribo/filter/object_groups_with_holes.hh | 10 ++-
scribo/io/xml/save.hh | 30 +++++----
scribo/make/all.hh | 4 +-
.../def/lbl_type.hh => postprocessing/all.hh} | 22 +++---
scribo/postprocessing/fill_object_holes.hh | 9 ++-
scribo/preprocessing/all.hh | 21 +++++-
scribo/preprocessing/crop_without_localization.hh | 6 +-
scribo/preprocessing/denoise_bg.hh | 5 +-
scribo/preprocessing/denoise_fg.hh | 25 ++-----
scribo/preprocessing/deskew.hh | 2 +
scribo/preprocessing/deskew_crop.hh | 2 +-
scribo/preprocessing/split_bg_fg.hh | 3 +-
scribo/primitive/extract/all.hh | 4 +-
scribo/primitive/extract/lines_h_single.hh | 2 +-
scribo/primitive/extract/lines_pattern.hh | 4 +-
scribo/primitive/extract/lines_v_single.hh | 2 +
scribo/primitive/group/all.hh | 5 +-
scribo/primitive/internal/all.hh | 8 +-
scribo/primitive/internal/is_link_valid.hh | 8 +-
scribo/primitive/link/all.hh | 7 +-
scribo/primitive/link/internal/compute_anchor.hh | 7 ++-
.../primitive/link/internal/dmax_functor_base.hh | 2 +
scribo/primitive/regroup/from_single_left_link.hh | 4 +
scribo/primitive/remove/separators.hh | 2 +
scribo/subsampling/bilinear.hh | 5 ++
scribo/tests/Makefile.am | 5 +-
scribo/tests/core/Makefile.am | 8 +--
scribo/tests/core/object_image.cc | 72 --------------------
scribo/tests/filter/objects_with_holes.cc | 67 +++++++++++-------
scribo/tests/filter/small_and_large_bboxes.cc | 62 +++++------------
scribo/tests/unit_test/Makefile.am | 32 +++++++++
scribo/text/merging.hh | 2 +-
scribo/toolchain/nepomuk/text_extraction.hh | 3 +
scribo/upsampling/eagle.hh | 4 +
43 files changed, 324 insertions(+), 246 deletions(-)
copy scribo/{core/def/lbl_type.hh => binarization/all.hh} (67%)
copy scribo/{core/def/lbl_type.hh => postprocessing/all.hh} (79%)
delete mode 100644 scribo/tests/core/object_image.cc
diff --git a/scribo/ChangeLog b/scribo/ChangeLog
index 08477d4..cef5ea4 100644
--- a/scribo/ChangeLog
+++ b/scribo/ChangeLog
@@ -1,3 +1,57 @@
+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.
diff --git a/scribo/all.hh b/scribo/all.hh
index 4debad0..c9805d3 100644
--- a/scribo/all.hh
+++ b/scribo/all.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2009, 2010 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -37,15 +38,16 @@ namespace scribo
} // end of namespace scribo
+# include <scribo/binarization/all.hh>
# include <scribo/core/all.hh>
# include <scribo/debug/all.hh>
# include <scribo/draw/all.hh>
# include <scribo/filter/all.hh>
# include <scribo/make/all.hh>
+# include <scribo/postprocessing/all.hh>
# include <scribo/preprocessing/all.hh>
# include <scribo/primitive/all.hh>
-# include <scribo/table/all.hh>
+//# include <scribo/table/all.hh>
# include <scribo/text/all.hh>
-# include <scribo/util/all.hh>
#endif // ! SCRIBO_ALL_HH
diff --git a/scribo/core/def/lbl_type.hh b/scribo/binarization/all.hh
similarity index 67%
copy from scribo/core/def/lbl_type.hh
copy to scribo/binarization/all.hh
index 6434bbe..6f40505 100644
--- a/scribo/core/def/lbl_type.hh
+++ b/scribo/binarization/all.hh
@@ -23,26 +23,33 @@
// exception does not however invalidate any other reasons why the
// executable file might be covered by the GNU General Public License.
-#ifndef SCRIBO_CORE_LBL_TYPE_HH
-# define SCRIBO_CORE_LBL_TYPE_HH
+#ifndef SCRIBO_BINARIZATION_ALL_HH
+# define SCRIBO_BINARIZATION_ALL_HH
/// \file
///
-/// Global type definition for labels.
-
-# include <mln/value/label.hh>
-
+/// Include all headers located in scribo/binarization.
namespace scribo
{
- namespace def
+ /// Namespace of binarization routines.
+ namespace binarization
{
- typedef mln::value::label<30u> lbl_type;
-
- } // end of namespace scribo::def
+ } // end of namespace scribo::binarization
} // end of namespace scribo
-#endif // ! SCRIBO_CORE_DEF_HH
+
+# include <scribo/binarization/global_threshold.hh>
+# include <scribo/binarization/global_threshold_auto.hh>
+
+# include <scribo/binarization/local_threshold.hh>
+
+# include <scribo/binarization/sauvola.hh>
+# include <scribo/binarization/sauvola_ms.hh>
+# include <scribo/binarization/sauvola_ms_split.hh>
+# include <scribo/binarization/sauvola_threshold_image.hh>
+
+#endif // ! SCRIBO_BINARIZATION_ALL_HH
diff --git a/scribo/binarization/internal/first_pass_functor.hh
b/scribo/binarization/internal/first_pass_functor.hh
index 4d47d94..96c7cfb 100644
--- a/scribo/binarization/internal/first_pass_functor.hh
+++ b/scribo/binarization/internal/first_pass_functor.hh
@@ -26,7 +26,11 @@
#ifndef SCRIBO_BINARIZATION_INTERNAL_FIRST_PASS_FUNCTOR_HH
# define SCRIBO_BINARIZATION_INTERNAL_FIRST_PASS_FUNCTOR_HH
+# include <mln/core/image/image2d.hh>
+# include <mln/core/alias/neighb2d.hh>
+# include <mln/extension/fill.hh>
# include <mln/value/int_u8.hh>
+# include <mln/data/fill.hh>
# include <scribo/binarization/sauvola_threshold_image.hh>
@@ -95,7 +99,7 @@ namespace scribo
initialize(debug_k_l, input);
# endif // ! SCRIBO_SAUVOLA_DEBUG
- extension::fill(msk, false);
+ mln::extension::fill(msk, false);
initialize(card, input);
data::fill(card, 1);
@@ -153,8 +157,6 @@ namespace scribo
void finalize()
{
mln_assertion(! pxl.is_valid());
-
-// std::cout << std::endl << " ------- " << std::endl;
}
};
diff --git a/scribo/convert/from_qimage.hh b/scribo/convert/from_qimage.hh
index b297c2f..353e1ba 100644
--- a/scribo/convert/from_qimage.hh
+++ b/scribo/convert/from_qimage.hh
@@ -35,6 +35,7 @@
# include <QtGui/QImage>
+# include <mln/core/image/image2d.hh>
# include <mln/value/qt/rgb32.hh>
# if QT_VERSION < 0x040000
diff --git a/scribo/core/tag/component.hh b/scribo/core/tag/component.hh
index 3c061b3..5ed51fa 100644
--- a/scribo/core/tag/component.hh
+++ b/scribo/core/tag/component.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2009, 2010 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -26,6 +27,8 @@
#ifndef SCRIBO_CORE_TAG_COMPONENT_HH
# define SCRIBO_CORE_TAG_COMPONENT_HH
+# include <iostream>
+
/// \file
///
/// \brief Component tags.
diff --git a/scribo/core/tag/line.hh b/scribo/core/tag/line.hh
index f571188..ccb8cd1 100644
--- a/scribo/core/tag/line.hh
+++ b/scribo/core/tag/line.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2009, 2010 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -26,6 +27,8 @@
#ifndef SCRIBO_CORE_TAG_LINE_HH
# define SCRIBO_CORE_TAG_LINE_HH
+# include <iostream>
+
/// \file
///
/// \brief Line tags.
diff --git a/scribo/debug/links_decision_image.hh b/scribo/debug/links_decision_image.hh
index 944d17e..387cd7f 100644
--- a/scribo/debug/links_decision_image.hh
+++ b/scribo/debug/links_decision_image.hh
@@ -35,6 +35,8 @@
# include <mln/data/convert.hh>
# include <mln/value/rgb8.hh>
# include <mln/literal/colors.hh>
+# include <mln/draw/box.hh>
+# include <mln/draw/line.hh>
# include <scribo/core/object_links.hh>
diff --git a/scribo/debug/mean_and_base_lines_image.hh
b/scribo/debug/mean_and_base_lines_image.hh
index 16a9aad..56055c9 100644
--- a/scribo/debug/mean_and_base_lines_image.hh
+++ b/scribo/debug/mean_and_base_lines_image.hh
@@ -37,6 +37,7 @@
# include <mln/literal/colors.hh>
# include <mln/draw/box.hh>
+# include <mln/draw/line.hh>
# include <mln/draw/dashed_line.hh>
# include <scribo/core/line_set.hh>
@@ -96,7 +97,8 @@ namespace scribo
trace::entering("scribo::debug::mean_and_base_lines_image");
mln_precondition(exact(input).is_valid());
- image2d<value::rgb8> output = data::convert(value::rgb8(), input);
+ mln_ch_value(I, value::rgb8)
+ output = data::convert(value::rgb8(), input);
for_all_lines(l, lines)
{
diff --git a/scribo/filter/object_groups_with_holes.hh
b/scribo/filter/object_groups_with_holes.hh
index 28cd928..e833092 100644
--- a/scribo/filter/object_groups_with_holes.hh
+++ b/scribo/filter/object_groups_with_holes.hh
@@ -33,6 +33,7 @@
# include <sstream>
+# include <mln/core/image/image2d.hh>
# include <mln/core/concept/image.hh>
# include <mln/core/alias/neighb2d.hh>
# include <mln/core/routine/extend.hh>
@@ -42,6 +43,7 @@
# include <mln/geom/nrows.hh>
# include <mln/extension/duplicate.hh>
+# include <mln/extension/adjust_fill.hh>
# include <mln/draw/box_plain.hh>
# include <mln/util/array.hh>
@@ -50,8 +52,12 @@
# include <mln/fun/i2v/array.hh>
+
# include <scribo/core/macros.hh>
# include <scribo/core/component_set.hh>
+# include <scribo/core/object_groups.hh>
+
+# include <scribo/primitive/group/apply.hh>
namespace scribo
@@ -98,7 +104,7 @@ namespace scribo
typedef mln_dpsite(P) D;
const L& lbl = components.labeled_image();
- extension::adjust_fill(lbl, 1, 0);
+ mln::extension::adjust_fill(lbl, 1, 0);
mln_concrete(L) output;
initialize(output, lbl);
@@ -160,7 +166,7 @@ namespace scribo
neighb2d nbh = c8();
- image2d<unsigned> parent, card;
+ mln_ch_value(L,unsigned) parent, card;
L bboxes_ima;
// Will store the first background component id associated
diff --git a/scribo/io/xml/save.hh b/scribo/io/xml/save.hh
index 1d5cd6c..f13396f 100644
--- a/scribo/io/xml/save.hh
+++ b/scribo/io/xml/save.hh
@@ -30,8 +30,12 @@
///
/// \brief Save text line information as XML.
-#include <fstream>
-#include <sstream>
+# include <fstream>
+# include <sstream>
+
+# include <map>
+
+# include <scribo/core/line_set.hh>
namespace scribo
{
@@ -66,8 +70,8 @@ namespace scribo
namespace internal
{
- std::string&
- html_markups_replace(std::string& input,
+ std::string&
+ html_markups_replace(std::string& input,
std::map<char, std::string>& map)
{
for (unsigned i = 0; i < input.size(); ++i)
@@ -83,7 +87,7 @@ namespace scribo
}
} // end of namespace scribo::io::xml::internal
-
+
template <typename L>
void
save(const std::string& input_name,
@@ -114,7 +118,7 @@ namespace scribo
{
file << "<pcGts
xmlns=\"http://schema.primaresearch.org/PAGE/gts/pagecontent/2009-03-1…
xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"
xsi:schemaLocation=\"http://schema.primaresearch.org/PAGE/gts/pagecont…
http://schema.primaresearch.org/PAGE/gts/pagecontent/2009-03-16/pagecontent…
pcGtsId=\"" << input_name << "\">" <<
std::endl;
}
-
+
file << " <PcMetadata>" << std::endl;
file << " <PcCreator>LRDE</PcCreator>" <<
std::endl;
file << " <PcCreated/>" << std::endl;
@@ -190,20 +194,20 @@ namespace scribo
<< " <point x=\"" <<
lines(l).bbox().pmin().col()
<< "\" y=\"" << lines(l).bbox().pmax().row()
<< "\"/>"
<< std::endl
- << " </coords>" << std::endl;
-
+ << " </coords>" << std::endl;
+
if (lines(l).has_text())
{
std::string tmp = lines(l).text();
tmp = internal::html_markups_replace(tmp, html_map);
-
+
file << " <line text=\""
<< tmp
<< "\">" << std::endl;
}
else
file << " <line>" << std::endl;
-
+
file << " <coords>" << std::endl
<< " <point x=\"" <<
lines(l).bbox().pmin().col()
<< "\" y=\"" << lines(l).bbox().pmin().row()
<< "\"/>"
@@ -218,12 +222,12 @@ namespace scribo
<< "\" y=\"" << lines(l).bbox().pmax().row()
<< "\"/>"
<< std::endl
<< " </coords>" << std::endl;
-
+
file << " </line>" << std::endl;
- file << " </paragraph>" << std::endl;
+ file << " </paragraph>" << std::endl;
}
-
+
file << " </text_region>" << std::endl;
}
}
diff --git a/scribo/make/all.hh b/scribo/make/all.hh
index 8fb3ca0..71888e8 100644
--- a/scribo/make/all.hh
+++ b/scribo/make/all.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2009, 2010 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -42,7 +43,6 @@ namespace scribo
} // end of namespace scribo
# include <scribo/make/influence_zone_graph.hh>
-# include <scribo/make/text.hh>
# include <scribo/make/debug_filename.hh>
diff --git a/scribo/core/def/lbl_type.hh b/scribo/postprocessing/all.hh
similarity index 79%
copy from scribo/core/def/lbl_type.hh
copy to scribo/postprocessing/all.hh
index 6434bbe..4a2ca4d 100644
--- a/scribo/core/def/lbl_type.hh
+++ b/scribo/postprocessing/all.hh
@@ -23,26 +23,26 @@
// exception does not however invalidate any other reasons why the
// executable file might be covered by the GNU General Public License.
-#ifndef SCRIBO_CORE_LBL_TYPE_HH
-# define SCRIBO_CORE_LBL_TYPE_HH
+#ifndef SCRIBO_POSTPROCESSING_ALL_HH
+# define SCRIBO_POSTPROCESSING_ALL_HH
/// \file
///
-/// Global type definition for labels.
-
-# include <mln/value/label.hh>
-
+/// Include all headers located in scribo/postprocessing.
namespace scribo
{
- namespace def
+ /// Namespace of postprocessing routines.
+ namespace postprocessing
{
- typedef mln::value::label<30u> lbl_type;
-
- } // end of namespace scribo::def
+ } // end of namespace scribo::postprocessing
} // end of namespace scribo
-#endif // ! SCRIBO_CORE_DEF_HH
+
+# include <scribo/postprocessing/fill_object_holes.hh>
+
+
+#endif // ! SCRIBO_POSTPROCESSING_ALL_HH
diff --git a/scribo/postprocessing/fill_object_holes.hh
b/scribo/postprocessing/fill_object_holes.hh
index 7dc53eb..43c02ab 100644
--- a/scribo/postprocessing/fill_object_holes.hh
+++ b/scribo/postprocessing/fill_object_holes.hh
@@ -36,7 +36,7 @@
# include <sstream>
-# include <mln/core/concept/image.hh>
+# include <mln/core/image/image2d.hh>
# include <mln/core/alias/neighb2d.hh>
# include <mln/core/routine/extend.hh>
# include <mln/core/image/dmorph/extended.hh>
@@ -160,7 +160,7 @@ namespace scribo
inline
object_groups<L>
fill_object_holes(const object_groups<L>& groups,
- unsigned min_size)
+ unsigned min_size)
{
trace::entering("scribo::postprocessing::impl::generic::fill_object_holes");
@@ -178,7 +178,7 @@ namespace scribo
util::array<bool> bg_comps_done(
static_cast<unsigned>(components.nelements()) + 1, false);
- fun::i2v::array<bool>
+ mln::fun::i2v::array<bool>
to_keep(static_cast<unsigned>(components.nelements()) + 1,
false);
@@ -328,10 +328,11 @@ namespace scribo
{
trace::entering("scribo::postprocessing::fill_object_holes");
+ const I& input = exact(input_);
+
mln_precondition(input.is_valid());
mlc_is(mln_value(I), bool)::check();
- const I& input = exact(input_);
mln_concrete(I) output = duplicate(input);
typedef value::int_u16 L;
diff --git a/scribo/preprocessing/all.hh b/scribo/preprocessing/all.hh
index 93974cf..6f13e07 100644
--- a/scribo/preprocessing/all.hh
+++ b/scribo/preprocessing/all.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2009, 2010 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -41,6 +42,22 @@ namespace scribo
} // end of namespace scribo
-# include <scribo/preprocessing/unskew.hh>
+
+# include <scribo/preprocessing/crop.hh>
+# include <scribo/preprocessing/crop_without_localization.hh>
+
+# include <scribo/preprocessing/denoise.hh>
+# include <scribo/preprocessing/denoise_fg.hh>
+# include <scribo/preprocessing/denoise_bg.hh>
+
+# include <scribo/preprocessing/homogeneous_contrast.hh>
+
+# include <scribo/preprocessing/rotate_90.hh>
+
+# include <scribo/preprocessing/split_bg_fg.hh>
+
+# include <scribo/preprocessing/deskew.hh>
+# include <scribo/preprocessing/deskew_crop.hh>
+
#endif // ! SCRIBO_PREPROCESSING_ALL_HH
diff --git a/scribo/preprocessing/crop_without_localization.hh
b/scribo/preprocessing/crop_without_localization.hh
index 18c5ee7..7346aee 100644
--- a/scribo/preprocessing/crop_without_localization.hh
+++ b/scribo/preprocessing/crop_without_localization.hh
@@ -55,7 +55,8 @@ namespace scribo
*/
template <typename I>
mln_concrete(I)
- crop_without_localization(const Image<I>& input, const mln_box(I)&
domain);
+ crop_without_localization(const Image<I>& input,
+ const mln_box(I)& domain);
# ifndef MLN_INCLUDE_ONLY
@@ -63,7 +64,8 @@ namespace scribo
template <typename I>
mln_concrete(I)
- crop_without_localization(const Image<I>& input, const mln_box(I)&
domain)
+ crop_without_localization(const Image<I>& input,
+ const mln_box(I)& domain)
{
trace::entering("scribo::preprocessing::crop_without_localization");
mln_assertion(exact(input).is_valid());
diff --git a/scribo/preprocessing/denoise_bg.hh b/scribo/preprocessing/denoise_bg.hh
index 14837bb..8ad2d45 100644
--- a/scribo/preprocessing/denoise_bg.hh
+++ b/scribo/preprocessing/denoise_bg.hh
@@ -30,7 +30,7 @@
///
/// Denoise image background.
-# include <mln/core/concept/image.hh>
+# include <mln/core/image/image2d.hh>
# include <mln/core/concept/neighborhood.hh>
# include <mln/core/concept/function.hh>
# include <mln/data/transform.hh>
@@ -113,6 +113,9 @@ namespace scribo
namespace preprocessing
{
+ using namespace mln;
+
+
template <typename I, typename N>
mln_concrete(I)
denoise_bg(const Image<I>& input_, const Neighborhood<N>& nbh_,
diff --git a/scribo/preprocessing/denoise_fg.hh b/scribo/preprocessing/denoise_fg.hh
index 5909164..9701d06 100644
--- a/scribo/preprocessing/denoise_fg.hh
+++ b/scribo/preprocessing/denoise_fg.hh
@@ -30,10 +30,9 @@
///
/// Denoise image foreground.
-# include <mln/core/concept/image.hh>
+# include <mln/core/image/image2d.hh>
# include <mln/core/concept/neighborhood.hh>
# include <mln/core/concept/function.hh>
-# include <mln/data/transform.hh>
# include <mln/accu/math/count.hh>
@@ -42,8 +41,10 @@
# include <mln/util/array.hh>
# include <mln/fun/i2v/array.hh>
-# include <mln/labeling/foreground.hh>
+# include <mln/data/transform.hh>
+
# include <mln/labeling/compute.hh>
+# include <mln/labeling/foreground.hh>
# include <scribo/fun/v2b/label_to_bool.hh>
@@ -73,20 +74,9 @@ namespace scribo
unsigned min_card);
- } // end of namespace scribo::preprocessing
-
-} // end of namespace mln
-
-
# ifndef MLN_INCLUDE_ONLY
-namespace scribo
-{
-
- namespace preprocessing
- {
-
template <typename I, typename N>
mln_concrete(I)
denoise_fg(const Image<I>& input_, const Neighborhood<N>& nbh_,
@@ -99,7 +89,6 @@ namespace scribo
mlc_equal(mln_value(I), bool)::check();
mln_precondition(input.is_valid());
- // FIXME:
unsigned nlabels;
image2d<unsigned> lbl = labeling::foreground(input, nbh, nlabels);
@@ -120,12 +109,10 @@ namespace scribo
return output;
}
+# endif // ! MLN_INCLUDE_ONLY
} // end of namespace scribo::preprocessing
-} // end of namespace mln
-
-
-# endif // ! MLN_INCLUDE_ONLY
+} // end of namespace scribo
# endif // SCRIBO_PREPROCESSING_DENOISE_FG_HH
diff --git a/scribo/preprocessing/deskew.hh b/scribo/preprocessing/deskew.hh
index 27d38a1..81331a7 100644
--- a/scribo/preprocessing/deskew.hh
+++ b/scribo/preprocessing/deskew.hh
@@ -34,9 +34,11 @@
# include <queue>
+
# include <mln/core/image/image2d.hh>
# include <mln/math/pi.hh>
# include <mln/geom/rotate.hh>
+# include <mln/value/int_u8.hh>
# define PI 3.1415926535897932384
diff --git a/scribo/preprocessing/deskew_crop.hh b/scribo/preprocessing/deskew_crop.hh
index 3b15cb1..988e803 100644
--- a/scribo/preprocessing/deskew_crop.hh
+++ b/scribo/preprocessing/deskew_crop.hh
@@ -138,7 +138,7 @@ namespace scribo
// }
-// } // end of namespace scribo::preprocessing::internal
+ } // end of namespace scribo::preprocessing::internal
// Facade
diff --git a/scribo/preprocessing/split_bg_fg.hh b/scribo/preprocessing/split_bg_fg.hh
index 1ad056a..5094f32 100644
--- a/scribo/preprocessing/split_bg_fg.hh
+++ b/scribo/preprocessing/split_bg_fg.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2009, 2010 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
diff --git a/scribo/primitive/extract/all.hh b/scribo/primitive/extract/all.hh
index 5ccb83b..de759e1 100644
--- a/scribo/primitive/extract/all.hh
+++ b/scribo/primitive/extract/all.hh
@@ -50,7 +50,7 @@ namespace scribo
} // end of namespace scribo
# include <scribo/primitive/extract/lines_pattern.hh>
-# include <scribo/primitive/extract/canvas.hh>
+//# include <scribo/primitive/extract/canvas.hh>
# include <scribo/primitive/extract/lines_h_thick.hh>
# include <scribo/primitive/extract/lines_h_single.hh>
# include <scribo/primitive/extract/lines_v_single.hh>
@@ -60,7 +60,7 @@ namespace scribo
# include <scribo/primitive/extract/lines_v_discontinued.hh>
# include <scribo/primitive/extract/lines_h_pattern.hh>
# include <scribo/primitive/extract/components.hh>
-# include <scribo/primitive/extract/cells.hh>
+//# include <scribo/primitive/extract/cells.hh>
# include <scribo/primitive/extract/lines_thick.hh>
# include <scribo/primitive/extract/lines_h_discontinued.hh>
# include <scribo/primitive/extract/lines_v_pattern.hh>
diff --git a/scribo/primitive/extract/lines_h_single.hh
b/scribo/primitive/extract/lines_h_single.hh
index ad6b794..1bff2f4 100644
--- a/scribo/primitive/extract/lines_h_single.hh
+++ b/scribo/primitive/extract/lines_h_single.hh
@@ -33,8 +33,8 @@
# include <mln/core/concept/image.hh>
# include <mln/core/concept/neighborhood.hh>
-# include <mln/win/hline2d.hh>
+# include <scribo/core/component_set.hh>
# include <scribo/primitive/extract/components.hh>
diff --git a/scribo/primitive/extract/lines_pattern.hh
b/scribo/primitive/extract/lines_pattern.hh
index 5f9950a..bc23012 100644
--- a/scribo/primitive/extract/lines_pattern.hh
+++ b/scribo/primitive/extract/lines_pattern.hh
@@ -34,11 +34,13 @@
/// \todo Make a more generic canvas.
# include <mln/core/concept/image.hh>
-# include <mln/core/alias/window2d.hh>
+# include <mln/core/concept/window.hh>
# include <mln/core/routine/duplicate.hh>
# include <mln/extension/adjust_fill.hh>
+# include <mln/geom/ncols.hh>
+
# include <mln/accu/transform_line.hh>
# include <mln/accu/count_value.hh>
diff --git a/scribo/primitive/extract/lines_v_single.hh
b/scribo/primitive/extract/lines_v_single.hh
index c67dfca..67b9f9d 100644
--- a/scribo/primitive/extract/lines_v_single.hh
+++ b/scribo/primitive/extract/lines_v_single.hh
@@ -35,6 +35,8 @@
# include <mln/core/concept/neighborhood.hh>
# include <mln/win/hline2d.hh>
+# include <scribo/core/component_set.hh>
+# include <scribo/primitive/extract/components.hh>
namespace scribo
{
diff --git a/scribo/primitive/group/all.hh b/scribo/primitive/group/all.hh
index 75f0685..b9ad5d3 100644
--- a/scribo/primitive/group/all.hh
+++ b/scribo/primitive/group/all.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2009, 2010 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -50,7 +51,7 @@ namespace scribo
# include <scribo/primitive/group/apply.hh>
# include <scribo/primitive/group/from_double_link.hh>
-# include <scribo/primitive/group/from_graph.hh>
+//# include <scribo/primitive/group/from_graph.hh>
# include <scribo/primitive/group/from_single_link.hh>
diff --git a/scribo/primitive/internal/all.hh b/scribo/primitive/internal/all.hh
index 26f5d5b..1e190d0 100644
--- a/scribo/primitive/internal/all.hh
+++ b/scribo/primitive/internal/all.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2009, 2010 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -49,9 +50,8 @@ namespace scribo
# include <scribo/primitive/internal/is_link_valid.hh>
# include <scribo/primitive/internal/find_root.hh>
-# include <scribo/primitive/internal/find_graph_link.hh>
-# include <scribo/primitive/internal/update_graph_link.hh>
-# include <scribo/primitive/internal/update_link_array.hh>
+//# include <scribo/primitive/internal/find_graph_link.hh>
+//# include <scribo/primitive/internal/update_graph_link.hh>
#endif // ! SCRIBO_PRIMITIVE_INTERNAL_ALL_HH
diff --git a/scribo/primitive/internal/is_link_valid.hh
b/scribo/primitive/internal/is_link_valid.hh
index 5510699..b18e55c 100644
--- a/scribo/primitive/internal/is_link_valid.hh
+++ b/scribo/primitive/internal/is_link_valid.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2009, 2010 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -29,12 +30,11 @@
/// \file
///
/// Validate a link from two different links.
-///
-/// \todo To be deleted ?.
-# include <mln/util/array.hh>
# include <mln/util/couple.hh>
+# include <scribo/core/object_links.hh>
+
namespace scribo
{
diff --git a/scribo/primitive/link/all.hh b/scribo/primitive/link/all.hh
index 7313adb..dbce148 100644
--- a/scribo/primitive/link/all.hh
+++ b/scribo/primitive/link/all.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2009, 2010 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -49,9 +50,9 @@ namespace scribo
-# include <scribo/primitive/link/with_several_graphes.hh>
+//# include <scribo/primitive/link/with_several_graphes.hh>
# include <scribo/primitive/link/with_several_right_links.hh>
-# include <scribo/primitive/link/with_graph.hh>
+//# include <scribo/primitive/link/with_graph.hh>
# include <scribo/primitive/link/with_single_left_link.hh>
# include <scribo/primitive/link/with_several_left_links.hh>
# include <scribo/primitive/link/with_single_right_link.hh>
diff --git a/scribo/primitive/link/internal/compute_anchor.hh
b/scribo/primitive/link/internal/compute_anchor.hh
index b1ca77d..1c52b91 100644
--- a/scribo/primitive/link/internal/compute_anchor.hh
+++ b/scribo/primitive/link/internal/compute_anchor.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2009, 2010 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -31,7 +32,9 @@
/// Routine providing anchors for neighbor seeking.
# include <mln/math/min.hh>
-# include <mln/util/array.hh>
+
+# include <scribo/core/tag/anchor.hh>
+# include <scribo/core/component_set.hh>
namespace scribo
diff --git a/scribo/primitive/link/internal/dmax_functor_base.hh
b/scribo/primitive/link/internal/dmax_functor_base.hh
index 8ff3f10..67a8db4 100644
--- a/scribo/primitive/link/internal/dmax_functor_base.hh
+++ b/scribo/primitive/link/internal/dmax_functor_base.hh
@@ -48,6 +48,8 @@ namespace scribo
namespace internal
{
+ using namespace mln;
+
/// \brief Base class for dmax functors.
template <typename E>
diff --git a/scribo/primitive/regroup/from_single_left_link.hh
b/scribo/primitive/regroup/from_single_left_link.hh
index c90e35c..adb5b06 100644
--- a/scribo/primitive/regroup/from_single_left_link.hh
+++ b/scribo/primitive/regroup/from_single_left_link.hh
@@ -45,7 +45,11 @@
# include <scribo/core/macros.hh>
# include <scribo/core/component_set.hh>
# include <scribo/core/object_links.hh>
+# include <scribo/core/object_groups.hh>
+# include <scribo/primitive/group/apply.hh>
+# include <scribo/primitive/group/from_single_link.hh>
+# include <scribo/primitive/link/with_single_left_link.hh>
# include <scribo/primitive/link/internal/find_link.hh>
# include <scribo/primitive/link/internal/link_single_dmax_base.hh>
diff --git a/scribo/primitive/remove/separators.hh
b/scribo/primitive/remove/separators.hh
index 11e9fee..23d5fd1 100644
--- a/scribo/primitive/remove/separators.hh
+++ b/scribo/primitive/remove/separators.hh
@@ -39,6 +39,8 @@
# include <mln/data/fill.hh>
+# include <mln/border/resize.hh>
+
namespace scribo
{
diff --git a/scribo/subsampling/bilinear.hh b/scribo/subsampling/bilinear.hh
index 534865a..b3d77ee 100644
--- a/scribo/subsampling/bilinear.hh
+++ b/scribo/subsampling/bilinear.hh
@@ -31,6 +31,10 @@
/// Bilinear subsampling.
# include <mln/core/concept/image.hh>
+# include <mln/core/alias/box2d.hh>
+# include <mln/geom/max_col.hh>
+# include <mln/geom/max_row.hh>
+
# include <mln/opt/at.hh>
@@ -40,6 +44,7 @@ namespace scribo
namespace subsampling
{
+ using namespace mln;
template <typename I>
mln_concrete(I)
diff --git a/scribo/tests/Makefile.am b/scribo/tests/Makefile.am
index 4214e37..a6ed969 100644
--- a/scribo/tests/Makefile.am
+++ b/scribo/tests/Makefile.am
@@ -21,11 +21,14 @@ SUBDIRS = \
core \
filter \
preprocessing \
- table \
text \
toolchain \
unit_test
+# Disabled directories:
+#
+# table
+
# Regen files recursively.
include $(top_srcdir)/build-aux/regen-recursive.mk
REGEN_SUBDIRS += unit_test
diff --git a/scribo/tests/core/Makefile.am b/scribo/tests/core/Makefile.am
index a7773ec..cf1c528 100644
--- a/scribo/tests/core/Makefile.am
+++ b/scribo/tests/core/Makefile.am
@@ -1,4 +1,5 @@
-# Copyright (C) 2009 EPITA Research and Development Laboratory (LRDE).
+# Copyright (C) 2009, 2010 EPITA Research and Development Laboratory
+# (LRDE).
#
# This file is part of Olena.
#
@@ -19,9 +20,6 @@
include $(top_srcdir)/scribo/tests/tests.mk
-check_PROGRAMS = \
- object_image
-
-object_image_SOURCES = object_image.cc
+check_PROGRAMS =
TESTS = $(check_PROGRAMS)
diff --git a/scribo/tests/core/object_image.cc b/scribo/tests/core/object_image.cc
deleted file mode 100644
index 9ac6152..0000000
--- a/scribo/tests/core/object_image.cc
+++ /dev/null
@@ -1,72 +0,0 @@
-// Copyright (C) 2009 EPITA Research and Development Laboratory (LRDE)
-//
-// This file is part of Olena.
-//
-// Olena is free software: you can redistribute it and/or modify it under
-// the terms of the GNU General Public License as published by the Free
-// Software Foundation, version 2 of the License.
-//
-// Olena is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Olena. If not, see <http://www.gnu.org/licenses/>.
-//
-// As a special exception, you may use this file as part of a free
-// software project without restriction. Specifically, if other files
-// instantiate templates or use macros or inline functions from this
-// file, or you compile this file and link it with other files to produce
-// an executable, this file does not by itself cause the resulting
-// executable to be covered by the GNU General Public License. This
-// exception does not however invalidate any other reasons why the
-// executable file might be covered by the GNU General Public License.
-
-#include <iostream>
-
-#include <mln/core/image/image2d.hh>
-#include <mln/make/image.hh>
-#include <mln/fun/i2v/array.hh>
-
-#include <scribo/core/object_image.hh>
-
-#include <mln/debug/println.hh>
-
-int main(int argc, char* argv[])
-{
- using namespace mln;
-
- unsigned data[4][4] = { {1, 0, 0, 0},
- {0, 0, 2, 0},
- {3, 0, 0, 0},
- {0, 0, 4, 0} };
-
- typedef image2d<unsigned> I;
- I ima = make::image(data);
-
- object_image(I) lbl(ima, 4);
-
- fun::i2v::array<unsigned> f(5);
- f(0) = 0;
- f(1) = 1;
- f(2) = 4;
- f(3) = 3;
- f(4) = 4;
-
- // { {1, 0, 0, 0},
- // {0, 0, 2, 0},
- // {3, 0, 0, 0},
- // {0, 0, 2, 0} };
- lbl.relabel(f);
-
-
- mln_assertion(lbl.bbox(1) == make::box2d(0, 0, 0,0));
- mln_assertion(lbl.mass_center(1) == point2d(0,0));
-
- mln_assertion(lbl.bbox(2) == make::box2d(1, 2, 3,2));
- mln_assertion(lbl.mass_center(2) == point2d(2,2));
-
- mln_assertion(lbl.bbox(3) == make::box2d(2, 0, 2,0));
- mln_assertion(lbl.mass_center(3) == point2d(2,0));
-}
diff --git a/scribo/tests/filter/objects_with_holes.cc
b/scribo/tests/filter/objects_with_holes.cc
index 5396962..ca852a9 100644
--- a/scribo/tests/filter/objects_with_holes.cc
+++ b/scribo/tests/filter/objects_with_holes.cc
@@ -1,49 +1,62 @@
+// Copyright (C) 2009, 2010 EPITA Research and Development Laboratory
+// (LRDE)
+//
+// This file is part of Olena.
+//
+// Olena is free software: you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation, version 2 of the License.
+//
+// Olena is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Olena. If not, see <http://www.gnu.org/licenses/>.
+//
+// As a special exception, you may use this file as part of a free
+// software project without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to produce
+// an executable, this file does not by itself cause the resulting
+// executable to be covered by the GNU General Public License. This
+// exception does not however invalidate any other reasons why the
+// executable file might be covered by the GNU General Public License.
+
#include <mln/core/image/image2d.hh>
#include <mln/core/alias/neighb2d.hh>
#include <mln/io/pbm/load.hh>
#include <mln/value/label_8.hh>
-
-#include <mln/util/timer.hh>
-#include <mln/labeling/background.hh>
#include <mln/value/label_32.hh>
#include <mln/data/convert.hh>
#include <mln/data/wrap.hh>
-#include <mln/debug/println.hh>
-
-
-
#include <scribo/filter/objects_with_holes.hh>
-#include <scribo/primitive/extract/objects.hh>
+#include <scribo/primitive/extract/components.hh>
+
+#include <scribo/tests/data.hh>
int main(int argc, char *argv[])
{
using namespace mln;
+ using namespace scribo;
- if (argc != 2)
- return 1;
+ std::string img = SCRIBO_IMG_DIR "/text_to_group_and_clean.pbm";
image2d<bool> input;
- io::pbm::load(input, argv[1]);
+ io::pbm::load(input, img.c_str());
value::label_16 nlabels;
- typedef object_image(image2d<value::label_16>) O;
- O objects = scribo::primitive::extract::objects(input, c8(), nlabels);
-
- util::timer timer;
- timer.start();
+ typedef component_set<image2d<value::label_16> > O;
+ O comps = scribo::primitive::extract::components(input, c8(), nlabels);
+ O filtered_comps = scribo::filter::objects_with_holes(comps, 2, 1);
- value::label_16 nbglabels;
- image2d<bool> bin = data::convert(bool(), objects);
- image2d<value::label_16> lbl_bg = labeling::background(bin, c8(), nbglabels);
- float t_ = timer;
- std::cout << t_ << std::endl;
+ unsigned valid_comps = 0;
+ for_all_comps(c, filtered_comps)
+ if (filtered_comps(c).is_valid())
+ ++valid_comps;
- timer.restart();
- O out = scribo::filter::objects_with_holes(objects, 2, 1);
-// debug::println(out);
+ mln_assertion(valid_comps == 8u);
- t_ = timer;
- std::cout << t_ << std::endl;
- io::pgm::save(data::wrap(value::label_8(), out), "out.pgm");
}
diff --git a/scribo/tests/filter/small_and_large_bboxes.cc
b/scribo/tests/filter/small_and_large_bboxes.cc
index 0b10cfe..adae46f 100644
--- a/scribo/tests/filter/small_and_large_bboxes.cc
+++ b/scribo/tests/filter/small_and_large_bboxes.cc
@@ -1,4 +1,5 @@
-// Copyright (C) 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2009, 2010 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -34,12 +35,11 @@
#include <scribo/core/object_image.hh>
-#include <scribo/primitive/extract/objects.hh>
+#include <scribo/primitive/extract/components.hh>
#include <scribo/primitive/group/apply.hh>
-#include <scribo/primitive/link/with_graph.hh>
-#include <scribo/primitive/group/from_graph.hh>
+#include <scribo/primitive/link/with_single_left_link.hh>
+#include <scribo/primitive/group/from_single_link.hh>
#include <scribo/filter/objects_small.hh>
-#include <scribo/util/text.hh>
#include <scribo/make/debug_filename.hh>
#include <scribo/debug/save_bboxes_image.hh>
@@ -47,64 +47,40 @@
#include <scribo/tests/data.hh>
-int usage(const char *name)
-{
- std::cout << "Usage: " << name << " <input.pbm>
" << std::endl;
- return 1;
-}
-
int main(int argc, char* argv[])
{
using namespace scribo;
using namespace mln;
- std::string img;
- if (argc < 2)
- {
- usage(argv[0]);
- img = SCRIBO_IMG_DIR "/text_to_group_and_clean.pbm";
- }
- else
- img = argv[1];
-
- scribo::make::internal::debug_filename_prefix = argv[0];
+ std::string img = SCRIBO_IMG_DIR "/text_to_group_and_clean.pbm";
image2d<bool> input;
io::pbm::load(input, img.c_str());
value::label_16 nbboxes;
typedef image2d<value::label_16> L;
- typedef object_image(L) text_t;
- text_t text = primitive::extract::objects(input, c8(), nbboxes);
+ component_set<L>
+ text = primitive::extract::components(input, c8(), nbboxes);
- mln::util::graph g = primitive::link::with_graph(text, 30);
+ object_links<L> links = primitive::link::with_single_left_link(text, 30);
mln_assertion(nbboxes == 12u);
-// std::cout << "BEFORE - nbboxes = " << nbboxes <<
std::endl;
-// scribo::debug::save_linked_bboxes_image(input,
-// text, g,
-// literal::red, literal::cyan,
-// "test_graph_left_linked.ppm");
- object_groups<L> groups = primitive::group::from_graph(text, g);
+ object_groups<L> groups = primitive::group::from_single_link(links);
- text_t grouped_text = primitive::group::apply(text, groups);
-// std::cout << "AFTER - nbboxes = " <<
grouped_text.nbboxes().next() << std::endl;
-//
-// scribo::debug::save_bboxes_image(input, grouped_text.bboxes(),
-// literal::red,
-// "test_graph_grouped_text.ppm");
+ component_set<L> grouped_comps = primitive::group::apply(groups);
- mln_assertion(grouped_text.nlabels() == 6u);
+ mln_assertion(grouped_comps.nelements() == 6u);
- text_t
- filtered_text = scribo::filter::objects_small(grouped_text, 20);
+ component_set<L>
+ filtered_comps = scribo::filter::components_small(grouped_comps, 20);
- mln_assertion(filtered_text.nlabels() == 2u);
+ unsigned valid_comps = 0;
+ for_all_comps(c, filtered_comps)
+ if (filtered_comps(c).is_valid())
+ ++valid_comps;
-// scribo::debug::save_bboxes_image(input, filtered_text.bboxes(),
-// literal::red,
-// "test_graph_filtered_text.ppm");
+ mln_assertion(valid_comps == 2u);
}
diff --git a/scribo/tests/unit_test/Makefile.am b/scribo/tests/unit_test/Makefile.am
index 8b3e47f..255babf 100644
--- a/scribo/tests/unit_test/Makefile.am
+++ b/scribo/tests/unit_test/Makefile.am
@@ -42,6 +42,38 @@ $(srcdir)/unit-tests.mk: build_unit_test.sh disabled_tests
include $(srcdir)/unit-tests.mk
+
+#FIXME: how to handle that automaticaly during the unit test list
+#generation?
+scribo_convert_from_qimage_CPPFLAGS=\
+ $(QT_CPPFLAGS) $(AM_CPPFLAGS) -I$(srcdir)
+scribo_convert_from_qimage_CXXFLAGS=\
+ $(QT_CXXFLAGS) $(AM_CXXFLAGS)
+scribo_convert_from_qimage_LDFLAGS=\
+ $(QT_LDFLAGS) $(LDFLAGS)
+scribo_convert_from_qimage_LDADD=\
+ $(QT_LIBS) $(LDADD)
+
+scribo_toolchain_nepomuk_text_extraction_CPPFLAGS=\
+ $(QT_CPPFLAGS) $(TESSERACT_CPPFLAGS) $(TIFF_CPPFLAGS) \
+ $(AM_CPPFLAGS) -I$(srcdir)
+scribo_toolchain_nepomuk_text_extraction_CXXFLAGS=\
+ $(QT_CXXFLAGS) $(AM_CXXFLAGS)
+scribo_toolchain_nepomuk_text_extraction_LDFLAGS=\
+ $(QT_LDFLAGS) $(TESSERACT_LDFLAGS) $(TIFF_LDFLAGS) \
+ $(LDFLAGS)
+scribo_toolchain_nepomuk_text_extraction_LDADD=\
+ $(QT_LIBS) $(LDADD)
+
+scribo_text_recognition_CPPFLAGS=\
+ $(TESSERACT_CPPFLAGS) $(TIFF_CPPFLAGS) \
+ $(AM_CPPFLAGS) -I$(srcdir)
+scribo_text_recognition_LDFLAGS=\
+ $(TESSERACT_LDFLAGS) $(TIFF_LDFLAGS) \
+ $(LDFLAGS)
+
+
+
MAINTAINERCLEANFILES = $(srcdir)/scribo_*.cc
TESTS = $(check_PROGRAMS)
diff --git a/scribo/text/merging.hh b/scribo/text/merging.hh
index c7ad3b3..36d41c2 100644
--- a/scribo/text/merging.hh
+++ b/scribo/text/merging.hh
@@ -57,7 +57,7 @@
#include <mln/data/wrap.hh>
#include <mln/util/timer.hh>
-#include <text/look_like_text_lines.hh>
+#include <scribo/text/look_like_text_lines.hh>
namespace scribo
diff --git a/scribo/toolchain/nepomuk/text_extraction.hh
b/scribo/toolchain/nepomuk/text_extraction.hh
index ed486f5..b3136be 100644
--- a/scribo/toolchain/nepomuk/text_extraction.hh
+++ b/scribo/toolchain/nepomuk/text_extraction.hh
@@ -32,8 +32,11 @@
/// Extract text from a document.
+# include <QtCore/QSet>
# include <QtCore/QString>
# include <QtCore/QStringList>
+# include <QtCore/QTextStream>
+# include <QtCore/QTextCodec>
# include <QtGui/QImage>
# include <mln/core/image/image2d.hh>
diff --git a/scribo/upsampling/eagle.hh b/scribo/upsampling/eagle.hh
index eab1989..6652156 100644
--- a/scribo/upsampling/eagle.hh
+++ b/scribo/upsampling/eagle.hh
@@ -32,6 +32,10 @@
# include <mln/core/concept/image.hh>
# include <mln/core/def/coord.hh>
+# include <mln/geom/min_row.hh>
+# include <mln/geom/min_col.hh>
+# include <mln/geom/max_row.hh>
+# include <mln/geom/max_col.hh>
# include <mln/opt/at.hh>
# include <mln/make/box2d.hh>
--
1.5.6.5