last-svn-commit-427-g26c8584 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. --- 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@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@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-16\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://schema.primaresearch.org/PAGE/gts/pagecontent/2009-03-16 http://schema.primaresearch.org/PAGE/gts/pagecontent/2009-03-16/pagecontent.xsd\" 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
participants (1)
-
Guillaume Lazzara