LRE
Sign In
Sign Up
Sign In
Sign Up
Manage this list
×
Keyboard Shortcuts
Thread View
j
: Next unread message
k
: Previous unread message
j a
: Jump to all threads
j l
: Jump to MailingList overview
2025
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
List overview
Download
Olena-patches
----- 2025 -----
July 2025
June 2025
May 2025
April 2025
March 2025
February 2025
January 2025
----- 2024 -----
December 2024
November 2024
October 2024
September 2024
August 2024
July 2024
June 2024
May 2024
April 2024
March 2024
February 2024
January 2024
----- 2023 -----
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
----- 2022 -----
December 2022
November 2022
October 2022
September 2022
August 2022
July 2022
June 2022
May 2022
April 2022
March 2022
February 2022
January 2022
----- 2021 -----
December 2021
November 2021
October 2021
September 2021
August 2021
July 2021
June 2021
May 2021
April 2021
March 2021
February 2021
January 2021
----- 2020 -----
December 2020
November 2020
October 2020
September 2020
August 2020
July 2020
June 2020
May 2020
April 2020
March 2020
February 2020
January 2020
----- 2019 -----
December 2019
November 2019
October 2019
September 2019
August 2019
July 2019
June 2019
May 2019
April 2019
March 2019
February 2019
January 2019
----- 2018 -----
December 2018
November 2018
October 2018
September 2018
August 2018
July 2018
June 2018
May 2018
April 2018
March 2018
February 2018
January 2018
----- 2017 -----
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
February 2017
January 2017
----- 2016 -----
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
----- 2015 -----
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
----- 2014 -----
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
----- 2013 -----
December 2013
November 2013
October 2013
September 2013
August 2013
July 2013
June 2013
May 2013
April 2013
March 2013
February 2013
January 2013
----- 2012 -----
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
May 2012
April 2012
March 2012
February 2012
January 2012
----- 2011 -----
December 2011
November 2011
October 2011
September 2011
August 2011
July 2011
June 2011
May 2011
April 2011
March 2011
February 2011
January 2011
----- 2010 -----
December 2010
November 2010
October 2010
September 2010
August 2010
July 2010
June 2010
May 2010
April 2010
March 2010
February 2010
January 2010
----- 2009 -----
December 2009
November 2009
October 2009
September 2009
August 2009
July 2009
June 2009
May 2009
April 2009
March 2009
February 2009
January 2009
----- 2008 -----
December 2008
November 2008
October 2008
September 2008
August 2008
July 2008
June 2008
May 2008
April 2008
March 2008
February 2008
January 2008
----- 2007 -----
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
February 2007
January 2007
----- 2006 -----
December 2006
November 2006
October 2006
September 2006
August 2006
July 2006
June 2006
May 2006
April 2006
March 2006
February 2006
January 2006
----- 2005 -----
December 2005
November 2005
October 2005
September 2005
August 2005
July 2005
June 2005
May 2005
April 2005
March 2005
February 2005
January 2005
----- 2004 -----
December 2004
November 2004
October 2004
September 2004
August 2004
July 2004
June 2004
May 2004
April 2004
March 2004
olena-patches@lrde.epita.fr
9625 discussions
Start a n
N
ew thread
last-svn-commit-478-g588dbb4 Small fix in Qt interface.
by Arthur Crepin-Leblond
* scribo/demo/viewer/viewer.cc, * scribo/demo/viewer/image_region.hxx: Disable item click if unchecked in item list. * scribo/demo/viewer/key_widget.cc, * scribo/demo/viewer/key_widget.hh: Add KeyWidget::checkAll. --- scribo/ChangeLog | 61 +++++++++++++++++++++++++++++++++++ scribo/demo/viewer/image_region.hxx | 1 + scribo/demo/viewer/key_widget.cc | 9 +++++ scribo/demo/viewer/key_widget.hh | 1 + scribo/demo/viewer/viewer.cc | 42 ++++++++++++----------- 5 files changed, 94 insertions(+), 20 deletions(-) diff --git a/scribo/ChangeLog b/scribo/ChangeLog index 2dd5cb4..857484e 100644 --- a/scribo/ChangeLog +++ b/scribo/ChangeLog @@ -1,3 +1,64 @@ +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: Chnage 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-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-07-05 Arthur Crepin-Leblond <crepin(a)stockholm.lrde.epita.fr> + + Small fix in Qt interface. + + * scribo/demo/viewer/viewer.cc, + * scribo/demo/viewer/image_region.hxx: Disable item click if + unchecked in item list. + + * scribo/demo/viewer/key_widget.cc, + * scribo/demo/viewer/key_widget.hh: Add KeyWidget::checkAll. + + 2010-08-13 Guillaume Lazzara <z(a)lrde.epita.fr> * scribo/debug/text_areas_image.hh: Add a typedef to help g++-3.3. diff --git a/scribo/demo/viewer/image_region.hxx b/scribo/demo/viewer/image_region.hxx index 50dc93d..efcf493 100644 --- a/scribo/demo/viewer/image_region.hxx +++ b/scribo/demo/viewer/image_region.hxx @@ -58,6 +58,7 @@ ImageRegion::setDrawIfSameId(int id, bool draw) if (id == id_) { draw_ = draw; + setVisible(draw); if (scene()) { scene()->invalidate(); diff --git a/scribo/demo/viewer/key_widget.cc b/scribo/demo/viewer/key_widget.cc index 93c2cf0..5e371ab 100644 --- a/scribo/demo/viewer/key_widget.cc +++ b/scribo/demo/viewer/key_widget.cc @@ -36,6 +36,15 @@ KeyWidget::KeyWidget(const region::KeyMap& key_map) this, SLOT(update(QListWidgetItem*))); } +void KeyWidget::checkAll() +{ + for (int i = 0; i < items_->count(); ++i) + { + items_->item(i)->setCheckState(Qt::Checked); + emit updated(i, true); + } +} + void KeyWidget::change_mode(bool b) { diff --git a/scribo/demo/viewer/key_widget.hh b/scribo/demo/viewer/key_widget.hh index e5259e2..71200c8 100644 --- a/scribo/demo/viewer/key_widget.hh +++ b/scribo/demo/viewer/key_widget.hh @@ -27,6 +27,7 @@ public: KeyWidget(const region::KeyMap& key_map); ~KeyWidget(); + void checkAll(); bool isChecked(region::RegionId id); signals: diff --git a/scribo/demo/viewer/viewer.cc b/scribo/demo/viewer/viewer.cc index 8bafc39..61a57c1 100644 --- a/scribo/demo/viewer/viewer.cc +++ b/scribo/demo/viewer/viewer.cc @@ -138,8 +138,8 @@ Viewer::Viewer(int &argc, char** argv) XmlWidget* xml_wgt = new XmlWidget(); BrowserWidget* browser_wgt = new BrowserWidget(files_, argc != 2 ? QString() : argv[1]); - ImageWidget* image_wgt = new ImageWidget(scene_); key_wgt_ = new KeyWidget(key_map_); + ImageWidget* image_wgt = new ImageWidget(scene_); scene_->setBackgroundBrush(scene_->palette().window()); @@ -212,7 +212,7 @@ Viewer::load_xml(QString filename) scene_->removeItem(image_); scene_->clear(); scene_->addItem(image_); - + scene_->update(); if (doc_layout_) @@ -220,9 +220,9 @@ Viewer::load_xml(QString filename) doc_layout_->deleteLater(); doc_layout_ = 0; } - + emit updated(doc_layout_); - + if (QFile::exists(xml_file)) { QFile file(xml_file); @@ -267,11 +267,11 @@ Viewer::xml_to_layout() attributes = doc_layout_->index(i, 1, page); QString name = doc_layout_->data(region, Qt::DisplayRole).toString(); region::RegionId id = static_cast<region::RegionId>(region_ids_[name]); - + coords = doc_layout_->index(0, 0, region); if (!region.isValid() || !coords.isValid()) break; - + QVector<QPoint> points; for (int j = 0; true; ++j) { @@ -279,14 +279,14 @@ Viewer::xml_to_layout() point = doc_layout_->index(j, 1, coords); if (!point.isValid()) break; - + QMap<QString, QVariant> data = doc_layout_->data(point, Qt::UserRole).toMap(); int x = data["x"].toInt(); int y = data["y"].toInt(); points << QPoint(x, y); } - + // Create region ImageRegion* r = new ImageRegion(id, key_map_[id].first, @@ -296,7 +296,7 @@ Viewer::xml_to_layout() fill_action_->isChecked(), precise_action_->isChecked(), key_wgt_->isChecked(id)); - + connect(this, SIGNAL(key_updated(int, bool)), r, SLOT(setDrawIfSameId(int, bool))); connect(this, SIGNAL(setOutline(bool)), @@ -305,7 +305,7 @@ Viewer::xml_to_layout() r, SLOT(setPrecise(bool))); connect(this, SIGNAL(setFill(bool)), r, SLOT(setFill(bool))); - + scene_->addItem(r); // EXTENDED MODE @@ -325,6 +325,7 @@ Viewer::xml_to_layout() QModelIndex par_coords = doc_layout_->index(0, 0, paragraph); QModelIndex point_par; + QVector<QPoint> points_par; for (int m = 0; true; ++m) { @@ -332,7 +333,7 @@ Viewer::xml_to_layout() point_par = doc_layout_->index(m, 1, par_coords); if (!point_par.isValid()) break; - + QMap<QString, QVariant> data_par = doc_layout_->data(point_par, Qt::UserRole).toMap(); int x = data_par["x"].toInt(); @@ -349,7 +350,7 @@ Viewer::xml_to_layout() fill_action_->isChecked(), precise_action_->isChecked(), key_wgt_->isChecked(id_par)); - + connect(this, SIGNAL(key_updated(int, bool)), r_par, SLOT(setDrawIfSameId(int, bool))); connect(this, SIGNAL(setOutline(bool)), @@ -360,7 +361,7 @@ Viewer::xml_to_layout() r_par, SLOT(setFill(bool))); scene_->addItem(r_par); - + for (int l = 1; true; ++l) { QModelIndex line = doc_layout_->index(l, 0, paragraph); @@ -370,7 +371,7 @@ Viewer::xml_to_layout() QString name_line = doc_layout_->data(line, Qt::DisplayRole).toString(); region::RegionId id_line = static_cast<region::RegionId>(region_ids_[name_line]); - + QModelIndex line_coords = doc_layout_->index(0, 0, line); QModelIndex point_line; QVector<QPoint> points_line; @@ -380,14 +381,14 @@ Viewer::xml_to_layout() point_line = doc_layout_->index(n, 1, line_coords); if (!point_line.isValid()) break; - + QMap<QString, QVariant> data_line = doc_layout_->data(point_line, Qt::UserRole).toMap(); int x = data_line["x"].toInt(); int y = data_line["y"].toInt(); points_line << QPoint(x, y); } - + // Create region ImageRegion* r_line = new ImageRegion(id_line, key_map_[id_line].first, @@ -397,7 +398,7 @@ Viewer::xml_to_layout() fill_action_->isChecked(), precise_action_->isChecked(), key_wgt_->isChecked(id_line)); - + connect(this, SIGNAL(key_updated(int, bool)), r_line, SLOT(setDrawIfSameId(int, bool))); connect(this, SIGNAL(setOutline(bool)), @@ -409,12 +410,12 @@ Viewer::xml_to_layout() scene_->addItem(r_line); } - } + } } // END OF EXTENDED MODE - + } - + emit updated(doc_layout_); } } @@ -481,6 +482,7 @@ Viewer::maybeChangeCacheMode(qreal scale) void Viewer::useExtended(bool b) { extended_mode_ = b; + key_wgt_->checkAll(); if (xml_file_ != QString("")) load_xml(xml_file_); -- 1.5.6.5
14Â years, 10Â months
1
0
0
0
last-svn-commit-479-g7b391fb ICDAR XML to HTML.
by Arthur Crepin-Leblond
* arthur/xml_to_html/domitem.cc, * arthur/xml_to_html/domitem.hh., * arthur/xml_to_html/dommodel.cc, * arthur/xml_to_html/dommodel.hh: XML parsing. * arthur/xml_to_html/patterns/css.css, * arthur/xml_to_html/patterns/xsl.xsl: HTML patterns. * arthur/xml_to_html/xml_to_html.cc, * arthur/xml_to_html/xml_to_html.hh: Image cropingd XML merging. * arthur/xml_to_html/README * arthur/xml_to_html/xml_to_html.pro * arthur/xml_to_html/main.cc --- scribo/sandbox/ChangeLog | 19 ++ scribo/sandbox/arthur/xml_to_html/README | 25 ++ .../arthur/xml_to_html}/domitem.cc | 0 .../arthur/xml_to_html}/domitem.hh | 0 .../arthur/xml_to_html}/dommodel.cc | 0 .../arthur/xml_to_html}/dommodel.hh | 0 scribo/sandbox/arthur/xml_to_html/main.cc | 58 ++++ scribo/sandbox/arthur/xml_to_html/patterns/css.css | 28 ++ scribo/sandbox/arthur/xml_to_html/patterns/xsl.xsl | 229 +++++++++++++++ scribo/sandbox/arthur/xml_to_html/xml_to_html.cc | 292 ++++++++++++++++++++ .../arthur/xml_to_html/xml_to_html.hh} | 40 +-- scribo/sandbox/arthur/xml_to_html/xml_to_html.pro | 16 + 12 files changed, 683 insertions(+), 24 deletions(-) create mode 100644 scribo/sandbox/arthur/xml_to_html/README copy scribo/{demo/viewer => sandbox/arthur/xml_to_html}/domitem.cc (100%) copy scribo/{demo/viewer => sandbox/arthur/xml_to_html}/domitem.hh (100%) copy scribo/{demo/viewer => sandbox/arthur/xml_to_html}/dommodel.cc (100%) copy scribo/{demo/viewer => sandbox/arthur/xml_to_html}/dommodel.hh (100%) create mode 100644 scribo/sandbox/arthur/xml_to_html/main.cc create mode 100644 scribo/sandbox/arthur/xml_to_html/patterns/css.css create mode 100644 scribo/sandbox/arthur/xml_to_html/patterns/xsl.xsl create mode 100644 scribo/sandbox/arthur/xml_to_html/xml_to_html.cc copy scribo/{demo/viewer/step_widget.hh => sandbox/arthur/xml_to_html/xml_to_html.hh} (73%) create mode 100644 scribo/sandbox/arthur/xml_to_html/xml_to_html.pro diff --git a/scribo/sandbox/ChangeLog b/scribo/sandbox/ChangeLog index f428dce..d3f537b 100644 --- a/scribo/sandbox/ChangeLog +++ b/scribo/sandbox/ChangeLog @@ -1,3 +1,22 @@ +2010-07-05 Arthur Crepin-Leblond <crepin(a)stockholm.lrde.epita.fr> + + ICDAR XML to HTML. + + * arthur/xml_to_html/domitem.cc, + * arthur/xml_to_html/domitem.hh., + * arthur/xml_to_html/dommodel.cc, + * arthur/xml_to_html/dommodel.hh: XML parsing. + + * arthur/xml_to_html/patterns/css.css, + * arthur/xml_to_html/patterns/xsl.xsl: HTML patterns. + + * arthur/xml_to_html/xml_to_html.cc, + * arthur/xml_to_html/xml_to_html.hh: Image croping and XML merging. + + * arthur/xml_to_html/README + * arthur/xml_to_html/xml_to_html.pro + * arthur/xml_to_html/main.cc + 2010-06-25 Guillaume Lazzara <z(a)lrde.epita.fr> Add algorithms to retrieve white spaces. diff --git a/scribo/sandbox/arthur/xml_to_html/README b/scribo/sandbox/arthur/xml_to_html/README new file mode 100644 index 0000000..f16f472 --- /dev/null +++ b/scribo/sandbox/arthur/xml_to_html/README @@ -0,0 +1,25 @@ +xml_to_html + +Produce HTML view from ICDAR (or LRDE extended) XML. + +*Compilation: + + Just change the paths to olena and milena in xml_to_html.pro + +*Usage: + + -m, --merge: Merge an XML with an other XML + args: <xml_file_1> <xml_file_2> [xml_output] + +Useful to merge LRDE XML extended mode files with ICDAR XML files to combine both images and recognized text. + + + -c, --create-html: Crop images (if exist) from the ppm file using the XML file and produce an html output. + args: <xml_file> [ppm_file] [output dir] + +If no PPM file is given, the program will only produce an HTML output without images. +If a PPM file is given, the program will crop image_region, separator_region, graphic_regions, chart_region and table_region to output_dir/img/id.png + +*Result: + +To view the result run your internet browser on output_dir/output.xml (Does not work with Chrome on local, use a LAMPP server to fix this ;-) ). \ No newline at end of file diff --git a/scribo/demo/viewer/domitem.cc b/scribo/sandbox/arthur/xml_to_html/domitem.cc similarity index 100% copy from scribo/demo/viewer/domitem.cc copy to scribo/sandbox/arthur/xml_to_html/domitem.cc diff --git a/scribo/demo/viewer/domitem.hh b/scribo/sandbox/arthur/xml_to_html/domitem.hh similarity index 100% copy from scribo/demo/viewer/domitem.hh copy to scribo/sandbox/arthur/xml_to_html/domitem.hh diff --git a/scribo/demo/viewer/dommodel.cc b/scribo/sandbox/arthur/xml_to_html/dommodel.cc similarity index 100% copy from scribo/demo/viewer/dommodel.cc copy to scribo/sandbox/arthur/xml_to_html/dommodel.cc diff --git a/scribo/demo/viewer/dommodel.hh b/scribo/sandbox/arthur/xml_to_html/dommodel.hh similarity index 100% copy from scribo/demo/viewer/dommodel.hh copy to scribo/sandbox/arthur/xml_to_html/dommodel.hh diff --git a/scribo/sandbox/arthur/xml_to_html/main.cc b/scribo/sandbox/arthur/xml_to_html/main.cc new file mode 100644 index 0000000..9ec705a --- /dev/null +++ b/scribo/sandbox/arthur/xml_to_html/main.cc @@ -0,0 +1,58 @@ +#include <iostream> +#include "xml_to_html.hh" + +int main(int argc, char **argv) +{ + + std::string man; + man = "xml_to_html: ...usage\n -m, --merge: Merge an XML with an other XML\n \targs: <xml_file_1> <xml_file_2> [xml_output]\n\n -c, --create-html: Crop images (if exist) from the ppm file using the XML file and produce an html output.\n \targs: <xml_file> [ppm_file] [output dir]\n"; + + if (argc > 2) + { + new QApplication::QApplication(argc, argv, false); + ImageCrop crop; + + std::string merge = "--merge"; + std::string m = "-m"; + std::string scrop = "--create-html"; + std::string c = "-c"; + + if (argc == 3 && (scrop.compare(argv[1]) == 0 || c.compare(argv[1]) == 0)) + { + bool b = false; + b = crop.load_xml(argv[2], QString::Null()); + + if (b) + crop.find_image_regions(); + } + else if (argc > 3) + { + if (merge.compare(argv[1]) == 0 || m.compare(argv[1]) == 0) + { + if (argc > 4) + crop.merge(argv[2], argv[3], argv[4]); + else + crop.merge(argv[2], argv[3]); + } + else if (scrop.compare(argv[1]) == 0 || c.compare(argv[1]) == 0) + { + bool b = false; + if (argc > 4) + b = crop.load_xml(argv[2], argv[3], argv[4]); + else + b = crop.load_xml(argv[2], argv[3]); + + if (b) + crop.find_image_regions(); + } + else + std::cout << man; + } + else + std::cout << man; + } + else + std::cout << man; + + return 0; +} diff --git a/scribo/sandbox/arthur/xml_to_html/patterns/css.css b/scribo/sandbox/arthur/xml_to_html/patterns/css.css new file mode 100644 index 0000000..7171754 --- /dev/null +++ b/scribo/sandbox/arthur/xml_to_html/patterns/css.css @@ -0,0 +1,28 @@ +.line +{ + position:absolute; + background-color:white; + z-index:7; + display:inline; + white-space:pre; + letter-spacing:-2px; + padding:0px; + margin:0px; + filter:alpha(opacity=100); + font-family:"Times New Roman", Times, serif; +} +.para +{ + position:absolute; + z-index:6; +} +.region +{ + position:absolute; + z-index:5; +} +.image +{ + position:absolute; + border:0; +} \ No newline at end of file diff --git a/scribo/sandbox/arthur/xml_to_html/patterns/xsl.xsl b/scribo/sandbox/arthur/xml_to_html/patterns/xsl.xsl new file mode 100644 index 0000000..aa5a078 --- /dev/null +++ b/scribo/sandbox/arthur/xml_to_html/patterns/xsl.xsl @@ -0,0 +1,229 @@ +<?xml version="1.0"?> +<xsl:stylesheet version="1.0" xmlns:xsl="
http://www.w3.org/1999/XSL/Transform
"> + + <xsl:template match="/"> <!-- "/" means the whole document (root) --> + <html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <title>Fooooooo !</title> + <link rel="stylesheet" type="text/css" href="css.css" /> + </head> + <body> + + <div class="image" style="top:0px;left:0px;"> + <img src="../../ppm/mp00076.png" /> + </div> + + <!-- BEGIN IMAGE REGION --> + <xsl:for-each select="pcGts/page/graphic_region| + pcGts/page/image_region| + 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"> + + <!-- y1 --> + <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> + + <!-- x2 --> + <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> + + <!-- y2 --> + <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> + + <!-- x1 --> + <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> + + <!-- TEXT LINE--> + <xsl:if test="name() = 'line'"> + + <xsl:variable name="x_height"> + <xsl:value-of select="../../@x_height" /> + </xsl:variable> + + <xsl:variable name="a_height"> + <xsl:value-of select="../../@a_height" /> + </xsl:variable> + + <xsl:variable name="colour"> + <xsl:choose> + <xsl:when test="../../@txt_colour != ''"> + <xsl:value-of select="../../@txt_colour" /> + </xsl:when> + <xsl:otherwise> + Black + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + + <xsl:variable name="d_height_tmp"> + <xsl:value-of select="../../@d_height" /> + </xsl:variable> + + <xsl:variable name="d_height"> + <xsl:choose> + <xsl:when test="$d_height_tmp < 0"> + <xsl:value-of select="-$d_height_tmp" /> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$d_height_tmp" /> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + + <xsl:variable name="a"> + <xsl:choose> + <xsl:when test="($a_height - $x_height) < $d_height"> + <xsl:value-of select="$x_height + $d_height" /> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$a_height" /> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + + <xsl:variable name="d"> + <xsl:choose> + <xsl:when test="($a_height - $x_height) > $d_height"> + <xsl:value-of select="-($a_height - $x_height)" /> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$d_height" /> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + + <xsl:variable name="d_f"> + <xsl:choose> + <xsl:when test="$d < 0"> + <xsl:value-of select="-$d" /> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$d" /> + </xsl:otherwise> + </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"> + <xsl:attribute name="style"> + opacity:1; + height:auto; + font-size:<xsl:value-of select="$a+$d_f" />px; + width:<xsl:value-of select="$x2 - $x1" />px; + left:<xsl:value-of select="$x1 " />px; + top:<xsl:value-of select="$y1 " />px; + color:<xsl:value-of select="$colour" />; + </xsl:attribute> + <xsl:value-of select="@text"/> + </div> + </xsl:if> + <!-- ENF OF TEXT LINE --> + + <!-- TEXT REGION --> + <xsl:if test="name() = 'text_region'"> + <div class="region"> + <xsl:attribute name="style"> + height:<xsl:value-of select="$y2 - $y1" />px; + width:<xsl:value-of select="$x2 - $x1" />px; + left:<xsl:value-of select="$x1" />px; + top:<xsl:value-of select="$y1" />px; + </xsl:attribute> + </div> + </xsl:if> + <!-- ENF OF TEXT REGION --> + + <!-- PARAGRAPH --> + <xsl:if test="name() = 'paragraph'"> + <div class="para"> + <xsl:attribute name="style"> + height:<xsl:value-of select="$y2 - $y1" />px; + width:<xsl:value-of select="$x2 - $x1" />px; + left:<xsl:value-of select="$x1" />px; + top:<xsl:value-of select="$y1" />px; + </xsl:attribute> + </div> + </xsl:if> + <!-- ENF OF PARAGRAPH --> + + <!-- NON-TEXT REGIONS --> + <xsl:if test="name() = 'image_region' or name() = 'separator_region' or name() = 'graphic_region' or name() = 'chart_region' or name() = 'table_region'"> + + <!-- id --> + <xsl:variable name="id"> + <xsl:value-of select="@id" /> + </xsl:variable> + + <!-- depth --> + <xsl:variable name="depth"> + <xsl:choose> + <xsl:when test="name() = 'separator_region'"> + 1 + </xsl:when> + <xsl:otherwise> + 4 + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + + <div class="image"> + <xsl:attribute name="style"> + top:<xsl:value-of select="$y1" />px; + left:<xsl:value-of select="$x1" />px; + width:<xsl:value-of select="$x2 - $x1"/>px; + height:<xsl:value-of select="$y2 - $y1"/>px; + z-index:<xsl:value-of select="$depth"/>; + </xsl:attribute> + <img> + <xsl:attribute name="alt"> + <xsl:value-of select="name()" /> + </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="src"> + img/<xsl:value-of select="$id"/>.png</xsl:attribute> + </img> + </div> + + </xsl:if> + <!-- END NON-TEXT REGIONS --> + </xsl:for-each> + </body> + </html> + </xsl:template> + +</xsl:stylesheet> diff --git a/scribo/sandbox/arthur/xml_to_html/xml_to_html.cc b/scribo/sandbox/arthur/xml_to_html/xml_to_html.cc new file mode 100644 index 0000000..8267466 --- /dev/null +++ b/scribo/sandbox/arthur/xml_to_html/xml_to_html.cc @@ -0,0 +1,292 @@ +// Copyright (C) 2010 EPITA Research and Development Laboratory (LRDE) +// +// This file is part of Olena. +// +// Olena is free software: you can redistribute it and/or modify it under +// the terms of the GNU General Public License as published by the Free +// Software Foundation, version 2 of the License. +// +// Olena is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Olena. If not, see <
http://www.gnu.org/licenses/
>. +// +// As a special exception, you may use this file as part of a free +// software project without restriction. Specifically, if other files +// instantiate templates or use macros or inline functions from this +// file, or you compile this file and link it with other files to produce +// an executable, this file does not by itself cause the resulting +// executable to be covered by the GNU General Public License. This +// exception does not however invalidate any other reasons why the +// executable file might be covered by the GNU General Public License. + +# include "xml_to_html.hh" +# include "dommodel.hh" +# include <limits.h> + +#include <scribo/preprocessing/crop.hh> +#include <mln/value/rgb8.hh> +#include <mln/core/alias/box2d.hh> +#include <mln/core/image/image2d.hh> +#include <mln/io/magick/save.hh> +#include <mln/io/ppm/all.hh> + +ImageCrop::ImageCrop(): + regions_(false) +{ +} + +ImageCrop::~ImageCrop() +{ +} + +void ImageCrop::merge(QString in, QString other, QString output) +{ + if (in.endsWith(".xml") && other.endsWith(".xml") && output.endsWith(".xml")) + { + QFile f_in(in); + QFile f_other(other); + QFile f_output(output); + + qDebug() << "Merging to " << output << "..."; + + f_in.open(QIODevice::ReadOnly); + f_other.open(QIODevice::ReadOnly); + f_output.open(QIODevice::ReadWrite); + + QTextStream stream_in(&f_in); + QTextStream stream_other(&f_other); + QTextStream output_stream(&f_output); + + QString line = stream_in.readLine(); + output_stream << line; + line = stream_in.readLine(); + + while (!line.contains("</page>")) + { + output_stream << "\n" << line; + line = stream_in.readLine(); + } + + line = stream_other.readLine(); + + while (!line.contains("<page")) + line = stream_other.readLine(); + + line = stream_other.readLine(); + + while (!line.contains("</pcGts>")) + { + output_stream << "\n" << line; + line = stream_other.readLine(); + } + + output_stream << "\n" << line; + + f_in.close(); + f_other.close(); + f_output.close(); + } + else + std::cout << "merge : error, only xml files are needed." << std::endl; +} + +bool ImageCrop::load_xml(QString xml_file, QString image_file, QString path) +{ + if (xml_file.endsWith(".xml") && (image_file.endsWith(".ppm") || image_file == QString::Null()) ) + { + image_file_ = image_file; + regions_ = (image_file != QString::Null()); + + path_ = path; + if (!path_.endsWith("/")) + path_.append("/"); + + QDir dir(path_); + + if (!dir.mkpath("img")) + { + path_ = "output/"; + dir.mkpath(path_); + dir.setPath(path_); + dir.mkpath("img"); + } + + if (QFile::exists(xml_file)) + { + QFile file(xml_file); + QFile output(path_ + "output.xml"); + QFile xsl("patterns/xsl.xsl"); + QFile css("patterns/css.css"); + xsl.copy(path_ + "xsl.xsl"); + css.copy(path_ + "css.css"); + + if (QFile::exists(path_ + "output.xml")) + output.remove(); + + output.open(QIODevice::ReadWrite); + file.open(QIODevice::ReadOnly); + + QTextStream stream_in(&file); + QTextStream stream_out(&output); + stream_in.setCodec("UTF-8"); + stream_out.setCodec("UTF-8"); + + QString line = stream_in.readLine(); + stream_out << line; + stream_out << "\n<?xml-stylesheet type=\"text/xsl\" href=\"xsl.xsl\" ?>"; + + // /!\ attributes of ICDAR PcGts removed. + line = stream_in.readLine(); + stream_out << "\n<pcGts>"; + + line = stream_in.readLine(); + + while (!line.contains("</pcGts>")) + { + stream_out << "\n" << line; + line = stream_in.readLine(); + } + + stream_out << "\n" << line; + + output.close(); + file.close(); + + qDebug() << "Output saved to " + path_; + + if (file.open(QIODevice::ReadOnly)) + { + QDomDocument document; + if (document.setContent(&file)) + { + layout_ = new DomModel(document, this); + } + else + qDebug() << "Error while loading the XML file, please choose another."; + + file.close(); + } + } + return true; + } + else + { + std::cout << "Wrong files format !" << std::endl; + return false; + } +} + +void ImageCrop::find_image_regions() +{ + if (layout_ && regions_) + { + QModelIndex pgGts = layout_->index(1, 0); + QModelIndex page = layout_->index(1, 0, pgGts); + QModelIndex region; + QModelIndex attributes; + QModelIndex coords; + QModelIndex point; + bool regions_found = false; + for (int i = 0; true; ++i) + { + region = layout_->index(i, 0, page); + attributes = layout_->index(i, 1, page); + QString name = layout_->data(region, Qt::DisplayRole).toString(); + coords = layout_->index(0, 0, region); + + bool is_image_region = name == QString("image_region") + || name == QString("graphic_region") + || name == QString("separator_region") + || name == QString("chart_region") + || name == QString("table_region") ; + + if (!region.isValid() || !coords.isValid()) + break; + + if (is_image_region) + { + + regions_found = true; + QMap<QString, QVariant> data = + layout_->data(attributes, Qt::UserRole).toMap(); + + QString id; + QMap<QString, QVariant>::iterator it = data.find("id"); + + if (it == data.end() || it.key() != "id") + qDebug() << "No image region."; + + while (it != data.end() && it.key() == "id") + { + qDebug() << name; + id = it.value().toString(); + qDebug() << it.key() + " = " + it.value().toString(); + ++it; + } + + int x_max = 0; + int y_max = 0; + int x_min = INT_MAX; + int y_min = INT_MAX; + + // QVector<QMap<QString, QVariant> > vect; + for (int j = 0; true; ++j) + { + // Navigate to the coordinate list + point = layout_->index(j, 1, coords); + if (!point.isValid()) + break; + + QMap<QString, QVariant> data = + layout_->data(point, Qt::UserRole).toMap(); + int x = data["x"].toInt(); + int y = data["y"].toInt(); + + // vect << data; + + if (x < x_min) + x_min = x; + if (x > x_max) + x_max = x; + + if (y < y_min) + y_min = y; + if (y > y_max) + y_max = y; + + } + + using namespace mln; + + box2d box = make::box2d(y_min, x_min, y_max, x_max); + + image2d<value::rgb8> ima; + io::ppm::load(ima, image_file_.toStdString()); + ima = scribo::preprocessing::crop(ima, box); + + // image2d<bool> mask = make::box2d(y_min, x_min, y_max, x_max); + // data::fill(mask, true); + + /*for (int a = 1; a < vect.size(); ++a) + { + int x = vect[a]["x"].toInt(); + int y = vect[a]["y"].toInt(); + + data::fill((mask | make::box2d(y, x, y, x)).rw(), false); + }*/ + + + // io::pbm::save(mask, "output/img/mask_" + id.toStdString()); + io::magick::save(ima, path_.toStdString() + "img/" + id.toStdString() + ".png"); + + } + } + + if (!regions_found) + qDebug() << "No regions found."; + } +} diff --git a/scribo/demo/viewer/step_widget.hh b/scribo/sandbox/arthur/xml_to_html/xml_to_html.hh similarity index 73% copy from scribo/demo/viewer/step_widget.hh copy to scribo/sandbox/arthur/xml_to_html/xml_to_html.hh index 829f814..27a271e 100644 --- a/scribo/demo/viewer/step_widget.hh +++ b/scribo/sandbox/arthur/xml_to_html/xml_to_html.hh @@ -23,35 +23,27 @@ // exception does not however invalidate any other reasons why the // executable file might be covered by the GNU General Public License. - -#ifndef STEP_WIDGET_HH_ -# define STEP_WIDGET_HH_ +#ifndef IMAGE_CROP_HH +# define IMAGE_CROP_HH # include <QtGui> -typedef QMap<QString, QString> StepQMap; +class DomModel; -class StepWidget - : public QWidget +class ImageCrop : public QObject { Q_OBJECT - -public: - StepWidget(); - ~StepWidget(); - void add_element(const QString& element); - -signals: - void load_image(QString); - void load_xml(QString); - -public slots: - void fill_steps(QString file); - void activate(QListWidgetItem* item); - -private: - QListWidget* view_; - StepQMap map_; + public: + ImageCrop(); + ~ImageCrop(); + void merge(QString in, QString other, QString output = "output.xml"); + bool load_xml(QString xml_file, QString image_file = "", QString path = "output"); + void find_image_regions(); + private: + DomModel* layout_; + QString image_file_; + QString path_; + bool regions_; }; -#endif /* !STEP_WIDGET_HH_ */ +#endif /* !IMAGE_CROP_HH */ diff --git a/scribo/sandbox/arthur/xml_to_html/xml_to_html.pro b/scribo/sandbox/arthur/xml_to_html/xml_to_html.pro new file mode 100644 index 0000000..b43b527 --- /dev/null +++ b/scribo/sandbox/arthur/xml_to_html/xml_to_html.pro @@ -0,0 +1,16 @@ +###################################################################### +# Automatically generated by qmake (2.01a) lun. juil. 5 16:53:31 2010 +###################################################################### + +TEMPLATE = app +TARGET = +DEPENDPATH += . +INCLUDEPATH += . +QMAKE_CXXFLAGS += -I/amd/beyrouth/home/lrde/stage/crepin/olena/milena -I/amd/beyrouth/home/lrde/stage/crepin/olena/ +QT += xml +LIBS += `Magick++-config --libs` + + +# Input +HEADERS += domitem.hh dommodel.hh xml_to_html.hh +SOURCES += domitem.cc dommodel.cc main.cc xml_to_html.cc -- 1.5.6.5
14Â years, 10Â months
1
0
0
0
last-svn-commit-480-gf5c8b38 XML transform program.
by Arthur Crepin-Leblond
* sandbox/arthur/xml_to_html/xml_to_html.hh, * sandbox/arthur/xml_to_html/xml_to_html.cc, * sandbox/arthur/xml_to_html/xml_to_html.pro: Remove. * sandbox/arthur/xml_to_html/README, * sandbox/arthur/xml_to_html/main.cc, * sandbox/arthur/xml_to_html/domitem.cc, * sandbox/arthur/xml_to_html/domitem.hh, * sandbox/arthur/xml_to_html/dommodel.cc, * sandbox/arthur/xml_to_html/dommodel.hh: Move to... * sandbox/arthur/xml_transform/README, * sandbox/arthur/xml_transform/main.cc, * sandbox/arthur/xml_transform/domitem.cc, * sandbox/arthur/xml_transform/domitem.hh, * sandbox/arthur/xml_transform/dommodel.cc, * sandbox/arthur/xml_transform/dommodel.hh: ...this. * sandbox/arthur/xml_to_html/patterns/css.css, * sandbox/arthur/xml_to_html/patterns/xsl.xsl: Move to... * sandbox/arthur/xml_transform/templates/html/css.css, * sandbox/arthur/xml_transform/templates/html/xsl.xsl: ...this. * sandbox/arthur/xml_transform/image_crop.cc, * sandbox/arthur/xml_transform/loader.cc: New. * sandbox/arthur/xml_transform/templates/html/html_generator.sh, * sandbox/arthur/xml_transform/templates/pdf/line.xsl, * sandbox/arthur/xml_transform/templates/pdf/main.xsl, * sandbox/arthur/xml_transform/templates/pdf/main_crop.xsl, * sandbox/arthur/xml_transform/templates/pdf/pdf_generator.sh, * sandbox/arthur/xml_transform/templates/pdf/regions.xsl, * sandbox/arthur/xml_transform/xml_transform.pro: New. --- scribo/ChangeLog | 39 +++ scribo/sandbox/arthur/xml_to_html/README | 25 -- scribo/sandbox/arthur/xml_to_html/main.cc | 58 ---- scribo/sandbox/arthur/xml_to_html/patterns/css.css | 28 -- scribo/sandbox/arthur/xml_to_html/patterns/xsl.xsl | 229 --------------- scribo/sandbox/arthur/xml_to_html/xml_to_html.cc | 292 -------------------- scribo/sandbox/arthur/xml_to_html/xml_to_html.hh | 49 ---- scribo/sandbox/arthur/xml_to_html/xml_to_html.pro | 16 - scribo/sandbox/arthur/xml_transform/README | 19 ++ .../{xml_to_html => xml_transform}/domitem.cc | 0 .../{xml_to_html => xml_transform}/domitem.hh | 0 .../{xml_to_html => xml_transform}/dommodel.cc | 0 .../{xml_to_html => xml_transform}/dommodel.hh | 0 scribo/sandbox/arthur/xml_transform/image_crop.cc | 184 ++++++++++++ scribo/sandbox/arthur/xml_transform/image_crop.hh | 46 +++ scribo/sandbox/arthur/xml_transform/loader.cc | 162 +++++++++++ scribo/sandbox/arthur/xml_transform/loader.hh | 49 ++++ scribo/sandbox/arthur/xml_transform/main.cc | 30 ++ .../arthur/xml_transform/templates/html/css.css | 31 ++ .../xml_transform/templates/html/html_generator.sh | 3 + .../arthur/xml_transform/templates/html/xsl.xsl | 224 +++++++++++++++ .../arthur/xml_transform/templates/pdf/line.xsl | 129 +++++++++ .../arthur/xml_transform/templates/pdf/main.xsl | 62 ++++ .../xml_transform/templates/pdf/main_crop.xsl | 42 +++ .../xml_transform/templates/pdf/pdf_generator.sh | 3 + .../arthur/xml_transform/templates/pdf/regions.xsl | 59 ++++ .../sandbox/arthur/xml_transform/xml_transform.cc | 93 +++++++ .../sandbox/arthur/xml_transform/xml_transform.hh | 48 ++++ .../sandbox/arthur/xml_transform/xml_transform.pro | 20 ++ 29 files changed, 1243 insertions(+), 697 deletions(-) delete mode 100644 scribo/sandbox/arthur/xml_to_html/README delete mode 100644 scribo/sandbox/arthur/xml_to_html/main.cc delete mode 100644 scribo/sandbox/arthur/xml_to_html/patterns/css.css delete mode 100644 scribo/sandbox/arthur/xml_to_html/patterns/xsl.xsl delete mode 100644 scribo/sandbox/arthur/xml_to_html/xml_to_html.cc delete mode 100644 scribo/sandbox/arthur/xml_to_html/xml_to_html.hh delete mode 100644 scribo/sandbox/arthur/xml_to_html/xml_to_html.pro create mode 100644 scribo/sandbox/arthur/xml_transform/README rename scribo/sandbox/arthur/{xml_to_html => xml_transform}/domitem.cc (100%) rename scribo/sandbox/arthur/{xml_to_html => xml_transform}/domitem.hh (100%) rename scribo/sandbox/arthur/{xml_to_html => xml_transform}/dommodel.cc (100%) rename scribo/sandbox/arthur/{xml_to_html => xml_transform}/dommodel.hh (100%) create mode 100644 scribo/sandbox/arthur/xml_transform/image_crop.cc create mode 100644 scribo/sandbox/arthur/xml_transform/image_crop.hh create mode 100644 scribo/sandbox/arthur/xml_transform/loader.cc create mode 100644 scribo/sandbox/arthur/xml_transform/loader.hh create mode 100644 scribo/sandbox/arthur/xml_transform/main.cc create mode 100644 scribo/sandbox/arthur/xml_transform/templates/html/css.css create mode 100644 scribo/sandbox/arthur/xml_transform/templates/html/html_generator.sh create mode 100644 scribo/sandbox/arthur/xml_transform/templates/html/xsl.xsl create mode 100644 scribo/sandbox/arthur/xml_transform/templates/pdf/line.xsl create mode 100644 scribo/sandbox/arthur/xml_transform/templates/pdf/main.xsl create mode 100644 scribo/sandbox/arthur/xml_transform/templates/pdf/main_crop.xsl create mode 100644 scribo/sandbox/arthur/xml_transform/templates/pdf/pdf_generator.sh create mode 100644 scribo/sandbox/arthur/xml_transform/templates/pdf/regions.xsl create mode 100644 scribo/sandbox/arthur/xml_transform/xml_transform.cc create mode 100644 scribo/sandbox/arthur/xml_transform/xml_transform.hh create mode 100644 scribo/sandbox/arthur/xml_transform/xml_transform.pro diff --git a/scribo/ChangeLog b/scribo/ChangeLog index 857484e..b807324 100644 --- a/scribo/ChangeLog +++ b/scribo/ChangeLog @@ -1,3 +1,42 @@ +2010-07-08 Arthur Crepin-Leblond <crepin(a)ptaouchnok.lrde.epita.fr> + + XML transform program. + + * sandbox/arthur/xml_to_html/xml_to_html.hh, + * sandbox/arthur/xml_to_html/xml_to_html.cc, + * sandbox/arthur/xml_to_html/xml_to_html.pro: Remove. + + * sandbox/arthur/xml_to_html/README, + * sandbox/arthur/xml_to_html/main.cc, + * sandbox/arthur/xml_to_html/domitem.cc, + * sandbox/arthur/xml_to_html/domitem.hh, + * sandbox/arthur/xml_to_html/dommodel.cc, + * sandbox/arthur/xml_to_html/dommodel.hh: Move to... + + * sandbox/arthur/xml_transform/README, + * sandbox/arthur/xml_transform/main.cc, + * sandbox/arthur/xml_transform/domitem.cc, + * sandbox/arthur/xml_transform/domitem.hh, + * sandbox/arthur/xml_transform/dommodel.cc, + * sandbox/arthur/xml_transform/dommodel.hh: ...this. + + * sandbox/arthur/xml_to_html/patterns/css.css, + * sandbox/arthur/xml_to_html/patterns/xsl.xsl: Move to... + + * sandbox/arthur/xml_transform/templates/html/css.css, + * sandbox/arthur/xml_transform/templates/html/xsl.xsl: ...this. + + * sandbox/arthur/xml_transform/image_crop.cc, + * sandbox/arthur/xml_transform/loader.cc: New. + + * sandbox/arthur/xml_transform/templates/html/html_generator.sh, + * sandbox/arthur/xml_transform/templates/pdf/line.xsl, + * sandbox/arthur/xml_transform/templates/pdf/main.xsl, + * sandbox/arthur/xml_transform/templates/pdf/main_crop.xsl, + * sandbox/arthur/xml_transform/templates/pdf/pdf_generator.sh, + * sandbox/arthur/xml_transform/templates/pdf/regions.xsl, + * sandbox/arthur/xml_transform/xml_transform.pro: New. + 2010-06-30 Arthur Crepin-Leblond <crepin(a)stockholm.lrde.epita.fr> Extended XML mode support. diff --git a/scribo/sandbox/arthur/xml_to_html/README b/scribo/sandbox/arthur/xml_to_html/README deleted file mode 100644 index f16f472..0000000 --- a/scribo/sandbox/arthur/xml_to_html/README +++ /dev/null @@ -1,25 +0,0 @@ -xml_to_html - -Produce HTML view from ICDAR (or LRDE extended) XML. - -*Compilation: - - Just change the paths to olena and milena in xml_to_html.pro - -*Usage: - - -m, --merge: Merge an XML with an other XML - args: <xml_file_1> <xml_file_2> [xml_output] - -Useful to merge LRDE XML extended mode files with ICDAR XML files to combine both images and recognized text. - - - -c, --create-html: Crop images (if exist) from the ppm file using the XML file and produce an html output. - args: <xml_file> [ppm_file] [output dir] - -If no PPM file is given, the program will only produce an HTML output without images. -If a PPM file is given, the program will crop image_region, separator_region, graphic_regions, chart_region and table_region to output_dir/img/id.png - -*Result: - -To view the result run your internet browser on output_dir/output.xml (Does not work with Chrome on local, use a LAMPP server to fix this ;-) ). \ No newline at end of file diff --git a/scribo/sandbox/arthur/xml_to_html/main.cc b/scribo/sandbox/arthur/xml_to_html/main.cc deleted file mode 100644 index 9ec705a..0000000 --- a/scribo/sandbox/arthur/xml_to_html/main.cc +++ /dev/null @@ -1,58 +0,0 @@ -#include <iostream> -#include "xml_to_html.hh" - -int main(int argc, char **argv) -{ - - std::string man; - man = "xml_to_html: ...usage\n -m, --merge: Merge an XML with an other XML\n \targs: <xml_file_1> <xml_file_2> [xml_output]\n\n -c, --create-html: Crop images (if exist) from the ppm file using the XML file and produce an html output.\n \targs: <xml_file> [ppm_file] [output dir]\n"; - - if (argc > 2) - { - new QApplication::QApplication(argc, argv, false); - ImageCrop crop; - - std::string merge = "--merge"; - std::string m = "-m"; - std::string scrop = "--create-html"; - std::string c = "-c"; - - if (argc == 3 && (scrop.compare(argv[1]) == 0 || c.compare(argv[1]) == 0)) - { - bool b = false; - b = crop.load_xml(argv[2], QString::Null()); - - if (b) - crop.find_image_regions(); - } - else if (argc > 3) - { - if (merge.compare(argv[1]) == 0 || m.compare(argv[1]) == 0) - { - if (argc > 4) - crop.merge(argv[2], argv[3], argv[4]); - else - crop.merge(argv[2], argv[3]); - } - else if (scrop.compare(argv[1]) == 0 || c.compare(argv[1]) == 0) - { - bool b = false; - if (argc > 4) - b = crop.load_xml(argv[2], argv[3], argv[4]); - else - b = crop.load_xml(argv[2], argv[3]); - - if (b) - crop.find_image_regions(); - } - else - std::cout << man; - } - else - std::cout << man; - } - else - std::cout << man; - - return 0; -} diff --git a/scribo/sandbox/arthur/xml_to_html/patterns/css.css b/scribo/sandbox/arthur/xml_to_html/patterns/css.css deleted file mode 100644 index 7171754..0000000 --- a/scribo/sandbox/arthur/xml_to_html/patterns/css.css +++ /dev/null @@ -1,28 +0,0 @@ -.line -{ - position:absolute; - background-color:white; - z-index:7; - display:inline; - white-space:pre; - letter-spacing:-2px; - padding:0px; - margin:0px; - filter:alpha(opacity=100); - font-family:"Times New Roman", Times, serif; -} -.para -{ - position:absolute; - z-index:6; -} -.region -{ - position:absolute; - z-index:5; -} -.image -{ - position:absolute; - border:0; -} \ No newline at end of file diff --git a/scribo/sandbox/arthur/xml_to_html/patterns/xsl.xsl b/scribo/sandbox/arthur/xml_to_html/patterns/xsl.xsl deleted file mode 100644 index aa5a078..0000000 --- a/scribo/sandbox/arthur/xml_to_html/patterns/xsl.xsl +++ /dev/null @@ -1,229 +0,0 @@ -<?xml version="1.0"?> -<xsl:stylesheet version="1.0" xmlns:xsl="
http://www.w3.org/1999/XSL/Transform
"> - - <xsl:template match="/"> <!-- "/" means the whole document (root) --> - <html> - <head> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> - <title>Fooooooo !</title> - <link rel="stylesheet" type="text/css" href="css.css" /> - </head> - <body> - - <div class="image" style="top:0px;left:0px;"> - <img src="../../ppm/mp00076.png" /> - </div> - - <!-- BEGIN IMAGE REGION --> - <xsl:for-each select="pcGts/page/graphic_region| - pcGts/page/image_region| - 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"> - - <!-- y1 --> - <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> - - <!-- x2 --> - <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> - - <!-- y2 --> - <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> - - <!-- x1 --> - <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> - - <!-- TEXT LINE--> - <xsl:if test="name() = 'line'"> - - <xsl:variable name="x_height"> - <xsl:value-of select="../../@x_height" /> - </xsl:variable> - - <xsl:variable name="a_height"> - <xsl:value-of select="../../@a_height" /> - </xsl:variable> - - <xsl:variable name="colour"> - <xsl:choose> - <xsl:when test="../../@txt_colour != ''"> - <xsl:value-of select="../../@txt_colour" /> - </xsl:when> - <xsl:otherwise> - Black - </xsl:otherwise> - </xsl:choose> - </xsl:variable> - - <xsl:variable name="d_height_tmp"> - <xsl:value-of select="../../@d_height" /> - </xsl:variable> - - <xsl:variable name="d_height"> - <xsl:choose> - <xsl:when test="$d_height_tmp < 0"> - <xsl:value-of select="-$d_height_tmp" /> - </xsl:when> - <xsl:otherwise> - <xsl:value-of select="$d_height_tmp" /> - </xsl:otherwise> - </xsl:choose> - </xsl:variable> - - <xsl:variable name="a"> - <xsl:choose> - <xsl:when test="($a_height - $x_height) < $d_height"> - <xsl:value-of select="$x_height + $d_height" /> - </xsl:when> - <xsl:otherwise> - <xsl:value-of select="$a_height" /> - </xsl:otherwise> - </xsl:choose> - </xsl:variable> - - <xsl:variable name="d"> - <xsl:choose> - <xsl:when test="($a_height - $x_height) > $d_height"> - <xsl:value-of select="-($a_height - $x_height)" /> - </xsl:when> - <xsl:otherwise> - <xsl:value-of select="$d_height" /> - </xsl:otherwise> - </xsl:choose> - </xsl:variable> - - <xsl:variable name="d_f"> - <xsl:choose> - <xsl:when test="$d < 0"> - <xsl:value-of select="-$d" /> - </xsl:when> - <xsl:otherwise> - <xsl:value-of select="$d" /> - </xsl:otherwise> - </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"> - <xsl:attribute name="style"> - opacity:1; - height:auto; - font-size:<xsl:value-of select="$a+$d_f" />px; - width:<xsl:value-of select="$x2 - $x1" />px; - left:<xsl:value-of select="$x1 " />px; - top:<xsl:value-of select="$y1 " />px; - color:<xsl:value-of select="$colour" />; - </xsl:attribute> - <xsl:value-of select="@text"/> - </div> - </xsl:if> - <!-- ENF OF TEXT LINE --> - - <!-- TEXT REGION --> - <xsl:if test="name() = 'text_region'"> - <div class="region"> - <xsl:attribute name="style"> - height:<xsl:value-of select="$y2 - $y1" />px; - width:<xsl:value-of select="$x2 - $x1" />px; - left:<xsl:value-of select="$x1" />px; - top:<xsl:value-of select="$y1" />px; - </xsl:attribute> - </div> - </xsl:if> - <!-- ENF OF TEXT REGION --> - - <!-- PARAGRAPH --> - <xsl:if test="name() = 'paragraph'"> - <div class="para"> - <xsl:attribute name="style"> - height:<xsl:value-of select="$y2 - $y1" />px; - width:<xsl:value-of select="$x2 - $x1" />px; - left:<xsl:value-of select="$x1" />px; - top:<xsl:value-of select="$y1" />px; - </xsl:attribute> - </div> - </xsl:if> - <!-- ENF OF PARAGRAPH --> - - <!-- NON-TEXT REGIONS --> - <xsl:if test="name() = 'image_region' or name() = 'separator_region' or name() = 'graphic_region' or name() = 'chart_region' or name() = 'table_region'"> - - <!-- id --> - <xsl:variable name="id"> - <xsl:value-of select="@id" /> - </xsl:variable> - - <!-- depth --> - <xsl:variable name="depth"> - <xsl:choose> - <xsl:when test="name() = 'separator_region'"> - 1 - </xsl:when> - <xsl:otherwise> - 4 - </xsl:otherwise> - </xsl:choose> - </xsl:variable> - - <div class="image"> - <xsl:attribute name="style"> - top:<xsl:value-of select="$y1" />px; - left:<xsl:value-of select="$x1" />px; - width:<xsl:value-of select="$x2 - $x1"/>px; - height:<xsl:value-of select="$y2 - $y1"/>px; - z-index:<xsl:value-of select="$depth"/>; - </xsl:attribute> - <img> - <xsl:attribute name="alt"> - <xsl:value-of select="name()" /> - </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="src"> - img/<xsl:value-of select="$id"/>.png</xsl:attribute> - </img> - </div> - - </xsl:if> - <!-- END NON-TEXT REGIONS --> - </xsl:for-each> - </body> - </html> - </xsl:template> - -</xsl:stylesheet> diff --git a/scribo/sandbox/arthur/xml_to_html/xml_to_html.cc b/scribo/sandbox/arthur/xml_to_html/xml_to_html.cc deleted file mode 100644 index 8267466..0000000 --- a/scribo/sandbox/arthur/xml_to_html/xml_to_html.cc +++ /dev/null @@ -1,292 +0,0 @@ -// Copyright (C) 2010 EPITA Research and Development Laboratory (LRDE) -// -// This file is part of Olena. -// -// Olena is free software: you can redistribute it and/or modify it under -// the terms of the GNU General Public License as published by the Free -// Software Foundation, version 2 of the License. -// -// Olena is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with Olena. If not, see <
http://www.gnu.org/licenses/
>. -// -// As a special exception, you may use this file as part of a free -// software project without restriction. Specifically, if other files -// instantiate templates or use macros or inline functions from this -// file, or you compile this file and link it with other files to produce -// an executable, this file does not by itself cause the resulting -// executable to be covered by the GNU General Public License. This -// exception does not however invalidate any other reasons why the -// executable file might be covered by the GNU General Public License. - -# include "xml_to_html.hh" -# include "dommodel.hh" -# include <limits.h> - -#include <scribo/preprocessing/crop.hh> -#include <mln/value/rgb8.hh> -#include <mln/core/alias/box2d.hh> -#include <mln/core/image/image2d.hh> -#include <mln/io/magick/save.hh> -#include <mln/io/ppm/all.hh> - -ImageCrop::ImageCrop(): - regions_(false) -{ -} - -ImageCrop::~ImageCrop() -{ -} - -void ImageCrop::merge(QString in, QString other, QString output) -{ - if (in.endsWith(".xml") && other.endsWith(".xml") && output.endsWith(".xml")) - { - QFile f_in(in); - QFile f_other(other); - QFile f_output(output); - - qDebug() << "Merging to " << output << "..."; - - f_in.open(QIODevice::ReadOnly); - f_other.open(QIODevice::ReadOnly); - f_output.open(QIODevice::ReadWrite); - - QTextStream stream_in(&f_in); - QTextStream stream_other(&f_other); - QTextStream output_stream(&f_output); - - QString line = stream_in.readLine(); - output_stream << line; - line = stream_in.readLine(); - - while (!line.contains("</page>")) - { - output_stream << "\n" << line; - line = stream_in.readLine(); - } - - line = stream_other.readLine(); - - while (!line.contains("<page")) - line = stream_other.readLine(); - - line = stream_other.readLine(); - - while (!line.contains("</pcGts>")) - { - output_stream << "\n" << line; - line = stream_other.readLine(); - } - - output_stream << "\n" << line; - - f_in.close(); - f_other.close(); - f_output.close(); - } - else - std::cout << "merge : error, only xml files are needed." << std::endl; -} - -bool ImageCrop::load_xml(QString xml_file, QString image_file, QString path) -{ - if (xml_file.endsWith(".xml") && (image_file.endsWith(".ppm") || image_file == QString::Null()) ) - { - image_file_ = image_file; - regions_ = (image_file != QString::Null()); - - path_ = path; - if (!path_.endsWith("/")) - path_.append("/"); - - QDir dir(path_); - - if (!dir.mkpath("img")) - { - path_ = "output/"; - dir.mkpath(path_); - dir.setPath(path_); - dir.mkpath("img"); - } - - if (QFile::exists(xml_file)) - { - QFile file(xml_file); - QFile output(path_ + "output.xml"); - QFile xsl("patterns/xsl.xsl"); - QFile css("patterns/css.css"); - xsl.copy(path_ + "xsl.xsl"); - css.copy(path_ + "css.css"); - - if (QFile::exists(path_ + "output.xml")) - output.remove(); - - output.open(QIODevice::ReadWrite); - file.open(QIODevice::ReadOnly); - - QTextStream stream_in(&file); - QTextStream stream_out(&output); - stream_in.setCodec("UTF-8"); - stream_out.setCodec("UTF-8"); - - QString line = stream_in.readLine(); - stream_out << line; - stream_out << "\n<?xml-stylesheet type=\"text/xsl\" href=\"xsl.xsl\" ?>"; - - // /!\ attributes of ICDAR PcGts removed. - line = stream_in.readLine(); - stream_out << "\n<pcGts>"; - - line = stream_in.readLine(); - - while (!line.contains("</pcGts>")) - { - stream_out << "\n" << line; - line = stream_in.readLine(); - } - - stream_out << "\n" << line; - - output.close(); - file.close(); - - qDebug() << "Output saved to " + path_; - - if (file.open(QIODevice::ReadOnly)) - { - QDomDocument document; - if (document.setContent(&file)) - { - layout_ = new DomModel(document, this); - } - else - qDebug() << "Error while loading the XML file, please choose another."; - - file.close(); - } - } - return true; - } - else - { - std::cout << "Wrong files format !" << std::endl; - return false; - } -} - -void ImageCrop::find_image_regions() -{ - if (layout_ && regions_) - { - QModelIndex pgGts = layout_->index(1, 0); - QModelIndex page = layout_->index(1, 0, pgGts); - QModelIndex region; - QModelIndex attributes; - QModelIndex coords; - QModelIndex point; - bool regions_found = false; - for (int i = 0; true; ++i) - { - region = layout_->index(i, 0, page); - attributes = layout_->index(i, 1, page); - QString name = layout_->data(region, Qt::DisplayRole).toString(); - coords = layout_->index(0, 0, region); - - bool is_image_region = name == QString("image_region") - || name == QString("graphic_region") - || name == QString("separator_region") - || name == QString("chart_region") - || name == QString("table_region") ; - - if (!region.isValid() || !coords.isValid()) - break; - - if (is_image_region) - { - - regions_found = true; - QMap<QString, QVariant> data = - layout_->data(attributes, Qt::UserRole).toMap(); - - QString id; - QMap<QString, QVariant>::iterator it = data.find("id"); - - if (it == data.end() || it.key() != "id") - qDebug() << "No image region."; - - while (it != data.end() && it.key() == "id") - { - qDebug() << name; - id = it.value().toString(); - qDebug() << it.key() + " = " + it.value().toString(); - ++it; - } - - int x_max = 0; - int y_max = 0; - int x_min = INT_MAX; - int y_min = INT_MAX; - - // QVector<QMap<QString, QVariant> > vect; - for (int j = 0; true; ++j) - { - // Navigate to the coordinate list - point = layout_->index(j, 1, coords); - if (!point.isValid()) - break; - - QMap<QString, QVariant> data = - layout_->data(point, Qt::UserRole).toMap(); - int x = data["x"].toInt(); - int y = data["y"].toInt(); - - // vect << data; - - if (x < x_min) - x_min = x; - if (x > x_max) - x_max = x; - - if (y < y_min) - y_min = y; - if (y > y_max) - y_max = y; - - } - - using namespace mln; - - box2d box = make::box2d(y_min, x_min, y_max, x_max); - - image2d<value::rgb8> ima; - io::ppm::load(ima, image_file_.toStdString()); - ima = scribo::preprocessing::crop(ima, box); - - // image2d<bool> mask = make::box2d(y_min, x_min, y_max, x_max); - // data::fill(mask, true); - - /*for (int a = 1; a < vect.size(); ++a) - { - int x = vect[a]["x"].toInt(); - int y = vect[a]["y"].toInt(); - - data::fill((mask | make::box2d(y, x, y, x)).rw(), false); - }*/ - - - // io::pbm::save(mask, "output/img/mask_" + id.toStdString()); - io::magick::save(ima, path_.toStdString() + "img/" + id.toStdString() + ".png"); - - } - } - - if (!regions_found) - qDebug() << "No regions found."; - } -} diff --git a/scribo/sandbox/arthur/xml_to_html/xml_to_html.hh b/scribo/sandbox/arthur/xml_to_html/xml_to_html.hh deleted file mode 100644 index 27a271e..0000000 --- a/scribo/sandbox/arthur/xml_to_html/xml_to_html.hh +++ /dev/null @@ -1,49 +0,0 @@ -// Copyright (C) 2010 EPITA Research and Development Laboratory (LRDE) -// -// This file is part of Olena. -// -// Olena is free software: you can redistribute it and/or modify it under -// the terms of the GNU General Public License as published by the Free -// Software Foundation, version 2 of the License. -// -// Olena is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with Olena. If not, see <
http://www.gnu.org/licenses/
>. -// -// As a special exception, you may use this file as part of a free -// software project without restriction. Specifically, if other files -// instantiate templates or use macros or inline functions from this -// file, or you compile this file and link it with other files to produce -// an executable, this file does not by itself cause the resulting -// executable to be covered by the GNU General Public License. This -// exception does not however invalidate any other reasons why the -// executable file might be covered by the GNU General Public License. - -#ifndef IMAGE_CROP_HH -# define IMAGE_CROP_HH - -# include <QtGui> - -class DomModel; - -class ImageCrop : public QObject -{ - Q_OBJECT - public: - ImageCrop(); - ~ImageCrop(); - void merge(QString in, QString other, QString output = "output.xml"); - bool load_xml(QString xml_file, QString image_file = "", QString path = "output"); - void find_image_regions(); - private: - DomModel* layout_; - QString image_file_; - QString path_; - bool regions_; -}; - -#endif /* !IMAGE_CROP_HH */ diff --git a/scribo/sandbox/arthur/xml_to_html/xml_to_html.pro b/scribo/sandbox/arthur/xml_to_html/xml_to_html.pro deleted file mode 100644 index b43b527..0000000 --- a/scribo/sandbox/arthur/xml_to_html/xml_to_html.pro +++ /dev/null @@ -1,16 +0,0 @@ -###################################################################### -# Automatically generated by qmake (2.01a) lun. juil. 5 16:53:31 2010 -###################################################################### - -TEMPLATE = app -TARGET = -DEPENDPATH += . -INCLUDEPATH += . -QMAKE_CXXFLAGS += -I/amd/beyrouth/home/lrde/stage/crepin/olena/milena -I/amd/beyrouth/home/lrde/stage/crepin/olena/ -QT += xml -LIBS += `Magick++-config --libs` - - -# Input -HEADERS += domitem.hh dommodel.hh xml_to_html.hh -SOURCES += domitem.cc dommodel.cc main.cc xml_to_html.cc diff --git a/scribo/sandbox/arthur/xml_transform/README b/scribo/sandbox/arthur/xml_transform/README new file mode 100644 index 0000000..e0bfbc8 --- /dev/null +++ b/scribo/sandbox/arthur/xml_transform/README @@ -0,0 +1,19 @@ +xml_transform <option> <xml_file> <ppm_file> <output_dir> + +Transforms an ICDAR XML file to different kind of output. + +OPTIONS: + + --html: Produce a HTML output + +Once process is finished, open output.xml with your internet browser. If this one supports XSLT, there is no problem to display the result but if it does not support it (like Konqueror or Chrome in local), you should run `sh html_generator.sh` (xsltproc package required) to generate a HTML file readable by all browsers. + + --pdf: Produce a PDF output, regions will be cropped as follows in the XML file. + --pdf-no-crop: Produce a PDF output without cropping regions, the entire picture will be displayed. + +PDF is not directly created once the process is finished, to produce it, go to the output_dir and run `sh pdf_generator.sh` (fop >= 0.95 required). + + +BUILD: + +Chnage the environment variable QMAKE_CXXFLAGS to indicate the correct paths to milena and olena then, just type qmake and make. \ No newline at end of file diff --git a/scribo/sandbox/arthur/xml_to_html/domitem.cc b/scribo/sandbox/arthur/xml_transform/domitem.cc similarity index 100% rename from scribo/sandbox/arthur/xml_to_html/domitem.cc rename to scribo/sandbox/arthur/xml_transform/domitem.cc diff --git a/scribo/sandbox/arthur/xml_to_html/domitem.hh b/scribo/sandbox/arthur/xml_transform/domitem.hh similarity index 100% rename from scribo/sandbox/arthur/xml_to_html/domitem.hh rename to scribo/sandbox/arthur/xml_transform/domitem.hh diff --git a/scribo/sandbox/arthur/xml_to_html/dommodel.cc b/scribo/sandbox/arthur/xml_transform/dommodel.cc similarity index 100% rename from scribo/sandbox/arthur/xml_to_html/dommodel.cc rename to scribo/sandbox/arthur/xml_transform/dommodel.cc diff --git a/scribo/sandbox/arthur/xml_to_html/dommodel.hh b/scribo/sandbox/arthur/xml_transform/dommodel.hh similarity index 100% rename from scribo/sandbox/arthur/xml_to_html/dommodel.hh rename to scribo/sandbox/arthur/xml_transform/dommodel.hh diff --git a/scribo/sandbox/arthur/xml_transform/image_crop.cc b/scribo/sandbox/arthur/xml_transform/image_crop.cc new file mode 100644 index 0000000..aa17c31 --- /dev/null +++ b/scribo/sandbox/arthur/xml_transform/image_crop.cc @@ -0,0 +1,184 @@ +// Copyright (C) 2010 EPITA Research and Development Laboratory (LRDE) +// +// This file is part of Olena. +// +// Olena is free software: you can redistribute it and/or modify it under +// the terms of the GNU General Public License as published by the Free +// Software Foundation, version 2 of the License. +// +// Olena is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Olena. If not, see <
http://www.gnu.org/licenses/
>. +// +// As a special exception, you may use this file as part of a free +// software project without restriction. Specifically, if other files +// instantiate templates or use macros or inline functions from this +// file, or you compile this file and link it with other files to produce +// an executable, this file does not by itself cause the resulting +// executable to be covered by the GNU General Public License. This +// exception does not however invalidate any other reasons why the +// executable file might be covered by the GNU General Public License. + +# include "image_crop.hh" +# include "loader.hh" +# include "dommodel.hh" + +# include <limits.h> + +#include <scribo/preprocessing/crop.hh> +#include <mln/value/rgb8.hh> +#include <mln/core/alias/box2d.hh> +#include <mln/core/image/image2d.hh> +#include <mln/io/magick/save.hh> +#include <mln/io/ppm/all.hh> + +ImageCrop::ImageCrop() +{ +} + +ImageCrop::~ImageCrop() +{ +} + +void ImageCrop::save_image(QString image, QString output) +{ + using namespace mln; + + image2d<value::rgb8> ima; + io::ppm::load(ima, image.toStdString()); + + io::magick::save(ima, output.toStdString() + "img/image.png"); +} + +void ImageCrop::crop_regions(QString xml_file, QString image_file, QString output) +{ + Loader loader; + + QFile f(image_file); + + if (!f.exists()) + { + qDebug() << "Image doesn't exist !"; + abort(); + } + DomModel* layout = loader.xml_to_dom(xml_file); + if (layout) + { + QModelIndex pcGts = layout->index(1, 0); + QModelIndex page = layout->index(1, 0, pcGts); + QModelIndex region; + QModelIndex attributes; + QModelIndex coords; + QModelIndex point; + bool regions_found = false; + + for (int i = 0; true; ++i) + { + region = layout->index(i, 0, page); + attributes = layout->index(i, 1, page); + + QString name = layout->data(region, Qt::DisplayRole).toString(); + coords = layout->index(0, 0, region); + + bool is_region = + name == QString("image_region") + || name == QString("graphic_region") + || name == QString("separator_region") + || name == QString("chart_region") + || name == QString("table_region") ; + + if (!region.isValid() || !coords.isValid()) + break; + + if (is_region) + { + regions_found = true; + QMap<QString, QVariant> data = + layout->data(attributes, Qt::UserRole).toMap(); + + QString id; + QMap<QString, QVariant>::iterator it = data.find("id"); + + if (it == data.end() || it.key() != "id") + qDebug() << "WTF_Error : No image region."; + + while (it != data.end() && it.key() == "id") + { + qDebug() << name; + id = it.value().toString(); + qDebug() << it.key() + " = " + it.value().toString(); + ++it; + } + + int x_max = 0; + int y_max = 0; + int x_min = INT_MAX; + int y_min = INT_MAX; + + // QVector<QMap<QString, QVariant> > vect; + for (int j = 0; true; ++j) + { + // Navigate to the coordinate list + point = layout->index(j, 1, coords); + if (!point.isValid()) + break; + + QMap<QString, QVariant> data = + layout->data(point, Qt::UserRole).toMap(); + int x = data["x"].toInt(); + int y = data["y"].toInt(); + + // vect << data; + + if (x < x_min) + x_min = x; + if (x > x_max) + x_max = x; + + if (y < y_min) + y_min = y; + if (y > y_max) + y_max = y; + + } + + using namespace mln; + + box2d box = make::box2d(y_min, x_min, y_max, x_max); + + image2d<value::rgb8> ima; + io::ppm::load(ima, image_file.toStdString()); + ima = scribo::preprocessing::crop(ima, box); + + // image2d<bool> mask = make::box2d(y_min, x_min, y_max, x_max); + // data::fill(mask, true); + + /*for (int a = 1; a < vect.size(); ++a) + { + int x = vect[a]["x"].toInt(); + int y = vect[a]["y"].toInt(); + + data::fill((mask | make::box2d(y, x, y, x)).rw(), false); + }*/ + + // io::pbm::save(mask, "output/img/mask_" + id.toStdString()); + io::magick::save(ima, output.toStdString() + "img/" + id.toStdString() + ".png"); + + } + } + + if (!regions_found) + qDebug() << "No regions found."; + + } + else + { + qDebug() << "Error with XML file."; + } + + +} diff --git a/scribo/sandbox/arthur/xml_transform/image_crop.hh b/scribo/sandbox/arthur/xml_transform/image_crop.hh new file mode 100644 index 0000000..e4b0a38 --- /dev/null +++ b/scribo/sandbox/arthur/xml_transform/image_crop.hh @@ -0,0 +1,46 @@ +// Copyright (C) 2010 EPITA Research and Development Laboratory (LRDE) +// +// This file is part of Olena. +// +// Olena is free software: you can redistribute it and/or modify it under +// the terms of the GNU General Public License as published by the Free +// Software Foundation, version 2 of the License. +// +// Olena is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Olena. If not, see <
http://www.gnu.org/licenses/
>. +// +// As a special exception, you may use this file as part of a free +// software project without restriction. Specifically, if other files +// instantiate templates or use macros or inline functions from this +// file, or you compile this file and link it with other files to produce +// an executable, this file does not by itself cause the resulting +// executable to be covered by the GNU General Public License. This +// exception does not however invalidate any other reasons why the +// executable file might be covered by the GNU General Public License. + +#ifndef IMAGE_CROP_HH +# define IMAGE_CROP_HH + +# include <QtGui> + +class DomModel; + +class ImageCrop : public QObject +{ + Q_OBJECT + public: + + ImageCrop(); + ~ImageCrop(); + + void save_image(QString image, QString output); + void crop_regions(QString xml_file, QString image_file, QString output); + +}; + +#endif /* !IMAGE_CROP_HH */ diff --git a/scribo/sandbox/arthur/xml_transform/loader.cc b/scribo/sandbox/arthur/xml_transform/loader.cc new file mode 100644 index 0000000..5623928 --- /dev/null +++ b/scribo/sandbox/arthur/xml_transform/loader.cc @@ -0,0 +1,162 @@ +// Copyright (C) 2010 EPITA Research and Development Laboratory (LRDE) +// +// This file is part of Olena. +// +// Olena is free software: you can redistribute it and/or modify it under +// the terms of the GNU General Public License as published by the Free +// Software Foundation, version 2 of the License. +// +// Olena is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Olena. If not, see <
http://www.gnu.org/licenses/
>. +// +// As a special exception, you may use this file as part of a free +// software project without restriction. Specifically, if other files +// instantiate templates or use macros or inline functions from this +// file, or you compile this file and link it with other files to produce +// an executable, this file does not by itself cause the resulting +// executable to be covered by the GNU General Public License. This +// exception does not however invalidate any other reasons why the +// executable file might be covered by the GNU General Public License. + +# include "loader.hh" +# include "dommodel.hh" +# include "xml_transform.hh" + +Loader::Loader() +{ +} + +Loader::~Loader() +{ +} + +DomModel* Loader::xml_to_dom(QString output) +{ + QString file_path = output; + + QFile file(file_path); + + if (file.open(QIODevice::ReadOnly)) + { + QDomDocument document; + if (document.setContent(&file)) + { + return new DomModel(document); + } + } + + return 0; +} + +bool Loader::set_output(QString& output) +{ + QDir dir(output); + + if (!output.endsWith("/")) + output.append("/"); + + if (!dir.exists()) + { + return dir.mkpath("."); + } + else + { + QStringList list = dir.entryList(QDir::Writable | QDir::AllDirs); + return list.size() != 0; + } +} + + +void Loader::add_html_templates(QString output) +{ + + QFile gen("templates/html/html_generator.sh"); + gen.copy(output + "html_generator.sh"); + + QFile css("templates/html/css.css"); + css.copy(output + "css.css"); + + QFile xsl("templates/html/xsl.xsl"); + xsl.copy(output + "xsl.xsl"); + +} + +void Loader::add_pdf_templates(bool crop, QString output) +{ + + QFile regions("templates/pdf/regions.xsl"); + regions.copy(output + "regions.xsl"); + + QFile gen("templates/pdf/pdf_generator.sh"); + gen.copy(output + "pdf_generator.sh"); + + QFile line("templates/pdf/line.xsl"); + line.copy(output + "line.xsl"); + if (crop) + { + QFile xsl("templates/pdf/main_crop.xsl"); + xsl.copy(output + "main.xsl"); + } + else + { + QFile xsl("templates/pdf/main.xsl"); + xsl.copy(output + "main.xsl"); + } +} + +bool Loader::load_xml(QString xml_file, bool html, QString output) +{ + QFile file(xml_file); + + if (file.exists()) + { + file.open(QIODevice::ReadOnly); + set_output(output); + + QFile out_file(output + "output.xml"); + out_file.open(QIODevice::ReadWrite); + + QTextStream stream_in(&file); + QTextStream stream_out(&out_file); + + QString line = stream_in.readLine(); + + while(!line.contains("<?xml")) + line = stream_in.readLine(); + + stream_out << line; + + if (html) + stream_out << "\n<?xml-stylesheet type=\"text/xsl\" href=\"xsl.xsl\" ?>"; + + // /!\ attributes of ICDAR PcGts removed. + while(!line.contains("<pcGts")) + line = stream_in.readLine(); + + line = stream_in.readLine(); + stream_out << "\n<pcGts>"; + + while (!line.contains("</pcGts>")) + { + stream_out << "\n" << line; + line = stream_in.readLine(); + } + + stream_out << "\n" << line; + + file.close(); + out_file.close(); + + return true; + } + else + { + qDebug() << xml_file + " doesn't exist"; + return false; + } +} diff --git a/scribo/sandbox/arthur/xml_transform/loader.hh b/scribo/sandbox/arthur/xml_transform/loader.hh new file mode 100644 index 0000000..7d24254 --- /dev/null +++ b/scribo/sandbox/arthur/xml_transform/loader.hh @@ -0,0 +1,49 @@ +// Copyright (C) 2010 EPITA Research and Development Laboratory (LRDE) +// +// This file is part of Olena. +// +// Olena is free software: you can redistribute it and/or modify it under +// the terms of the GNU General Public License as published by the Free +// Software Foundation, version 2 of the License. +// +// Olena is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Olena. If not, see <
http://www.gnu.org/licenses/
>. +// +// As a special exception, you may use this file as part of a free +// software project without restriction. Specifically, if other files +// instantiate templates or use macros or inline functions from this +// file, or you compile this file and link it with other files to produce +// an executable, this file does not by itself cause the resulting +// executable to be covered by the GNU General Public License. This +// exception does not however invalidate any other reasons why the +// executable file might be covered by the GNU General Public License. + +#ifndef LOADER_HH +# define LOADER_HH + +//# include <QtGui> +# include "xml_transform.hh" + +class DomModel; + +class Loader +{ + public: + + Loader(); + ~Loader(); + + // void merge(QString in, QString other, QString output = "output.xml"); + bool load_xml(QString xml_file, bool html, QString output); + DomModel* xml_to_dom(QString output); + bool set_output(QString& output); + void add_pdf_templates(bool crop, QString output); + void add_html_templates(QString output); +}; + +#endif /* !LOADER_HH */ diff --git a/scribo/sandbox/arthur/xml_transform/main.cc b/scribo/sandbox/arthur/xml_transform/main.cc new file mode 100644 index 0000000..9e18cff --- /dev/null +++ b/scribo/sandbox/arthur/xml_transform/main.cc @@ -0,0 +1,30 @@ +#include <iostream> +#include "xml_transform.hh" + +int main(int argc, char **argv) +{ + + std::string man = "xml_transform <option> <xml_file> <ppm_file> <output_dir>\nOPTIONS:\n\t--html: Produce a HTML output\n\t--pdf: Produce a PDF output, regions will be croped as follows in the XML file.\n\t--pdf-no-crop: Produce a PDF output without croping regions, the entire picture will be displayed."; + + if (argc > 4) + { + std::string html = "--html"; + std::string pdf = "--pdf"; + std::string pdf_no_crop = "--pdf-no-crop"; + + XmlTransform xmlt(argv[4], argv[2]); + + if (html.compare(argv[1]) == 0) + xmlt.createHTML(argv[3]); + else if (pdf.compare(argv[1]) == 0) + xmlt.createPDF(argv[3], true); + else if (pdf_no_crop.compare(argv[1]) == 0) + xmlt.createPDF(argv[3], false); + else + std::cout << man << std::endl; + } + else + std::cout << man << std::endl; + + return 0; +} diff --git a/scribo/sandbox/arthur/xml_transform/templates/html/css.css b/scribo/sandbox/arthur/xml_transform/templates/html/css.css new file mode 100644 index 0000000..0443390 --- /dev/null +++ b/scribo/sandbox/arthur/xml_transform/templates/html/css.css @@ -0,0 +1,31 @@ +.line +{ + position:absolute; + background-color:white; + z-index:7; + display:inline; + white-space:pre; + + /* FIXME */ + letter-spacing:-2px; + + padding:0px; + margin:0px; + filter:alpha(opacity=100); + font-family:"Times New Roman", Times, serif; +} +.para +{ + position:absolute; + z-index:6; +} +.region +{ + position:absolute; + z-index:5; +} +.image +{ + position:absolute; + border:0; +} \ No newline at end of file diff --git a/scribo/sandbox/arthur/xml_transform/templates/html/html_generator.sh b/scribo/sandbox/arthur/xml_transform/templates/html/html_generator.sh new file mode 100644 index 0000000..bb24305 --- /dev/null +++ b/scribo/sandbox/arthur/xml_transform/templates/html/html_generator.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +xsltproc xsl.xsl output.xml > 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/html/xsl.xsl new file mode 100644 index 0000000..3d6a1c5 --- /dev/null +++ b/scribo/sandbox/arthur/xml_transform/templates/html/xsl.xsl @@ -0,0 +1,224 @@ +<?xml version="1.0"?> +<xsl:stylesheet version="1.0" xmlns:xsl="
http://www.w3.org/1999/XSL/Transform
"> + + <xsl:template match="/"> <!-- "/" means the whole document (root) --> + <html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <title>SCRIBO</title> + <link rel="stylesheet" type="text/css" href="css.css" /> + </head> + <body> + + <xsl:for-each select="pcGts/page/graphic_region| + pcGts/page/image_region| + 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 --> + + <!-- y1 --> + <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> + + <!-- x2 --> + <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> + + <!-- y2 --> + <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> + + <!-- x1 --> + <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> + + <!-- END OF Regions Coordinates --> + + <!-- TEXT LINE--> + <xsl:if test="name() = 'line'"> + + <xsl:variable name="colour"> + <xsl:choose> + <xsl:when test="../../@txt_colour != ''"> + <xsl:value-of select="../../@txt_colour" /> + </xsl:when> + <xsl:otherwise> + Black + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + + <!-- x_height --> + <xsl:variable name="x_height"> + <xsl:value-of select="../../@x_height" /> + </xsl:variable> + + <!-- a_height --> + <xsl:variable name="a_height"> + <xsl:value-of select="../../@a_height" /> + </xsl:variable> + + <!-- ABS(d_height) --> + <xsl:variable name="d_height_abs"> + <xsl:choose> + <xsl:when test="../../@d_height < 0"> + <xsl:value-of select="-../../@d_height" /> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="../../@d_height" /> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + + <!-- a_height computed, i.e> + if (A - X < |D|) + A = X + |D| + --> + <xsl:variable name="a"> + <xsl:choose> + <xsl:when test="($a_height - $x_height) < $d_height_abs"> + <xsl:value-of select="$x_height + $d_height_abs" /> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$a_height" /> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + + <!-- d_height computed, i.e> + if (A - A > |D|) + |D| = A - X + --> + <xsl:variable name="d"> + <xsl:choose> + <xsl:when test="($a_height - $x_height) > $d_height_abs"> + <xsl:value-of select="$a_height - $x_height" /> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$d_height_abs" /> + </xsl:otherwise> + </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"> + <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; + left:<xsl:value-of select="$x1 " />px; + top:<xsl:value-of select="$y1 " />px; + color:<xsl:value-of select="$colour" />; + </xsl:attribute> + <xsl:value-of select="@text"/> + </div> + </xsl:if> + <!-- ENF OF TEXT LINE --> + + <!-- TEXT REGION --> + <xsl:if test="name() = 'text_region'"> + <div class="region"> + <xsl:attribute name="style"> + height:<xsl:value-of select="$y2 - $y1" />px; + width:<xsl:value-of select="$x2 - $x1" />px; + left:<xsl:value-of select="$x1" />px; + top:<xsl:value-of select="$y1" />px; + </xsl:attribute> + </div> + </xsl:if> + <!-- ENF OF TEXT REGION --> + + <!-- PARAGRAPH --> + <xsl:if test="name() = 'paragraph'"> + <div class="para"> + <xsl:attribute name="style"> + height:<xsl:value-of select="$y2 - $y1" />px; + width:<xsl:value-of select="$x2 - $x1" />px; + left:<xsl:value-of select="$x1" />px; + top:<xsl:value-of select="$y1" />px; + </xsl:attribute> + </div> + </xsl:if> + <!-- ENF OF PARAGRAPH --> + + <!-- NON-TEXT REGIONS --> + <xsl:if test="name() = 'image_region' or name() = 'separator_region' or name() = 'graphic_region' or name() = 'chart_region' or name() = 'table_region'"> + + <!-- id --> + <xsl:variable name="id"> + <xsl:value-of select="@id" /> + </xsl:variable> + + <!-- depth --> + <xsl:variable name="depth"> + <xsl:choose> + <xsl:when test="name() = 'separator_region'"> + 1 + </xsl:when> + <xsl:otherwise> + 4 + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + + <div class="image"> + <xsl:attribute name="style"> + top:<xsl:value-of select="$y1" />px; + left:<xsl:value-of select="$x1" />px; + width:<xsl:value-of select="$x2 - $x1"/>px; + height:<xsl:value-of select="$y2 - $y1"/>px; + z-index:<xsl:value-of select="$depth"/>; + </xsl:attribute> + <img> + <xsl:attribute name="alt"> + <xsl:value-of select="name()" /> + </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="src"> + img/<xsl:value-of select="$id"/>.png</xsl:attribute> + </img> + </div> + + </xsl:if> + <!-- END NON-TEXT REGIONS --> + </xsl:for-each> + </body> + </html> + </xsl:template> + +</xsl:stylesheet> diff --git a/scribo/sandbox/arthur/xml_transform/templates/pdf/line.xsl b/scribo/sandbox/arthur/xml_transform/templates/pdf/line.xsl new file mode 100644 index 0000000..b143502 --- /dev/null +++ b/scribo/sandbox/arthur/xml_transform/templates/pdf/line.xsl @@ -0,0 +1,129 @@ +<?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: line.xsl + DESCRIPTION: match all pcGts/page/text_region/paragraph/line in order to display the "text" attributes + --> + + <xsl:template match="pcGts/page/text_region/paragraph/line"> + + <!-- x_height --> + <xsl:variable name="x_height"> + <xsl:value-of select="../../@x_height" /> + </xsl:variable> + + <!-- a_height --> + <xsl:variable name="a_height"> + <xsl:value-of select="../../@a_height" /> + </xsl:variable> + + + <!-- ABS(d_height) --> + <xsl:variable name="d_height_abs"> + <xsl:choose> + <xsl:when test="../../@d_height < 0"> + <xsl:value-of select="-../../@d_height" /> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="../../@d_height" /> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + + <!-- a_height computed, i.e> + if (A - X < |D|) + A = X + |D| + --> + <xsl:variable name="a"> + <xsl:choose> + <xsl:when test="($a_height - $x_height) < $d_height_abs"> + <xsl:value-of select="$x_height + $d_height_abs" /> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$a_height" /> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + + <!-- d_height computed, i.e> + if (A - A > |D|) + |D| = A - X + --> + <xsl:variable name="d"> + <xsl:choose> + <xsl:when test="($a_height - $x_height) > $d_height_abs"> + <xsl:value-of select="$a_height - $x_height" /> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$d_height_abs" /> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + + <!-- Text lines 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> + <!-- END OF lines coordinates --> + + <!-- WTF !?, Necessary to do a lower-case ! --> + <xsl:variable name="smallcase" select="'abcdefghijklmnopqrstuvwxyz'" /> + <xsl:variable name="uppercase" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'" /> + + <!-- Text Colour --> + <xsl:variable name="colour"> + <xsl:choose> + <xsl:when test="../../@txt_colour != ''"> + <xsl:value-of select="translate(../../@txt_colour, $smallcase, $uppercase)" /> + </xsl:when> + <xsl:otherwise> + black + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + + + <fo:block-container position="absolute"> + + <xsl:attribute name="left"> + <xsl:value-of select="$x1" />px + </xsl:attribute> + <xsl:attribute name="top"> + <xsl:value-of select="$y1" />px + </xsl:attribute> + + <xsl:attribute name="color"> + <xsl:value-of select="$colour" /> + </xsl:attribute> + + <!-- if necessary, put letter-spacing="-Npt" ~ -3 <= N <= -1 + in fo:block--> + + <fo:block font-family="Times"> + + <xsl:attribute name="font-size"> + <xsl:value-of select="$a + $d" />px + </xsl:attribute> + + <xsl:value-of select="@text"/> + </fo:block> + + </fo:block-container> + + </xsl:template> + +</xsl:stylesheet> diff --git a/scribo/sandbox/arthur/xml_transform/templates/pdf/main.xsl b/scribo/sandbox/arthur/xml_transform/templates/pdf/main.xsl new file mode 100644 index 0000000..065831e --- /dev/null +++ b/scribo/sandbox/arthur/xml_transform/templates/pdf/main.xsl @@ -0,0 +1,62 @@ +<?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: main.xsl + DESCRIPTION: produce pdf output --> + + <xsl:import href="line.xsl"/> + + <xsl:template match="/"> + <fo:root> + + <fo:layout-master-set> + <fo:simple-page-master master-name="page" margin-left="0cm" margin-right="0cm" margin-bottom="0cm" margin-top="0cm"> + + <!-- Output will be sized with image size --> + <xsl:attribute name="page-width"> + <xsl:value-of select="pcGts/page/@image_width" />px + </xsl:attribute> + <xsl:attribute name="page-height"> + <xsl:value-of select="pcGts/page/@image_height" />px + </xsl:attribute> + + <fo:region-body + margin-top="0mm" margin-bottom="0mm" + margin-left="0mm" margin-right="0mm"/> + <fo:region-after extent="0mm"/> + + </fo:simple-page-master> + </fo:layout-master-set> + + <fo:page-sequence master-reference="page"> + + <fo:flow flow-name="xsl-region-body"> + + <xsl:apply-imports /> + + <fo:block-container position="absolute" z-index="-3"> + + <xsl:attribute name="left"> + 0px + </xsl:attribute> + <xsl:attribute name="top"> + 0px + </xsl:attribute> + + <fo:block> + <fo:external-graphic> + <xsl:attribute name="src"> + url('img/image.png') + </xsl:attribute> + </fo:external-graphic> + </fo:block> + + </fo:block-container> + + </fo:flow> + + </fo:page-sequence> + </fo:root> + </xsl:template> + +</xsl:stylesheet> diff --git a/scribo/sandbox/arthur/xml_transform/templates/pdf/main_crop.xsl b/scribo/sandbox/arthur/xml_transform/templates/pdf/main_crop.xsl new file mode 100644 index 0000000..0dbb673 --- /dev/null +++ b/scribo/sandbox/arthur/xml_transform/templates/pdf/main_crop.xsl @@ -0,0 +1,42 @@ +<?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: main.xsl + DESCRIPTION: produce pdf output --> + + <xsl:import href="regions.xsl"/> + <xsl:import href="line.xsl"/> + + <xsl:template match="/"> + <fo:root> + + <fo:layout-master-set> + <fo:simple-page-master master-name="page" margin-left="0cm" margin-right="0cm" margin-bottom="0cm" margin-top="0cm"> + + <!-- Output will be sized with image size --> + <xsl:attribute name="page-width"> + <xsl:value-of select="pcGts/page/@image_width" />px + </xsl:attribute> + <xsl:attribute name="page-height"> + <xsl:value-of select="pcGts/page/@image_height" />px + </xsl:attribute> + + <fo:region-body + margin-top="0mm" margin-bottom="0mm" + margin-left="0mm" margin-right="0mm"/> + <fo:region-after extent="0mm"/> + + </fo:simple-page-master> + </fo:layout-master-set> + + <fo:page-sequence master-reference="page"> + + <fo:flow flow-name="xsl-region-body"> + <xsl:apply-imports /> + </fo:flow> + + </fo:page-sequence> + </fo:root> + </xsl:template> + +</xsl:stylesheet> diff --git a/scribo/sandbox/arthur/xml_transform/templates/pdf/pdf_generator.sh b/scribo/sandbox/arthur/xml_transform/templates/pdf/pdf_generator.sh new file mode 100644 index 0000000..c6339a5 --- /dev/null +++ b/scribo/sandbox/arthur/xml_transform/templates/pdf/pdf_generator.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +fop -xsl main.xsl -xml output.xml -pdf output.pdf \ No newline at end of file diff --git a/scribo/sandbox/arthur/xml_transform/templates/pdf/regions.xsl b/scribo/sandbox/arthur/xml_transform/templates/pdf/regions.xsl new file mode 100644 index 0000000..65a8c79 --- /dev/null +++ b/scribo/sandbox/arthur/xml_transform/templates/pdf/regions.xsl @@ -0,0 +1,59 @@ +<?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="id"> + <xsl:value-of select="@id" /> + </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> + <!-- END OF regions coordinates --> + + <fo:block-container position="absolute"> + + <xsl:attribute name="left"> + <xsl:value-of select="$x1" />px + </xsl:attribute> + <xsl:attribute name="top"> + <xsl:value-of select="$y1" />px + </xsl:attribute> + + <fo:block> + <fo:external-graphic> + <xsl:attribute name="src"> + url('img/<xsl:value-of select="$id" />.png') + </xsl:attribute> + </fo:external-graphic> + </fo:block> + + </fo:block-container> + + </xsl:template> + +</xsl:stylesheet> diff --git a/scribo/sandbox/arthur/xml_transform/xml_transform.cc b/scribo/sandbox/arthur/xml_transform/xml_transform.cc new file mode 100644 index 0000000..dd35aff --- /dev/null +++ b/scribo/sandbox/arthur/xml_transform/xml_transform.cc @@ -0,0 +1,93 @@ +// Copyright (C) 2010 EPITA Research and Development Laboratory (LRDE) +// +// This file is part of Olena. +// +// Olena is free software: you can redistribute it and/or modify it under +// the terms of the GNU General Public License as published by the Free +// Software Foundation, version 2 of the License. +// +// Olena is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Olena. If not, see <
http://www.gnu.org/licenses/
>. +// +// As a special exception, you may use this file as part of a free +// software project without restriction. Specifically, if other files +// instantiate templates or use macros or inline functions from this +// file, or you compile this file and link it with other files to produce +// an executable, this file does not by itself cause the resulting +// executable to be covered by the GNU General Public License. This +// exception does not however invalidate any other reasons why the +// executable file might be covered by the GNU General Public License. + +# include "image_crop.hh" +# include "loader.hh" +# include "xml_transform.hh" + +XmlTransform::XmlTransform(QString output, QString xml_file) : + output_dir_(output), + xml_file_(xml_file) +{ + Loader loader; + if (!loader.set_output(output_dir_)) + abort(); +} + +XmlTransform::~XmlTransform() +{ +} + +void XmlTransform::createPDF (QString img, bool crop) +{ + Loader loader; + + QString output = output_dir_; + output.append("img"); + + if (loader.set_output(output)) + { + if (loader.load_xml(xml_file_, false, output_dir_)) + { + + ImageCrop Crop; + + if (crop) + Crop.crop_regions(xml_file_, img, output_dir_); + else + Crop.save_image(img, output_dir_); + + loader.add_pdf_templates(crop, output_dir_); + } + else + abort(); + } + else + abort(); +} + +void XmlTransform::createHTML(QString img) +{ + Loader loader; + + QString output = output_dir_; + output.append("img"); + + if (loader.set_output(output)) + { + if (loader.load_xml(xml_file_, true, output_dir_)) + { + ImageCrop Crop; + + Crop.crop_regions(xml_file_, img, output_dir_); + loader.add_html_templates(output_dir_); + } + else + abort(); + } + else + abort(); +} + diff --git a/scribo/sandbox/arthur/xml_transform/xml_transform.hh b/scribo/sandbox/arthur/xml_transform/xml_transform.hh new file mode 100644 index 0000000..808c108 --- /dev/null +++ b/scribo/sandbox/arthur/xml_transform/xml_transform.hh @@ -0,0 +1,48 @@ +// Copyright (C) 2010 EPITA Research and Development Laboratory (LRDE) +// +// This file is part of Olena. +// +// Olena is free software: you can redistribute it and/or modify it under +// the terms of the GNU General Public License as published by the Free +// Software Foundation, version 2 of the License. +// +// Olena is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Olena. If not, see <
http://www.gnu.org/licenses/
>. +// +// As a special exception, you may use this file as part of a free +// software project without restriction. Specifically, if other files +// instantiate templates or use macros or inline functions from this +// file, or you compile this file and link it with other files to produce +// an executable, this file does not by itself cause the resulting +// executable to be covered by the GNU General Public License. This +// exception does not however invalidate any other reasons why the +// executable file might be covered by the GNU General Public License. + +#ifndef XML_TRANFORM_HH +# define XML_TRANFORM_HH + +# include <QtGui> + +class XmlTransform : public QObject +{ + Q_OBJECT + public: + + XmlTransform(QString output, QString xml_file); + ~XmlTransform(); + + void createHTML(QString img); + void createPDF(QString img, bool crop); + +protected: + QString output_dir_; + QString xml_file_; +}; + +#endif // !XML_TRANFORM_HH + diff --git a/scribo/sandbox/arthur/xml_transform/xml_transform.pro b/scribo/sandbox/arthur/xml_transform/xml_transform.pro new file mode 100644 index 0000000..161a7f4 --- /dev/null +++ b/scribo/sandbox/arthur/xml_transform/xml_transform.pro @@ -0,0 +1,20 @@ +###################################################################### +# Automatically generated by qmake (2.01a) jeu. juil. 8 16:33:27 2010 +###################################################################### + +TEMPLATE = app +TARGET = +DEPENDPATH += . +INCLUDEPATH += . +QMAKE_CXXFLAGS += -I/amd/beyrouth/home/lrde/stage/crepin/git/olena/milena -I/amd/beyrouth/home/lrde/stage/crepin/git/olena/ +QT += xml +LIBS += `Magick++-config --libs` + +# Input +HEADERS += domitem.hh dommodel.hh image_crop.hh loader.hh xml_transform.hh +SOURCES += domitem.cc \ + dommodel.cc \ + image_crop.cc \ + loader.cc \ + main.cc \ + xml_transform.cc -- 1.5.6.5
14Â years, 10Â months
1
0
0
0
last-svn-commit-481-g5b69120 XML Tranform.
by Arthur Crepin-Leblond
* scribo/sandbox/arthur/xml_transform/xml_transform.cc, * scribo/sandbox/arthur/xml_transform/xml_transform.hh: Facade. * scribo/sandbox/arthur/xml_transform/image_crop.cc, * scribo/sandbox/arthur/xml_transform/image_crop.hh: Image process. * scribo/sandbox/arthur/xml_transform/loader.cc, * scribo/sandbox/arthur/xml_transform/loader.hh: XML loader. * scribo/sandbox/arthur/xml_transform/main.cc * scribo/sandbox/arthur/xml_transform/templates/html/xsl.xsl * scribo/sandbox/arthur/xml_transform/xml_transform.pro * scribo/sandbox/arthur/xml_transform/README * scribo/sandbox/arthur/xml_transform/common.cc, * scribo/sandbox/arthur/xml_transform/common.hh, * scribo/sandbox/arthur/xml_transform/moc_dommodel.cpp, * scribo/sandbox/arthur/xml_transform/templates/html/xsl_base64.xsl, * scribo/sandbox/arthur/xml_transform/templates/pdf/main64.xsl, * scribo/sandbox/arthur/xml_transform/templates/pdf/regions_base64.xsl: New. * scribo/sandbox/arthur/xml_transform/domitem.cc, * scribo/sandbox/arthur/xml_transform/domitem.hh, * scribo/sandbox/arthur/xml_transform/dommodel.cc, * scribo/sandbox/arthur/xml_transform/dommodel.hh: Delete. * scribo/sandbox/arthur/xml_transform/templates/pdf/regions.xsl: Rename as... * scribo/sandbox/arthur/xml_transform/templates/pdf/regions_png.xsl:...this. --- scribo/sandbox/ChangeLog | 33 +++ scribo/sandbox/arthur/xml_transform/README | 25 +- scribo/sandbox/arthur/xml_transform/common.cc | 13 + scribo/sandbox/arthur/xml_transform/common.hh | 16 + scribo/sandbox/arthur/xml_transform/domitem.cc | 98 ------- scribo/sandbox/arthur/xml_transform/domitem.hh | 75 ----- scribo/sandbox/arthur/xml_transform/dommodel.cc | 198 ------------- scribo/sandbox/arthur/xml_transform/dommodel.hh | 85 ------ scribo/sandbox/arthur/xml_transform/image_crop.cc | 303 ++++++++++++++------ scribo/sandbox/arthur/xml_transform/image_crop.hh | 19 +- scribo/sandbox/arthur/xml_transform/loader.cc | 124 +++++---- scribo/sandbox/arthur/xml_transform/loader.hh | 17 +- scribo/sandbox/arthur/xml_transform/main.cc | 78 +++++- .../arthur/xml_transform/templates/html/xsl.xsl | 3 +- .../templates/html/{xsl.xsl => xsl_base64.xsl} | 9 +- .../templates/pdf/{main.xsl => main64.xsl} | 2 +- .../pdf/{regions.xsl => regions_base64.xsl} | 6 +- .../templates/pdf/{regions.xsl => regions_png.xsl} | 0 .../sandbox/arthur/xml_transform/xml_transform.cc | 113 +++++--- .../sandbox/arthur/xml_transform/xml_transform.hh | 20 +- .../sandbox/arthur/xml_transform/xml_transform.pro | 12 +- 21 files changed, 564 insertions(+), 685 deletions(-) create mode 100644 scribo/sandbox/arthur/xml_transform/common.cc create mode 100644 scribo/sandbox/arthur/xml_transform/common.hh delete mode 100644 scribo/sandbox/arthur/xml_transform/domitem.cc delete mode 100644 scribo/sandbox/arthur/xml_transform/domitem.hh delete mode 100644 scribo/sandbox/arthur/xml_transform/dommodel.cc delete mode 100644 scribo/sandbox/arthur/xml_transform/dommodel.hh copy scribo/sandbox/arthur/xml_transform/templates/html/{xsl.xsl => xsl_base64.xsl} (97%) copy scribo/sandbox/arthur/xml_transform/templates/pdf/{main.xsl => main64.xsl} (94%) copy scribo/sandbox/arthur/xml_transform/templates/pdf/{regions.xsl => regions_base64.xsl} (91%) rename scribo/sandbox/arthur/xml_transform/templates/pdf/{regions.xsl => regions_png.xsl} (100%) diff --git a/scribo/sandbox/ChangeLog b/scribo/sandbox/ChangeLog index d3f537b..0fb733f 100644 --- a/scribo/sandbox/ChangeLog +++ b/scribo/sandbox/ChangeLog @@ -1,3 +1,36 @@ +2010-07-15 Arthur Crepin-Leblond <crepin(a)stockholm.lrde.epita.fr> + + XML Tranform. + + * scribo/sandbox/arthur/xml_transform/xml_transform.cc, + * scribo/sandbox/arthur/xml_transform/xml_transform.hh: Facade. + + * scribo/sandbox/arthur/xml_transform/image_crop.cc, + * scribo/sandbox/arthur/xml_transform/image_crop.hh: Image process. + + * scribo/sandbox/arthur/xml_transform/loader.cc, + * scribo/sandbox/arthur/xml_transform/loader.hh: XML loader. + + * scribo/sandbox/arthur/xml_transform/main.cc + * scribo/sandbox/arthur/xml_transform/templates/html/xsl.xsl + * scribo/sandbox/arthur/xml_transform/xml_transform.pro + * scribo/sandbox/arthur/xml_transform/README + + * scribo/sandbox/arthur/xml_transform/common.cc, + * scribo/sandbox/arthur/xml_transform/common.hh, + * scribo/sandbox/arthur/xml_transform/templates/html/xsl_base64.xsl, + * scribo/sandbox/arthur/xml_transform/templates/pdf/main64.xsl, + * scribo/sandbox/arthur/xml_transform/templates/pdf/regions_base64.xsl: New. + + * scribo/sandbox/arthur/xml_transform/domitem.cc, + * scribo/sandbox/arthur/xml_transform/domitem.hh, + * scribo/sandbox/arthur/xml_transform/dommodel.cc, + * scribo/sandbox/arthur/xml_transform/dommodel.hh: Delete. + + * scribo/sandbox/arthur/xml_transform/templates/pdf/regions.xsl: Rename as... + * scribo/sandbox/arthur/xml_transform/templates/pdf/regions_png.xsl:...this. + + 2010-07-05 Arthur Crepin-Leblond <crepin(a)stockholm.lrde.epita.fr> ICDAR XML to HTML. diff --git a/scribo/sandbox/arthur/xml_transform/README b/scribo/sandbox/arthur/xml_transform/README index e0bfbc8..1f358e3 100644 --- a/scribo/sandbox/arthur/xml_transform/README +++ b/scribo/sandbox/arthur/xml_transform/README @@ -1,19 +1,24 @@ -xml_transform <option> <xml_file> <ppm_file> <output_dir> - -Transforms an ICDAR XML file to different kind of output. +xml_transform OPTIONS: - --html: Produce a HTML output - -Once process is finished, open output.xml with your internet browser. If this one supports XSLT, there is no problem to display the result but if it does not support it (like Konqueror or Chrome in local), you should run `sh html_generator.sh` (xsltproc package required) to generate a HTML file readable by all browsers. +HTML output: + --html <xml> <ppm> <out_dir> : HTML output with non-text regions croped into many png files. + --html-base64 <xml> <out_dir> : HTML output from a container XML file. - --pdf: Produce a PDF output, regions will be cropped as follows in the XML file. - --pdf-no-crop: Produce a PDF output without cropping regions, the entire picture will be displayed. +PDF output: + --pdf <xml> <ppm> <out_dir> : PDF output with non-text regions croped 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 is not directly created once the process is finished, to produce it, go to the output_dir and run `sh pdf_generator.sh` (fop >= 0.95 required). +Base 64 operations: + --to-base64 <xml> <ppm> <out_xml> : Produces a container XML file by converting croped 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. BUILD: -Chnage the environment variable QMAKE_CXXFLAGS to indicate the correct paths to milena and olena then, just type qmake and make. \ No newline at end of file +Chnage the environment variable QMAKE_CXXFLAGS to indicate the correct paths to milena and olena in the .pro file then, just type qmake and make. \ No newline at end of file diff --git a/scribo/sandbox/arthur/xml_transform/common.cc b/scribo/sandbox/arthur/xml_transform/common.cc new file mode 100644 index 0000000..05117b2 --- /dev/null +++ b/scribo/sandbox/arthur/xml_transform/common.cc @@ -0,0 +1,13 @@ +# include "common.hh" + +QString Common::get_file_name(QString image) +{ + QString tmp = image.mid(image.lastIndexOf("/") + 1); + tmp.chop(tmp.size() - tmp.lastIndexOf(".")); + return tmp; +} + +QString Common::get_file_ext(QString image) +{ + return image.right(image.size() - image.lastIndexOf(".")); +} diff --git a/scribo/sandbox/arthur/xml_transform/common.hh b/scribo/sandbox/arthur/xml_transform/common.hh new file mode 100644 index 0000000..f72218f --- /dev/null +++ b/scribo/sandbox/arthur/xml_transform/common.hh @@ -0,0 +1,16 @@ +#ifndef COMMON_HH +# define COMMON_HH + +# include <QtGui> + +class Common : public QObject +{ + Q_OBJECT +public: + Common() {} + ~Common() {} + static QString get_file_name(QString image); + static QString get_file_ext(QString image); +}; + +#endif // ! COMMON_HH diff --git a/scribo/sandbox/arthur/xml_transform/domitem.cc b/scribo/sandbox/arthur/xml_transform/domitem.cc deleted file mode 100644 index 66e989a..0000000 --- a/scribo/sandbox/arthur/xml_transform/domitem.cc +++ /dev/null @@ -1,98 +0,0 @@ -/**************************************************************************** - ** - ** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies). - ** Contact: Qt Software Information (qt-info(a)nokia.com) - ** - ** This file is part of the example classes of the Qt Toolkit. - ** - ** Commercial Usage - ** Licensees holding valid Qt Commercial licenses may use this file in - ** accordance with the Qt Commercial License Agreement provided with the - ** Software or, alternatively, in accordance with the terms contained in - ** a written agreement between you and Nokia. - ** - ** - ** GNU General Public License Usage - ** Alternatively, this file may be used under the terms of the GNU - ** General Public License versions 2.0 or 3.0 as published by the Free - ** Software Foundation and appearing in the file LICENSE.GPL included in - ** the packaging of this file. Please review the following information - ** to ensure GNU General Public Licensing requirements will be met: - **
http://www.fsf.org/licensing/licenses/info/GPLv2.html
and - **
http://www.gnu.org/copyleft/gpl.html
. In addition, as a special - ** exception, Nokia gives you certain additional rights. These rights - ** are described in the Nokia Qt GPL Exception version 1.3, included in - ** the file GPL_EXCEPTION.txt in this package. - ** - ** Qt for Windows(R) Licensees - ** As a special exception, Nokia, as the sole copyright holder for Qt - ** Designer, grants users of the Qt/Eclipse Integration plug-in the - ** right for the Qt/Eclipse Integration to link to functionality - ** provided by Qt Designer and its related libraries. - ** - ** If you are unsure which license is appropriate for your use, please - ** contact the sales department at qt-sales(a)nokia.com. - ** - ****************************************************************************/ - -// -// Document layout viewer. -// -// Copyright (C) 2009 Florent D'Halluin. -// -// This program 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; either version 2 -// of the License, or (at your option) any later version. -// -// The complete GNU General Public Licence Notice can be found as the -// `COPYING' file in the root directory. -// - -#include <QtXml> - -#include "domitem.hh" - -DomItem::DomItem(QDomNode &node, int row, DomItem *parent) -{ - domNode = node; - // Record the item's location within its parent. - rowNumber = row; - parentItem = parent; -} - -DomItem::~DomItem() -{ - QHash<int,DomItem*>::iterator it; - for (it = childItems.begin(); it != childItems.end(); ++it) - delete it.value(); -} - -QDomNode DomItem::node() const -{ - return domNode; -} - -DomItem *DomItem::parent() -{ - return parentItem; -} - -DomItem *DomItem::child(int i) -{ - if (childItems.contains(i)) - return childItems[i]; - - if (i >= 0 && i < domNode.childNodes().count()) { - QDomNode childNode = domNode.childNodes().item(i); - DomItem *childItem = new DomItem(childNode, i, this); - childItems[i] = childItem; - return childItem; - } - return 0; -} - -int DomItem::row() -{ - return rowNumber; -} diff --git a/scribo/sandbox/arthur/xml_transform/domitem.hh b/scribo/sandbox/arthur/xml_transform/domitem.hh deleted file mode 100644 index a5c22cc..0000000 --- a/scribo/sandbox/arthur/xml_transform/domitem.hh +++ /dev/null @@ -1,75 +0,0 @@ - /**************************************************************************** - ** - ** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies). - ** Contact: Qt Software Information (qt-info(a)nokia.com) - ** - ** This file is part of the example classes of the Qt Toolkit. - ** - ** Commercial Usage - ** Licensees holding valid Qt Commercial licenses may use this file in - ** accordance with the Qt Commercial License Agreement provided with the - ** Software or, alternatively, in accordance with the terms contained in - ** a written agreement between you and Nokia. - ** - ** - ** GNU General Public License Usage - ** Alternatively, this file may be used under the terms of the GNU - ** General Public License versions 2.0 or 3.0 as published by the Free - ** Software Foundation and appearing in the file LICENSE.GPL included in - ** the packaging of this file. Please review the following information - ** to ensure GNU General Public Licensing requirements will be met: - **
http://www.fsf.org/licensing/licenses/info/GPLv2.html
and - **
http://www.gnu.org/copyleft/gpl.html
. In addition, as a special - ** exception, Nokia gives you certain additional rights. These rights - ** are described in the Nokia Qt GPL Exception version 1.3, included in - ** the file GPL_EXCEPTION.txt in this package. - ** - ** Qt for Windows(R) Licensees - ** As a special exception, Nokia, as the sole copyright holder for Qt - ** Designer, grants users of the Qt/Eclipse Integration plug-in the - ** right for the Qt/Eclipse Integration to link to functionality - ** provided by Qt Designer and its related libraries. - ** - ** If you are unsure which license is appropriate for your use, please - ** contact the sales department at qt-sales(a)nokia.com. - ** - ****************************************************************************/ - -// -// Document layout viewer. -// -// Copyright (C) 2009 Florent D'Halluin. -// -// This program 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; either version 2 -// of the License, or (at your option) any later version. -// -// The complete GNU General Public Licence Notice can be found as the -// `COPYING' file in the root directory. -// - -#ifndef DOMITEM_H -#define DOMITEM_H - -#include <QDomNode> -#include <QHash> - -class DomItem -{ -public: - DomItem(QDomNode &node, int row, DomItem *parent = 0); - ~DomItem(); - DomItem *child(int i); - DomItem *parent(); - QDomNode node() const; - int row(); - -private: - QDomNode domNode; - QHash<int,DomItem*> childItems; - DomItem *parentItem; - int rowNumber; -}; - -#endif diff --git a/scribo/sandbox/arthur/xml_transform/dommodel.cc b/scribo/sandbox/arthur/xml_transform/dommodel.cc deleted file mode 100644 index baaf9a7..0000000 --- a/scribo/sandbox/arthur/xml_transform/dommodel.cc +++ /dev/null @@ -1,198 +0,0 @@ -/**************************************************************************** - ** - ** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies). - ** Contact: Qt Software Information (qt-info(a)nokia.com) - ** - ** This file is part of the example classes of the Qt Toolkit. - ** - ** Commercial Usage - ** Licensees holding valid Qt Commercial licenses may use this file in - ** accordance with the Qt Commercial License Agreement provided with the - ** Software or, alternatively, in accordance with the terms contained in - ** a written agreement between you and Nokia. - ** - ** - ** GNU General Public License Usage - ** Alternatively, this file may be used under the terms of the GNU - ** General Public License versions 2.0 or 3.0 as published by the Free - ** Software Foundation and appearing in the file LICENSE.GPL included in - ** the packaging of this file. Please review the following information - ** to ensure GNU General Public Licensing requirements will be met: - **
http://www.fsf.org/licensing/licenses/info/GPLv2.html
and - **
http://www.gnu.org/copyleft/gpl.html
. In addition, as a special - ** exception, Nokia gives you certain additional rights. These rights - ** are described in the Nokia Qt GPL Exception version 1.3, included in - ** the file GPL_EXCEPTION.txt in this package. - ** - ** Qt for Windows(R) Licensees - ** As a special exception, Nokia, as the sole copyright holder for Qt - ** Designer, grants users of the Qt/Eclipse Integration plug-in the - ** right for the Qt/Eclipse Integration to link to functionality - ** provided by Qt Designer and its related libraries. - ** - ** If you are unsure which license is appropriate for your use, please - ** contact the sales department at qt-sales(a)nokia.com. - ** - ****************************************************************************/ - -// -// Document layout viewer. -// -// Copyright (C) 2009 Florent D'Halluin. -// -// This program 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; either version 2 -// of the License, or (at your option) any later version. -// -// The complete GNU General Public Licence Notice can be found as the -// `COPYING' file in the root directory. -// - -#include <QtGui> -#include <QtXml> - -#include "domitem.hh" -#include "dommodel.hh" - -DomModel::DomModel(QDomDocument document, QObject *parent) - : QAbstractItemModel(parent), domDocument(document) -{ - rootItem = new DomItem(domDocument, 0); -} - -DomModel::~DomModel() -{ - delete rootItem; -} - -int DomModel::columnCount(const QModelIndex &/*parent*/) const -{ - return 3; -} - -QVariant DomModel::data(const QModelIndex &index, int role) const -{ - if (!index.isValid()) - return QVariant(); - - DomItem *item = static_cast<DomItem*>(index.internalPointer()); - QDomNode node = item->node(); - QDomNamedNodeMap attributeMap = node.attributes(); - - if (role == Qt::DisplayRole) - { - QStringList attributes; - - switch (index.column()) - { - case 0: - return node.nodeName(); - case 1: - for (int i = 0; i < attributeMap.count(); ++i) - { - QDomNode attribute = attributeMap.item(i); - attributes << attribute.nodeName() + "=\"" - + attribute.nodeValue() + "\""; - } - return attributes.join(" "); - case 2: - return node.nodeValue().split("\n").join(" "); - default: - return QVariant(); - } - } - else if (role == Qt::UserRole) - { - QMap<QString, QVariant> attributes; - switch (index.column()) - { - case 1: - for (int i = 0; i < attributeMap.count(); ++i) - { - QDomNode attribute = attributeMap.item(i); - attributes[attribute.nodeName()] = attribute.nodeValue(); - } - return attributes; - default: - return QVariant(); - } - } - return QVariant(); -} - -Qt::ItemFlags DomModel::flags(const QModelIndex &index) const -{ - if (!index.isValid()) - return 0; - - return Qt::ItemIsEnabled | Qt::ItemIsSelectable; -} - -QVariant DomModel::headerData(int section, Qt::Orientation orientation, - int role) const -{ - if (orientation == Qt::Horizontal && role == Qt::DisplayRole) { - switch (section) { - case 0: - return tr("Name"); - case 1: - return tr("Attributes"); - case 2: - return tr("Value"); - default: - return QVariant(); - } - } - - return QVariant(); -} - -QModelIndex DomModel::index(int row, int column, const QModelIndex &parent) - const -{ - if (!hasIndex(row, column, parent)) - return QModelIndex(); - - DomItem *parentItem; - - if (!parent.isValid()) - parentItem = rootItem; - else - parentItem = static_cast<DomItem*>(parent.internalPointer()); - - DomItem *childItem = parentItem->child(row); - if (childItem) - return createIndex(row, column, childItem); - else - return QModelIndex(); -} - -QModelIndex DomModel::parent(const QModelIndex &child) const -{ - if (!child.isValid()) - return QModelIndex(); - - DomItem *childItem = static_cast<DomItem*>(child.internalPointer()); - DomItem *parentItem = childItem->parent(); - - if (!parentItem || parentItem == rootItem) - return QModelIndex(); - - return createIndex(parentItem->row(), 0, parentItem); -} - -int DomModel::rowCount(const QModelIndex &parent) const -{ - if (parent.column() > 0) - return 0; - - DomItem *parentItem; - - if (!parent.isValid()) - parentItem = rootItem; - else - parentItem = static_cast<DomItem*>(parent.internalPointer()); - - return parentItem->node().childNodes().count(); -} diff --git a/scribo/sandbox/arthur/xml_transform/dommodel.hh b/scribo/sandbox/arthur/xml_transform/dommodel.hh deleted file mode 100644 index 16c5a23..0000000 --- a/scribo/sandbox/arthur/xml_transform/dommodel.hh +++ /dev/null @@ -1,85 +0,0 @@ -/**************************************************************************** - ** - ** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies). - ** Contact: Qt Software Information (qt-info(a)nokia.com) - ** - ** This file is part of the example classes of the Qt Toolkit. - ** - ** Commercial Usage - ** Licensees holding valid Qt Commercial licenses may use this file in - ** accordance with the Qt Commercial License Agreement provided with the - ** Software or, alternatively, in accordance with the terms contained in - ** a written agreement between you and Nokia. - ** - ** - ** GNU General Public License Usage - ** Alternatively, this file may be used under the terms of the GNU - ** General Public License versions 2.0 or 3.0 as published by the Free - ** Software Foundation and appearing in the file LICENSE.GPL included in - ** the packaging of this file. Please review the following information - ** to ensure GNU General Public Licensing requirements will be met: - **
http://www.fsf.org/licensing/licenses/info/GPLv2.html
and - **
http://www.gnu.org/copyleft/gpl.html
. In addition, as a special - ** exception, Nokia gives you certain additional rights. These rights - ** are described in the Nokia Qt GPL Exception version 1.3, included in - ** the file GPL_EXCEPTION.txt in this package. - ** - ** Qt for Windows(R) Licensees - ** As a special exception, Nokia, as the sole copyright holder for Qt - ** Designer, grants users of the Qt/Eclipse Integration plug-in the - ** right for the Qt/Eclipse Integration to link to functionality - ** provided by Qt Designer and its related libraries. - ** - ** If you are unsure which license is appropriate for your use, please - ** contact the sales department at qt-sales(a)nokia.com. - ** - ****************************************************************************/ - -// -// Document layout viewer. -// -// Copyright (C) 2009 Florent D'Halluin. -// -// This program 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; either version 2 -// of the License, or (at your option) any later version. -// -// The complete GNU General Public Licence Notice can be found as the -// `COPYING' file in the root directory. -// - -#ifndef DOMMODEL_H -#define DOMMODEL_H - -#include <QAbstractItemModel> -#include <QDomDocument> -#include <QModelIndex> -#include <QVariant> - -class DomItem; - -class DomModel : public QAbstractItemModel -{ - Q_OBJECT - - public: - DomModel(QDomDocument document, QObject *parent = 0); - ~DomModel(); - - QVariant data(const QModelIndex &index, int role) const; - Qt::ItemFlags flags(const QModelIndex &index) const; - QVariant headerData(int section, Qt::Orientation orientation, - int role = Qt::DisplayRole) const; - QModelIndex index(int row, int column, - const QModelIndex &parent = QModelIndex()) const; - QModelIndex parent(const QModelIndex &child) const; - int rowCount(const QModelIndex &parent = QModelIndex()) const; - int columnCount(const QModelIndex &parent = QModelIndex()) const; - -private: - QDomDocument domDocument; - DomItem *rootItem; -}; - -#endif diff --git a/scribo/sandbox/arthur/xml_transform/image_crop.cc b/scribo/sandbox/arthur/xml_transform/image_crop.cc index aa17c31..8aafe45 100644 --- a/scribo/sandbox/arthur/xml_transform/image_crop.cc +++ b/scribo/sandbox/arthur/xml_transform/image_crop.cc @@ -25,7 +25,7 @@ # include "image_crop.hh" # include "loader.hh" -# include "dommodel.hh" +# include "common.hh" # include <limits.h> @@ -36,7 +36,10 @@ #include <mln/io/magick/save.hh> #include <mln/io/ppm/all.hh> -ImageCrop::ImageCrop() +ImageCrop::ImageCrop(QString xml, QString img, QString output) : + xml_(xml), + image_(img), + output_dir_(output) { } @@ -44,95 +47,242 @@ ImageCrop::~ImageCrop() { } -void ImageCrop::save_image(QString image, QString output) +/* Save PPM image to PNG format in output_dir/img. */ +void ImageCrop::save_image(QString file) { using namespace mln; image2d<value::rgb8> ima; - io::ppm::load(ima, image.toStdString()); + io::ppm::load(ima, image_.toStdString()); - io::magick::save(ima, output.toStdString() + "img/image.png"); + QString filename; + if (file == QString::Null()) + filename = Common::get_file_name(image_); + else + filename = file; + + std::cout << "Saving " << image_.toStdString() << " to " + << output_dir_.toStdString() << "img/" + << filename.toStdString() << ".png" + << std::endl; + + io::magick::save(ima, output_dir_.toStdString() + "img/" + filename.toStdString() + ".png"); } -void ImageCrop::crop_regions(QString xml_file, QString image_file, QString output) +/* Return the image in base 64. */ +QString ImageCrop::img_to_base64() { - Loader loader; + QFile f(image_); + f.open(QIODevice::ReadOnly); + + QByteArray file_content = f.readAll(); - QFile f(image_file); + f.close(); - if (!f.exists()) + return file_content.toBase64(); +} + +/* Decode the base 64 string str and save into output_dir_/img/img_name. */ +bool ImageCrop::img_from_base64(QString str, QString img_name, QString mime) +{ + QByteArray ba; + + ba = ba.append(str); + QByteArray out_ba = QByteArray::fromBase64(ba); + QImage ima = QImage::fromData(out_ba); + + return ima.save(output_dir_ + "img/" + img_name + "." + mime); +} + +/* Read all regions of the XML file and save all base 64 data into output_dir/img */ +void ImageCrop::from_base64() +{ + QFile f_in(xml_); + f_in.open(QIODevice::ReadOnly); + + QDomDocument doc; + doc.setContent(&f_in); + f_in.close(); + + QDomElement root = doc.documentElement(); + QDomNode child = root.firstChild(); + + while (!child.isNull() && !child.toElement().tagName().contains("page")) + child = child.nextSibling(); + + child = child.firstChild(); + while (!child.isNull()) { - qDebug() << "Image doesn't exist !"; - abort(); + if (child.toElement().tagName().contains(QRegExp("(image|graphic|chart|separator|table)_region"))) + { + QDomNode node = child.firstChild(); + QString id = child.toElement().attribute("id", "none"); + + while (!node.isNull() && !node.toElement().tagName().contains("container")) + node = node.nextSibling(); + + if (!node.isNull()) + { + QString data = node.firstChildElement("data").text(); + QString mime = node.firstChildElement("mime").text(); + img_from_base64(data, id, mime); + } + } + child = child.nextSibling(); + } +} + +/* Tranfsorm the input XML file associated with images into a single + XML output containing datas if images in base 64. */ +void ImageCrop::to_base64(QString out_file, bool no_crop) +{ + QFile file(xml_); + file.open(QIODevice::ReadOnly); + QTextStream stream(&file); + + QFile file2(out_file); + file2.open(QIODevice::ReadWrite); + QTextStream stream2(&file2); + + QString line = stream.readLine(); + stream2 << line; + line = stream.readLine(); + + // HEAD + while (!line.contains("<page")) + { + stream2 << "\n" << line; + line = stream.readLine(); + } + + if (no_crop) + { + stream2 << "\n" << line; + + stream2 << "\n" << " <image_region id=\"image\">"; + stream2 << "\n" << " <container>\n"; + stream2 << " <mime>png</mime>\n"; + + QString file_name = Common::get_file_name(image_); + save_image(); + QFile img(output_dir_ + "img/" + file_name + ".png"); + + img.open(QIODevice::ReadOnly); + stream2 << " <data>\n"; + + QByteArray byte = img.readAll(); + stream2 << byte.toBase64(); + + stream2 << " </data>"; + stream2 << "\n </container>"; + stream2 << "\n <coords>\n"; + + stream2 << " <point x=\"0\" y=\"0\" />\n"; + stream2 << " <point x=\"0\" y=\"0\" />"; + + stream2 << "\n </coords>"; + stream2 << "\n" << " </image_region>\n"; + img.close(); + + line = stream.readLine(); + + while(!line.contains("</pcGts>")) + { + stream2 << "\n" << line; + line = stream.readLine(); + } + + stream2 << "\n" << line; } - DomModel* layout = loader.xml_to_dom(xml_file); - if (layout) + else { - QModelIndex pcGts = layout->index(1, 0); - QModelIndex page = layout->index(1, 0, pcGts); - QModelIndex region; - QModelIndex attributes; - QModelIndex coords; - QModelIndex point; - bool regions_found = false; - - for (int i = 0; true; ++i) + while(!line.contains("</pcGts>")) { - region = layout->index(i, 0, page); - attributes = layout->index(i, 1, page); + stream2 << "\n" << line; + if (line.contains(QRegExp("<(image|graphic|chart|separator|table)_region"))) + { + stream2 << "\n" << " <container>\n"; + stream2 << " <mime>png</mime>\n"; + + QDomDocument doc; + doc.setContent(line); + + QDomElement root = doc.documentElement(); + QString id = root.attribute("id", "none"); - QString name = layout->data(region, Qt::DisplayRole).toString(); - coords = layout->index(0, 0, region); + QFile img(output_dir_ + "img/" + id + ".png"); - bool is_region = - name == QString("image_region") - || name == QString("graphic_region") - || name == QString("separator_region") - || name == QString("chart_region") - || name == QString("table_region") ; + img.open(QIODevice::ReadOnly); + stream2 << " <data>\n"; - if (!region.isValid() || !coords.isValid()) - break; + QByteArray byte = img.readAll(); + stream2 << byte.toBase64(); + + stream2 << " </data>"; + stream2 << "\n </container>"; + img.close(); + } - if (is_region) + line = stream.readLine(); + } + + stream2 << "\n" << line; + } + + file2.close(); + file.close(); +} + +bool ImageCrop::crop_regions() +{ + Loader loader; + QFile f(xml_); + f.open(QIODevice::ReadOnly); + QDomDocument doc; + + if (doc.setContent(&f)) + { + bool found_regions = false; + f.close(); + + QDomElement root = doc.documentElement(); + QDomNode page = root.firstChild(); + + while (!page.isNull() && !page.toElement().tagName().contains("page")) + page = page.nextSibling(); + + if (page.isNull()) + return false; + + QDomNode region = page.firstChild(); + + while (!region.isNull()) + { + if (region.toElement().tagName().contains(QRegExp("(image|graphic|chart|separator|table)_region"))) { - regions_found = true; - QMap<QString, QVariant> data = - layout->data(attributes, Qt::UserRole).toMap(); + found_regions = true; - QString id; - QMap<QString, QVariant>::iterator it = data.find("id"); + QDomNode coords = region.firstChild(); + QString id = region.toElement().attribute("id", "none"); - if (it == data.end() || it.key() != "id") - qDebug() << "WTF_Error : No image region."; + qDebug() << region.toElement().tagName(); - while (it != data.end() && it.key() == "id") - { - qDebug() << name; - id = it.value().toString(); - qDebug() << it.key() + " = " + it.value().toString(); - ++it; - } + while (!coords.isNull() && !coords.toElement().tagName().contains("coords")) + coords = coords.nextSibling(); + if (coords.isNull()) + break; + + QDomNode point = coords.firstChild(); int x_max = 0; int y_max = 0; int x_min = INT_MAX; int y_min = INT_MAX; - // QVector<QMap<QString, QVariant> > vect; - for (int j = 0; true; ++j) + while (!point.isNull()) { - // Navigate to the coordinate list - point = layout->index(j, 1, coords); - if (!point.isValid()) - break; - - QMap<QString, QVariant> data = - layout->data(point, Qt::UserRole).toMap(); - int x = data["x"].toInt(); - int y = data["y"].toInt(); - - // vect << data; + int x = point.toElement().attribute("x", "none").toInt(); + int y = point.toElement().attribute("y", "none").toInt(); if (x < x_min) x_min = x; @@ -144,41 +294,26 @@ void ImageCrop::crop_regions(QString xml_file, QString image_file, QString outpu if (y > y_max) y_max = y; + point = point.nextSibling(); } using namespace mln; - box2d box = make::box2d(y_min, x_min, y_max, x_max); image2d<value::rgb8> ima; - io::ppm::load(ima, image_file.toStdString()); + io::ppm::load(ima, image_.toStdString()); ima = scribo::preprocessing::crop(ima, box); - // image2d<bool> mask = make::box2d(y_min, x_min, y_max, x_max); - // data::fill(mask, true); - - /*for (int a = 1; a < vect.size(); ++a) - { - int x = vect[a]["x"].toInt(); - int y = vect[a]["y"].toInt(); - - data::fill((mask | make::box2d(y, x, y, x)).rw(), false); - }*/ - - // io::pbm::save(mask, "output/img/mask_" + id.toStdString()); - io::magick::save(ima, output.toStdString() + "img/" + id.toStdString() + ".png"); - + io::magick::save(ima, output_dir_.toStdString() + "img/" + id.toStdString() + ".png"); } + region = region.nextSibling(); } - if (!regions_found) - qDebug() << "No regions found."; - + return found_regions; } else { - qDebug() << "Error with XML file."; + f.close(); + return false; } - - } diff --git a/scribo/sandbox/arthur/xml_transform/image_crop.hh b/scribo/sandbox/arthur/xml_transform/image_crop.hh index e4b0a38..9b034cc 100644 --- a/scribo/sandbox/arthur/xml_transform/image_crop.hh +++ b/scribo/sandbox/arthur/xml_transform/image_crop.hh @@ -26,7 +26,8 @@ #ifndef IMAGE_CROP_HH # define IMAGE_CROP_HH -# include <QtGui> +#include <QDomDocument> +# include <QtCore> class DomModel; @@ -35,12 +36,22 @@ class ImageCrop : public QObject Q_OBJECT public: - ImageCrop(); + ImageCrop(QString xml, QString img, QString output); ~ImageCrop(); - void save_image(QString image, QString output); - void crop_regions(QString xml_file, QString image_file, QString output); + void save_image(QString file = QString::Null()); + bool crop_regions(); + QString img_to_base64(); + bool img_from_base64(QString str, QString img_name, QString mime); + void to_base64(QString out_file, bool no_crop); + + void from_base64(); + +private: + QString xml_; + QString image_; + QString output_dir_; }; #endif /* !IMAGE_CROP_HH */ diff --git a/scribo/sandbox/arthur/xml_transform/loader.cc b/scribo/sandbox/arthur/xml_transform/loader.cc index 5623928..2b64337 100644 --- a/scribo/sandbox/arthur/xml_transform/loader.cc +++ b/scribo/sandbox/arthur/xml_transform/loader.cc @@ -24,8 +24,6 @@ // executable file might be covered by the GNU General Public License. # include "loader.hh" -# include "dommodel.hh" -# include "xml_transform.hh" Loader::Loader() { @@ -35,21 +33,21 @@ Loader::~Loader() { } -DomModel* Loader::xml_to_dom(QString output) +QDomDocument* Loader::xml_to_dom(QString xml_file) { - QString file_path = output; - - QFile file(file_path); + QFile file(xml_file); if (file.open(QIODevice::ReadOnly)) { - QDomDocument document; - if (document.setContent(&file)) + QDomDocument* document = new QDomDocument; + if (document->setContent(&file)) { - return new DomModel(document); + file.close(); + return document; } } + file.close(); return 0; } @@ -61,9 +59,7 @@ bool Loader::set_output(QString& output) output.append("/"); if (!dir.exists()) - { - return dir.mkpath("."); - } + return dir.mkpath("."); else { QStringList list = dir.entryList(QDir::Writable | QDir::AllDirs); @@ -72,25 +68,38 @@ bool Loader::set_output(QString& output) } -void Loader::add_html_templates(QString output) +void Loader::add_html_templates(bool base64, QString output) { - QFile gen("templates/html/html_generator.sh"); gen.copy(output + "html_generator.sh"); QFile css("templates/html/css.css"); css.copy(output + "css.css"); - QFile xsl("templates/html/xsl.xsl"); - xsl.copy(output + "xsl.xsl"); - + if (base64) + { + QFile xsl("templates/html/xsl_base64.xsl"); + xsl.copy(output + "xsl.xsl"); + } + else + { + QFile xsl("templates/html/xsl.xsl"); + xsl.copy(output + "xsl.xsl"); + } } -void Loader::add_pdf_templates(bool crop, QString output) +void Loader::add_pdf_templates(bool crop, bool base64, QString output) { - - QFile regions("templates/pdf/regions.xsl"); - regions.copy(output + "regions.xsl"); + if (base64) + { + QFile regions("templates/pdf/regions_base64.xsl"); + regions.copy(output + "regions.xsl"); + } + else + { + QFile regions("templates/pdf/regions_png.xsl"); + regions.copy(output + "regions.xsl"); + } QFile gen("templates/pdf/pdf_generator.sh"); gen.copy(output + "pdf_generator.sh"); @@ -104,59 +113,58 @@ void Loader::add_pdf_templates(bool crop, QString output) } else { - QFile xsl("templates/pdf/main.xsl"); - xsl.copy(output + "main.xsl"); + if (base64) + { + QFile xsl("templates/pdf/main.xsl"); + xsl.copy(output + "main.xsl"); + } + else + { + QFile xsl("templates/pdf/main64.xsl"); + xsl.copy(output + "main.xsl"); + } } } -bool Loader::load_xml(QString xml_file, bool html, QString output) +bool Loader::xml_output(QString xml_file, bool html, QString output) { QFile file(xml_file); - if (file.exists()) - { - file.open(QIODevice::ReadOnly); - set_output(output); + file.open(QIODevice::ReadOnly); - QFile out_file(output + "output.xml"); - out_file.open(QIODevice::ReadWrite); + QFile out_file(output + "output.xml"); + out_file.open(QIODevice::ReadWrite); - QTextStream stream_in(&file); - QTextStream stream_out(&out_file); + QTextStream stream_in(&file); + QTextStream stream_out(&out_file); - QString line = stream_in.readLine(); + QString line = stream_in.readLine(); - while(!line.contains("<?xml")) - line = stream_in.readLine(); + while(!line.contains("<?xml")) + line = stream_in.readLine(); - stream_out << line; + stream_out << line; - if (html) - stream_out << "\n<?xml-stylesheet type=\"text/xsl\" href=\"xsl.xsl\" ?>"; + if (html) + stream_out << "\n<?xml-stylesheet type=\"text/xsl\" href=\"xsl.xsl\" ?>"; - // /!\ attributes of ICDAR PcGts removed. - while(!line.contains("<pcGts")) - line = stream_in.readLine(); + // /!\ attributes of ICDAR PcGts removed. + while(!line.contains("<pcGts")) + line = stream_in.readLine(); - line = stream_in.readLine(); - stream_out << "\n<pcGts>"; - - while (!line.contains("</pcGts>")) - { - stream_out << "\n" << line; - line = stream_in.readLine(); - } + line = stream_in.readLine(); + stream_out << "\n<pcGts>"; + while (!line.contains("</pcGts>")) + { stream_out << "\n" << line; + line = stream_in.readLine(); + } - file.close(); - out_file.close(); + stream_out << "\n" << line; - return true; - } - else - { - qDebug() << xml_file + " doesn't exist"; - return false; - } + file.close(); + out_file.close(); + + return true; } diff --git a/scribo/sandbox/arthur/xml_transform/loader.hh b/scribo/sandbox/arthur/xml_transform/loader.hh index 7d24254..fadceed 100644 --- a/scribo/sandbox/arthur/xml_transform/loader.hh +++ b/scribo/sandbox/arthur/xml_transform/loader.hh @@ -26,24 +26,23 @@ #ifndef LOADER_HH # define LOADER_HH -//# include <QtGui> -# include "xml_transform.hh" +# include <QtCore> +#include <QDomDocument> -class DomModel; - -class Loader +class Loader : public QObject { + Q_OBJECT public: Loader(); ~Loader(); // void merge(QString in, QString other, QString output = "output.xml"); - bool load_xml(QString xml_file, bool html, QString output); - DomModel* xml_to_dom(QString output); + bool xml_output(QString xml_file, bool html, QString output); + QDomDocument* xml_to_dom(QString xml_file); bool set_output(QString& output); - void add_pdf_templates(bool crop, QString output); - void add_html_templates(QString output); + void add_pdf_templates(bool crop, bool base64, QString output); + void add_html_templates(bool base64, QString output); }; #endif /* !LOADER_HH */ diff --git a/scribo/sandbox/arthur/xml_transform/main.cc b/scribo/sandbox/arthur/xml_transform/main.cc index 9e18cff..e097430 100644 --- a/scribo/sandbox/arthur/xml_transform/main.cc +++ b/scribo/sandbox/arthur/xml_transform/main.cc @@ -1,25 +1,89 @@ #include <iostream> +#include <QDomDocument> #include "xml_transform.hh" int main(int argc, char **argv) { - std::string man = "xml_transform <option> <xml_file> <ppm_file> <output_dir>\nOPTIONS:\n\t--html: Produce a HTML output\n\t--pdf: Produce a PDF output, regions will be croped as follows in the XML file.\n\t--pdf-no-crop: Produce a PDF output without croping regions, the entire picture will be displayed."; + 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 croped 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 croped 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 croped 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"; if (argc > 4) { std::string html = "--html"; std::string pdf = "--pdf"; std::string pdf_no_crop = "--pdf-no-crop"; - - XmlTransform xmlt(argv[4], argv[2]); + std::string to_base64 = "--to-base64"; + std::string to_base64nocrop = "--to-base64-no-crop"; if (html.compare(argv[1]) == 0) - xmlt.createHTML(argv[3]); - else if (pdf.compare(argv[1]) == 0) - xmlt.createPDF(argv[3], true); + { + XmlTransform xmlt(argv[2], argv[3], argv[4]); + xmlt.createHTML(false); + } + if (pdf.compare(argv[1]) == 0) + { + XmlTransform xmlt(argv[2], argv[3], argv[4]); + xmlt.createPDF(true, false); + } else if (pdf_no_crop.compare(argv[1]) == 0) - xmlt.createPDF(argv[3], false); + { + XmlTransform xmlt(argv[2], argv[3], argv[4]); + xmlt.createPDF(false, false); + } + else if (to_base64.compare(argv[1]) == 0) + { + XmlTransform xmlt(argv[2], argv[3], QString::Null(), argv[4]); + xmlt.toBase64(false); + } + else if (to_base64nocrop.compare(argv[1]) == 0) + { + XmlTransform xmlt(argv[2], argv[3], QString::Null(), argv[4]); + xmlt.toBase64(true); + } + else + std::cout << man << std::endl; + } + else if (argc > 3) + { + std::string pdfbase64 = "--pdf-base64"; + std::string pdfbase64nocrop = "--pdf-base64-no-crop"; + std::string htmlbase64 = "--html-base64"; + std::string from_base64 = "--from-base64"; + + if (pdfbase64.compare(argv[1]) == 0) + { + XmlTransform xmlt(argv[2], QString::Null(), argv[3]); + xmlt.createPDF(true, true); + } + else if (pdfbase64nocrop.compare(argv[1]) == 0) + { + XmlTransform xmlt(argv[2], QString::Null(), argv[3]); + xmlt.createPDF(false, true); + } + else if (htmlbase64.compare(argv[1]) == 0) + { + XmlTransform xmlt(argv[2], QString::Null(), argv[3]); + xmlt.createHTML(true); + } + else if (from_base64.compare(argv[1]) == 0) + { + XmlTransform xmlt(argv[2], QString::Null(), argv[3]); + xmlt.fromBase64(); + } else std::cout << man << std::endl; } diff --git a/scribo/sandbox/arthur/xml_transform/templates/html/xsl.xsl b/scribo/sandbox/arthur/xml_transform/templates/html/xsl.xsl index 3d6a1c5..1f29044 100644 --- a/scribo/sandbox/arthur/xml_transform/templates/html/xsl.xsl +++ b/scribo/sandbox/arthur/xml_transform/templates/html/xsl.xsl @@ -209,8 +209,7 @@ <xsl:attribute name="height"> <xsl:value-of select="$y2 - $y1" /> </xsl:attribute> - <xsl:attribute name="src"> - img/<xsl:value-of select="$id"/>.png</xsl:attribute> + <xsl:attribute name="src">img/<xsl:value-of select="$id"/>.png</xsl:attribute> </img> </div> diff --git a/scribo/sandbox/arthur/xml_transform/templates/html/xsl.xsl b/scribo/sandbox/arthur/xml_transform/templates/html/xsl_base64.xsl similarity index 97% copy from scribo/sandbox/arthur/xml_transform/templates/html/xsl.xsl copy to scribo/sandbox/arthur/xml_transform/templates/html/xsl_base64.xsl index 3d6a1c5..1c25e42 100644 --- a/scribo/sandbox/arthur/xml_transform/templates/html/xsl.xsl +++ b/scribo/sandbox/arthur/xml_transform/templates/html/xsl_base64.xsl @@ -174,9 +174,9 @@ <!-- NON-TEXT REGIONS --> <xsl:if test="name() = 'image_region' or name() = 'separator_region' or name() = 'graphic_region' or name() = 'chart_region' or name() = 'table_region'"> - <!-- id --> - <xsl:variable name="id"> - <xsl:value-of select="@id" /> + <!-- data --> + <xsl:variable name="data"> + <xsl:value-of select="container/data" /> </xsl:variable> <!-- depth --> @@ -210,7 +210,8 @@ <xsl:value-of select="$y2 - $y1" /> </xsl:attribute> <xsl:attribute name="src"> - img/<xsl:value-of select="$id"/>.png</xsl:attribute> + data:image/png;base64,<xsl:value-of select="$data"/> + </xsl:attribute> </img> </div> diff --git a/scribo/sandbox/arthur/xml_transform/templates/pdf/main.xsl b/scribo/sandbox/arthur/xml_transform/templates/pdf/main64.xsl similarity index 94% copy from scribo/sandbox/arthur/xml_transform/templates/pdf/main.xsl copy to scribo/sandbox/arthur/xml_transform/templates/pdf/main64.xsl index 065831e..ecc7443 100644 --- a/scribo/sandbox/arthur/xml_transform/templates/pdf/main.xsl +++ b/scribo/sandbox/arthur/xml_transform/templates/pdf/main64.xsl @@ -46,7 +46,7 @@ <fo:block> <fo:external-graphic> <xsl:attribute name="src"> - url('img/image.png') + data:image/png;base64,<xsl:value-of select="pcGts/page/image_region/container/data" /> </xsl:attribute> </fo:external-graphic> </fo:block> diff --git a/scribo/sandbox/arthur/xml_transform/templates/pdf/regions.xsl b/scribo/sandbox/arthur/xml_transform/templates/pdf/regions_base64.xsl similarity index 91% copy from scribo/sandbox/arthur/xml_transform/templates/pdf/regions.xsl copy to scribo/sandbox/arthur/xml_transform/templates/pdf/regions_base64.xsl index 65a8c79..add0cba 100644 --- a/scribo/sandbox/arthur/xml_transform/templates/pdf/regions.xsl +++ b/scribo/sandbox/arthur/xml_transform/templates/pdf/regions_base64.xsl @@ -11,8 +11,8 @@ pcGts/page/separator_region"> <!-- ID of the region, used to display id.png --> - <xsl:variable name="id"> - <xsl:value-of select="@id" /> + <xsl:variable name="data"> + <xsl:value-of select="container/data" /> </xsl:variable> <!-- Regions coordinates --> @@ -47,7 +47,7 @@ <fo:block> <fo:external-graphic> <xsl:attribute name="src"> - url('img/<xsl:value-of select="$id" />.png') + url('data:image/png;base64,<xsl:value-of select="$data" />') </xsl:attribute> </fo:external-graphic> </fo:block> diff --git a/scribo/sandbox/arthur/xml_transform/templates/pdf/regions.xsl b/scribo/sandbox/arthur/xml_transform/templates/pdf/regions_png.xsl similarity index 100% rename from scribo/sandbox/arthur/xml_transform/templates/pdf/regions.xsl rename to scribo/sandbox/arthur/xml_transform/templates/pdf/regions_png.xsl diff --git a/scribo/sandbox/arthur/xml_transform/xml_transform.cc b/scribo/sandbox/arthur/xml_transform/xml_transform.cc index dd35aff..ebfbed8 100644 --- a/scribo/sandbox/arthur/xml_transform/xml_transform.cc +++ b/scribo/sandbox/arthur/xml_transform/xml_transform.cc @@ -23,69 +23,114 @@ // exception does not however invalidate any other reasons why the // executable file might be covered by the GNU General Public License. +# include "xml_transform.hh" # include "image_crop.hh" # include "loader.hh" -# include "xml_transform.hh" +# include "common.hh" +# include <iostream> -XmlTransform::XmlTransform(QString output, QString xml_file) : - output_dir_(output), - xml_file_(xml_file) +XmlTransform::XmlTransform(QString xml_file, QString image_file, QString output, QString file) : + xml_file_(xml_file), + image_(image_file), + loader_(new Loader()), + file_(file) { - Loader loader; - if (!loader.set_output(output_dir_)) - abort(); + QFile fi(image_); + QFile fx(xml_file_); + + if (file_ != QString::Null()) + output_dir_ = "/tmp/xml_transform"; + else + output_dir_ = output; + + if (output_dir_ != QString::Null() && !loader_->set_output(output_dir_)) + { + std::cout << "Cant't create " << output_dir_.toStdString() << "dir! Aborting..." << std::endl; + abort(); + } + else if (!fi.exists() && image_ != QString::Null()) + { + std::cout << "Image file does not exist ! Aborting..." << std::endl; + abort(); + } + else if (!fx.exists()) + { + std::cout << "XML file does not exist ! Aborting..." << std::endl; + abort(); + } + + crop_ = new ImageCrop(xml_file_, image_, output_dir_); } XmlTransform::~XmlTransform() { } -void XmlTransform::createPDF (QString img, bool crop) +void XmlTransform::fromBase64() { - Loader loader; + QString output = output_dir_; + output.append("img"); + + if (loader_->set_output(output)) + crop_->from_base64(); + else + abort(); +} +void XmlTransform::toBase64(bool crop) +{ QString output = output_dir_; output.append("img"); - if (loader.set_output(output)) + if (loader_->set_output(output)) { - if (loader.load_xml(xml_file_, false, output_dir_)) - { + if (!crop) + crop_->crop_regions(); - ImageCrop Crop; + crop_->to_base64(file_, crop); + } + else + abort(); +} - if (crop) - Crop.crop_regions(xml_file_, img, output_dir_); - else - Crop.save_image(img, output_dir_); +void XmlTransform::createPDF (bool crop, bool base64) +{ + if (loader_->xml_output(xml_file_, false, output_dir_)) + { + if (!base64) + { + QString output = output_dir_; + output.append("img"); - loader.add_pdf_templates(crop, output_dir_); + if (loader_->set_output(output)) + { + if (crop) + crop_->crop_regions(); + else + crop_->save_image("image"); + } } - else - abort(); + + loader_->add_pdf_templates(crop, base64, output_dir_); } else abort(); } -void XmlTransform::createHTML(QString img) +void XmlTransform::createHTML(bool base64) { - Loader loader; - - QString output = output_dir_; - output.append("img"); - - if (loader.set_output(output)) + if (loader_->xml_output(xml_file_, true, output_dir_)) { - if (loader.load_xml(xml_file_, true, output_dir_)) + if (!base64) { - ImageCrop Crop; - - Crop.crop_regions(xml_file_, img, output_dir_); - loader.add_html_templates(output_dir_); + QString output = output_dir_; + output.append("img"); + if (loader_->set_output(output)) + crop_->crop_regions(); + else + abort(); } - else - abort(); + loader_->add_html_templates(base64, output_dir_); } else abort(); diff --git a/scribo/sandbox/arthur/xml_transform/xml_transform.hh b/scribo/sandbox/arthur/xml_transform/xml_transform.hh index 808c108..172bddb 100644 --- a/scribo/sandbox/arthur/xml_transform/xml_transform.hh +++ b/scribo/sandbox/arthur/xml_transform/xml_transform.hh @@ -26,22 +26,32 @@ #ifndef XML_TRANFORM_HH # define XML_TRANFORM_HH -# include <QtGui> +# include <QtCore> + + +class Loader; +class ImageCrop; class XmlTransform : public QObject { Q_OBJECT public: - XmlTransform(QString output, QString xml_file); + XmlTransform(QString xml_file, QString image_file, QString output, QString file = QString::Null()); ~XmlTransform(); - void createHTML(QString img); - void createPDF(QString img, bool crop); + void createHTML(bool base64); + void createPDF(bool crop, bool base64); + void toBase64(bool crop); + void fromBase64(); -protected: +private: QString output_dir_; QString xml_file_; + QString image_; + Loader* loader_; + ImageCrop* crop_; + QString file_; }; #endif // !XML_TRANFORM_HH diff --git a/scribo/sandbox/arthur/xml_transform/xml_transform.pro b/scribo/sandbox/arthur/xml_transform/xml_transform.pro index 161a7f4..c038cf6 100644 --- a/scribo/sandbox/arthur/xml_transform/xml_transform.pro +++ b/scribo/sandbox/arthur/xml_transform/xml_transform.pro @@ -1,5 +1,5 @@ ###################################################################### -# Automatically generated by qmake (2.01a) jeu. juil. 8 16:33:27 2010 +# Automatically generated by qmake (2.01a) jeu. juil. 15 13:47:38 2010 ###################################################################### TEMPLATE = app @@ -10,11 +10,7 @@ QMAKE_CXXFLAGS += -I/amd/beyrouth/home/lrde/stage/crepin/git/olena/milena -I/amd QT += xml LIBS += `Magick++-config --libs` + # Input -HEADERS += domitem.hh dommodel.hh image_crop.hh loader.hh xml_transform.hh -SOURCES += domitem.cc \ - dommodel.cc \ - image_crop.cc \ - loader.cc \ - main.cc \ - xml_transform.cc +HEADERS += common.hh image_crop.hh loader.hh xml_transform.hh +SOURCES += common.cc image_crop.cc loader.cc main.cc xml_transform.cc -- 1.5.6.5
14Â years, 10Â months
1
0
0
0
last-svn-commit-482-g1206d9d ChangeLog mistake.
by Arthur Crepin-Leblond
* scribo/ChangeLog: Move 2010-07-08 entry in... * scribo/sandbox/ChangeLog:...this. --- scribo/ChangeLog | 40 ++-------------------- scribo/sandbox/ChangeLog | 80 ++++++++++++++++++++++++++++++++++------------ 2 files changed, 63 insertions(+), 57 deletions(-) diff --git a/scribo/ChangeLog b/scribo/ChangeLog index b807324..ded2117 100644 --- a/scribo/ChangeLog +++ b/scribo/ChangeLog @@ -1,41 +1,9 @@ -2010-07-08 Arthur Crepin-Leblond <crepin(a)ptaouchnok.lrde.epita.fr> - - XML transform program. - - * sandbox/arthur/xml_to_html/xml_to_html.hh, - * sandbox/arthur/xml_to_html/xml_to_html.cc, - * sandbox/arthur/xml_to_html/xml_to_html.pro: Remove. - - * sandbox/arthur/xml_to_html/README, - * sandbox/arthur/xml_to_html/main.cc, - * sandbox/arthur/xml_to_html/domitem.cc, - * sandbox/arthur/xml_to_html/domitem.hh, - * sandbox/arthur/xml_to_html/dommodel.cc, - * sandbox/arthur/xml_to_html/dommodel.hh: Move to... - - * sandbox/arthur/xml_transform/README, - * sandbox/arthur/xml_transform/main.cc, - * sandbox/arthur/xml_transform/domitem.cc, - * sandbox/arthur/xml_transform/domitem.hh, - * sandbox/arthur/xml_transform/dommodel.cc, - * sandbox/arthur/xml_transform/dommodel.hh: ...this. - - * sandbox/arthur/xml_to_html/patterns/css.css, - * sandbox/arthur/xml_to_html/patterns/xsl.xsl: Move to... - - * sandbox/arthur/xml_transform/templates/html/css.css, - * sandbox/arthur/xml_transform/templates/html/xsl.xsl: ...this. - - * sandbox/arthur/xml_transform/image_crop.cc, - * sandbox/arthur/xml_transform/loader.cc: New. - - * sandbox/arthur/xml_transform/templates/html/html_generator.sh, - * sandbox/arthur/xml_transform/templates/pdf/line.xsl, - * sandbox/arthur/xml_transform/templates/pdf/main.xsl, - * sandbox/arthur/xml_transform/templates/pdf/main_crop.xsl, - * sandbox/arthur/xml_transform/templates/pdf/pdf_generator.sh, - * sandbox/arthur/xml_transform/templates/pdf/regions.xsl, - * sandbox/arthur/xml_transform/xml_transform.pro: New. +2010-07-16 Arthur Crepin-Leblond <crepin(a)ptaouchnok.lrde.epita.fr> + + ChangeLog mistake. + + * scribo/ChangeLog: Move 2010-07-08 entry in... + * scribo/sandbox/ChangeLog:...this. 2010-06-30 Arthur Crepin-Leblond <crepin(a)stockholm.lrde.epita.fr> diff --git a/scribo/sandbox/ChangeLog b/scribo/sandbox/ChangeLog index 0fb733f..8d7b3e9 100644 --- a/scribo/sandbox/ChangeLog +++ b/scribo/sandbox/ChangeLog @@ -2,34 +2,72 @@ XML Tranform. - * scribo/sandbox/arthur/xml_transform/xml_transform.cc, - * scribo/sandbox/arthur/xml_transform/xml_transform.hh: Facade. + * arthur/xml_transform/xml_transform.cc, + * arthur/xml_transform/xml_transform.hh: Facade. - * scribo/sandbox/arthur/xml_transform/image_crop.cc, - * scribo/sandbox/arthur/xml_transform/image_crop.hh: Image process. + * arthur/xml_transform/image_crop.cc, + * arthur/xml_transform/image_crop.hh: Image process. - * scribo/sandbox/arthur/xml_transform/loader.cc, - * scribo/sandbox/arthur/xml_transform/loader.hh: XML loader. + * arthur/xml_transform/loader.cc, + * arthur/xml_transform/loader.hh: XML loader. - * scribo/sandbox/arthur/xml_transform/main.cc - * scribo/sandbox/arthur/xml_transform/templates/html/xsl.xsl - * scribo/sandbox/arthur/xml_transform/xml_transform.pro - * scribo/sandbox/arthur/xml_transform/README + * arthur/xml_transform/main.cc + * arthur/xml_transform/templates/html/xsl.xsl + * arthur/xml_transform/xml_transform.pro + * arthur/xml_transform/README - * scribo/sandbox/arthur/xml_transform/common.cc, - * scribo/sandbox/arthur/xml_transform/common.hh, - * scribo/sandbox/arthur/xml_transform/templates/html/xsl_base64.xsl, - * scribo/sandbox/arthur/xml_transform/templates/pdf/main64.xsl, - * scribo/sandbox/arthur/xml_transform/templates/pdf/regions_base64.xsl: New. + * arthur/xml_transform/common.cc, + * arthur/xml_transform/common.hh, + * arthur/xml_transform/templates/html/xsl_base64.xsl, + * arthur/xml_transform/templates/pdf/main64.xsl, + * arthur/xml_transform/templates/pdf/regions_base64.xsl: New. - * scribo/sandbox/arthur/xml_transform/domitem.cc, - * scribo/sandbox/arthur/xml_transform/domitem.hh, - * scribo/sandbox/arthur/xml_transform/dommodel.cc, - * scribo/sandbox/arthur/xml_transform/dommodel.hh: Delete. + * arthur/xml_transform/domitem.cc, + * arthur/xml_transform/domitem.hh, + * arthur/xml_transform/dommodel.cc, + * arthur/xml_transform/dommodel.hh: Delete. - * scribo/sandbox/arthur/xml_transform/templates/pdf/regions.xsl: Rename as... - * scribo/sandbox/arthur/xml_transform/templates/pdf/regions_png.xsl:...this. + * arthur/xml_transform/templates/pdf/regions.xsl: Rename as... + * arthur/xml_transform/templates/pdf/regions_png.xsl:...this. +2010-07-08 Arthur Crepin-Leblond <crepin(a)ptaouchnok.lrde.epita.fr> + + XML transform program. + + * arthur/xml_to_html/xml_to_html.hh, + * arthur/xml_to_html/xml_to_html.cc, + * arthur/xml_to_html/xml_to_html.pro: Remove. + + * arthur/xml_to_html/README, + * arthur/xml_to_html/main.cc, + * arthur/xml_to_html/domitem.cc, + * arthur/xml_to_html/domitem.hh, + * arthur/xml_to_html/dommodel.cc, + * arthur/xml_to_html/dommodel.hh: Move to... + + * arthur/xml_transform/README, + * arthur/xml_transform/main.cc, + * arthur/xml_transform/domitem.cc, + * arthur/xml_transform/domitem.hh, + * arthur/xml_transform/dommodel.cc, + * arthur/xml_transform/dommodel.hh: ...this. + + * arthur/xml_to_html/patterns/css.css, + * arthur/xml_to_html/patterns/xsl.xsl: Move to... + + * arthur/xml_transform/templates/html/css.css, + * arthur/xml_transform/templates/html/xsl.xsl: ...this. + + * arthur/xml_transform/image_crop.cc, + * arthur/xml_transform/loader.cc: New. + + * arthur/xml_transform/templates/html/html_generator.sh, + * arthur/xml_transform/templates/pdf/line.xsl, + * arthur/xml_transform/templates/pdf/main.xsl, + * arthur/xml_transform/templates/pdf/main_crop.xsl, + * arthur/xml_transform/templates/pdf/pdf_generator.sh, + * arthur/xml_transform/templates/pdf/regions.xsl, + * arthur/xml_transform/xml_transform.pro: New. 2010-07-05 Arthur Crepin-Leblond <crepin(a)stockholm.lrde.epita.fr> -- 1.5.6.5
14Â years, 10Â months
1
0
0
0
last-svn-commit-483-ge632121 Two new features in Qt interface.
by Arthur Crepin-Leblond
* demo/viewer/browser_widget.cc, * demo/viewer/browser_widget.hh: Add arrows to change image and keep XML step. * demo/viewer/key_widget.cc, * demo/viewer/key_widget.hh: Change ListWidget to TreeWidget, Items can be disabled/enabled in groups. * demo/viewer/step_widget.cc, * demo/viewer/step_widget.hh: Small changes to keep the step when next/prev. picture is chosen. * demo/viewer/viewer.cc, * demo/viewer/xml_widget.cc: Layout adjustement. --- scribo/ChangeLog | 20 ++++++ scribo/demo/viewer/browser_widget.cc | 56 +++++++++++++++-- scribo/demo/viewer/browser_widget.hh | 8 ++- scribo/demo/viewer/key_widget.cc | 113 +++++++++++++++++++++++---------- scribo/demo/viewer/key_widget.hh | 12 +++- scribo/demo/viewer/step_widget.cc | 38 +++++++++--- scribo/demo/viewer/step_widget.hh | 4 +- scribo/demo/viewer/viewer.cc | 24 +++++--- scribo/demo/viewer/xml_widget.cc | 3 +- 9 files changed, 213 insertions(+), 65 deletions(-) diff --git a/scribo/ChangeLog b/scribo/ChangeLog index ded2117..0db82ec 100644 --- a/scribo/ChangeLog +++ b/scribo/ChangeLog @@ -1,5 +1,25 @@ 2010-07-16 Arthur Crepin-Leblond <crepin(a)ptaouchnok.lrde.epita.fr> + Two new features in Qt interface. + + * demo/viewer/browser_widget.cc, + * demo/viewer/browser_widget.hh: Add arrows to change image and keep + XML step. + + * demo/viewer/key_widget.cc, + * demo/viewer/key_widget.hh: Change ListWidget to TreeWidget, Items can be + disabled/enabled in groups. + + * demo/viewer/step_widget.cc, + * demo/viewer/step_widget.hh: Small changes to keep the step when next/prev. + picture is chosen. + + * demo/viewer/viewer.cc, + * demo/viewer/xml_widget.cc: Layout adjustement. + + +2010-07-16 Arthur Crepin-Leblond <crepin(a)ptaouchnok.lrde.epita.fr> + ChangeLog mistake. * scribo/ChangeLog: Move 2010-07-08 entry in... diff --git a/scribo/demo/viewer/browser_widget.cc b/scribo/demo/viewer/browser_widget.cc index d69fea0..bd70648 100644 --- a/scribo/demo/viewer/browser_widget.cc +++ b/scribo/demo/viewer/browser_widget.cc @@ -17,16 +17,28 @@ BrowserWidget::BrowserWidget(QDirModel* files, QString dir) : files_(files), view_(new QListView()), - path_(new QLineEdit("")) + path_(new QLineEdit("")), + first_time_(true) { + QToolButton* next= new QToolButton(); + QToolButton* prev= new QToolButton(); + next->setArrowType(Qt::RightArrow); + prev->setArrowType(Qt::LeftArrow); + QLabel* title = new QLabel(tr("Images")); title->setAlignment(Qt::AlignHCenter); QVBoxLayout* layout = new QVBoxLayout; - layout->addWidget(title); + QHBoxLayout *hlayout = new QHBoxLayout; + + hlayout->addWidget(prev); + hlayout->addWidget(title); + hlayout->addWidget(next); + layout->addLayout(hlayout); layout->addWidget(path_); layout->addWidget(view_); + //setLayout(hlayout); setLayout(layout); view_->setModel(files); @@ -34,19 +46,28 @@ BrowserWidget::BrowserWidget(QDirModel* files, QString dir) | QDir::Readable | QDir::Drives); view_->setRootIndex(files->index(QDir::currentPath())); + QDir d(dir); if (d.isReadable()) view_->setRootIndex(files->index(d.absolutePath())); + view_->setRowHidden(0, true); + path_->setText(files->filePath(view_->rootIndex())); + connect(view_, SIGNAL(activated(const QModelIndex&)), this, SLOT(activate(const QModelIndex&))); + connect(next, SIGNAL(released ()), + this, SLOT(next())); + connect(prev, SIGNAL(released ()), + this, SLOT(prev())); connect(path_, SIGNAL(returnPressed()), this, SLOT(path_return_pressed())); QStringList files_filters; files_filters << "*.png" << "*.jpg" - << "*.tif" << "*.ppm" << "*.pgm" << "*.pbm"; + << "*.tif" << "*.ppm" << "*.pgm" << "*.pbm" << "pnm"; + files->setNameFilters(files_filters); } @@ -57,20 +78,43 @@ BrowserWidget::path_return_pressed() QDir d(path); if (d.isReadable()) - activate(files_->index(QString(path))); + activate(files_->index(QString(path)), false); } void -BrowserWidget::activate(const QModelIndex& index) +BrowserWidget::activate(const QModelIndex& index, bool b) { if (files_->isDir(index)) { view_->setRootIndex(index); view_->setRowHidden(0, true); path_->setText(files_->filePath(view_->rootIndex())); + first_time_ = true; return; } - emit activated(files_->filePath(index)); + + first_time_ = false; + + emit activated(files_->filePath(index), b); +} + +void +BrowserWidget::change_pos(bool next) +{ + QModelIndex index = view_->currentIndex(); + + if(next) + index = files_->index(index.row() + 1, index.column(), index.parent()); + else + index = files_->index(index.row() - 1, index.column(), index.parent()); + + if (index.isValid()) + { + if (!files_->isDir(index)) + if (!first_time_) + activate(index, true); + view_->setCurrentIndex(index); + } } BrowserWidget::~BrowserWidget() diff --git a/scribo/demo/viewer/browser_widget.hh b/scribo/demo/viewer/browser_widget.hh index 23930cd..a0fbe43 100644 --- a/scribo/demo/viewer/browser_widget.hh +++ b/scribo/demo/viewer/browser_widget.hh @@ -27,16 +27,20 @@ public: ~BrowserWidget(); public slots: - void activate(const QModelIndex& index); + void activate(const QModelIndex& index, bool b = false); void path_return_pressed(); + void next() { change_pos(true); } + void prev() { change_pos(false); } signals: - void activated(QString filename); + void activated(QString filename, bool b); private: + void change_pos(bool next); QDirModel* files_; QListView* view_; QLineEdit* path_; + bool first_time_; }; #endif /* !BROWSER_WIDGET_HH_ */ diff --git a/scribo/demo/viewer/key_widget.cc b/scribo/demo/viewer/key_widget.cc index 5e371ab..47203c3 100644 --- a/scribo/demo/viewer/key_widget.cc +++ b/scribo/demo/viewer/key_widget.cc @@ -16,82 +16,127 @@ #include "common.hh" KeyWidget::KeyWidget(const region::KeyMap& key_map) - : items_(new QListWidget()) + : items_(new QTreeWidget()), + text_(new QTreeWidgetItem(QStringList("Text"))), + regions_(new QTreeWidgetItem(QStringList("Regions"))) { QLabel* title = new QLabel(tr("Key")); title->setAlignment(Qt::AlignHCenter); + items_->addTopLevelItem(text_); + items_->addTopLevelItem(regions_); + items_->setHeaderHidden(true); + + text_->setCheckState(0, Qt::Checked); + regions_->setCheckState(0, Qt::Checked); + regions_->setExpanded(true); + text_->setExpanded(true); + + for (int i = 0; i < 3; ++i) + add_item_(key_map.at(i).first, key_map.at(i).second, + i == region::Line || + i == region::Paragraph, text_); + + for (int i = 3; i < key_map.size(); ++i) + add_item_(key_map.at(i).first, key_map.at(i).second, false, regions_); + QVBoxLayout* layout = new QVBoxLayout; layout->addWidget(title); layout->addWidget(items_); - for (int i = 0; i < key_map.size(); ++i) - add_item_(key_map[i].first, key_map[i].second, - (i == region::Paragraph) || - (i == region::Line) ); - setLayout(layout); - connect(items_, SIGNAL(itemChanged(QListWidgetItem*)), - this, SLOT(update(QListWidgetItem*))); + connect(items_, SIGNAL(itemChanged(QTreeWidgetItem*, int)), + this, SLOT(update(QTreeWidgetItem*))); +} + +void KeyWidget::update_all() +{ + for (int i = 0; i < text_->childCount(); ++i) + update(text_->child(i)); + + for (int i = 0; i < regions_->childCount(); ++i) + update(regions_->child(i)); } -void KeyWidget::checkAll() +void KeyWidget::setAllCheck(QTreeWidgetItem* parent) { - for (int i = 0; i < items_->count(); ++i) + for (int i = 0; i < parent->childCount(); ++i) { - items_->item(i)->setCheckState(Qt::Checked); - emit updated(i, true); + if (parent->checkState(0) == Qt::Checked) + parent->child(i)->setCheckState(0, Qt::Checked); + else + parent->child(i)->setCheckState(0, Qt::Unchecked); + update(parent->child(i)); } } -void +void KeyWidget::change_mode(bool b) { int id_region = region::Paragraph; int id_line = region::Line; + if (b) { - items_->item(id_region)->setCheckState(Qt::Checked); - items_->item(id_region)->setHidden(false); - items_->item(id_line)->setCheckState(Qt::Checked); - items_->item(id_line)->setHidden(false); + text_->child(id_region)->setCheckState(0, Qt::Checked); + text_->child(id_region)->setHidden(false); + text_->child(id_line)->setCheckState(0, Qt::Checked); + text_->child(id_line)->setHidden(false); } else { - items_->item(id_region)->setCheckState(Qt::Unchecked); - items_->item(id_region)->setHidden(true); - items_->item(id_line)->setCheckState(Qt::Unchecked); - items_->item(id_line)->setHidden(true); + text_->child(id_region)->setCheckState(0, Qt::Unchecked); + text_->child(id_region)->setHidden(true); + text_->child(id_line)->setCheckState(0, Qt::Unchecked); + text_->child(id_line)->setHidden(true); } } void -KeyWidget::add_item_(QString text, QColor color, bool b) +KeyWidget::add_item_(QString text, QColor color, bool b, QTreeWidgetItem* parent) { - QListWidgetItem* item = new QListWidgetItem(text); + QTreeWidgetItem* item = new QTreeWidgetItem(QStringList(text)); QPixmap pixmap(10, 6); + pixmap.fill(color); - item->setIcon(QIcon(pixmap)); - item->setFlags(Qt::ItemIsUserCheckable | Qt::ItemIsEnabled); - item->setCheckState(Qt::Checked); - items_->addItem(item); - int id = items_->row(item); - items_->item(id)->setHidden(b); + item->setIcon(0, QIcon(pixmap)); + item->setCheckState(0, Qt::Checked); + parent->addChild(item); + item->setHidden(b); } -bool + bool KeyWidget::isChecked(region::RegionId id) { - return items_->item(id)->checkState() == Qt::Checked; + QTreeWidgetItem* item = text_->child(id); + if (item) + return item->checkState(0) == Qt::Checked; + else + { + item = regions_->child(id); + if(item) + return item->checkState(0) == Qt::Checked; + else + return false; + } } void -KeyWidget::update(QListWidgetItem* item) +KeyWidget::update(QTreeWidgetItem* item) { - int id = items_->row(item); + int id; + id = text_->indexOfChild(item); + if (id == -1) + id = regions_->indexOfChild(item) + 3; + + emit updated(id, item->checkState(0) == Qt::Checked); - emit updated(id, item->checkState() == Qt::Checked); + if (item == text_ || item == regions_) + { + setAllCheck(item); + return; + } } KeyWidget::~KeyWidget() diff --git a/scribo/demo/viewer/key_widget.hh b/scribo/demo/viewer/key_widget.hh index 71200c8..d7767b0 100644 --- a/scribo/demo/viewer/key_widget.hh +++ b/scribo/demo/viewer/key_widget.hh @@ -27,20 +27,24 @@ public: KeyWidget(const region::KeyMap& key_map); ~KeyWidget(); - void checkAll(); bool isChecked(region::RegionId id); + QTreeWidget* items() { return items_; }; + void update_all(); signals: void updated(int key, bool checked); private slots: - void update(QListWidgetItem* slot); void change_mode(bool b); + void update(QTreeWidgetItem* item); + void setAllCheck(QTreeWidgetItem* parent); private: - void add_item_(QString text, QColor color, bool b); + void add_item_(QString text, QColor color, bool b, QTreeWidgetItem* parent); - QListWidget* items_; + QTreeWidget* items_; + QTreeWidgetItem* text_; + QTreeWidgetItem* regions_; }; #endif /* !KEY_WIDGET_HH_ */ diff --git a/scribo/demo/viewer/step_widget.cc b/scribo/demo/viewer/step_widget.cc index 7d35543..1020c6a 100644 --- a/scribo/demo/viewer/step_widget.cc +++ b/scribo/demo/viewer/step_widget.cc @@ -26,7 +26,8 @@ # include "step_widget.hh" StepWidget::StepWidget() - : view_(new QListWidget()) + : view_(new QListWidget()), + step_(QString::Null()) { QLabel* title = new QLabel(tr("Steps")); title->setAlignment(Qt::AlignHCenter); @@ -42,6 +43,9 @@ StepWidget::StepWidget() connect(view_, SIGNAL(itemActivated(QListWidgetItem*)), this, SLOT(activate(QListWidgetItem*))); + + connect(this, SIGNAL(activated(QListWidgetItem*)), + this, SLOT(activate(QListWidgetItem*))); } void StepWidget::activate(QListWidgetItem* item) @@ -49,18 +53,22 @@ void StepWidget::activate(QListWidgetItem* item) QString key, value; StepQMap::iterator iter = map_.find(item->text()); - + + view_->setCurrentItem(item); if (iter != map_.end()) { + step_ = item->text(); key = iter.key(); value = iter.value(); + + emit load_xml(value); } - - emit load_xml(value); + else + qDebug() << "Step not found!"; } -void StepWidget::fill_steps(QString file) +void StepWidget::fill_steps(QString file, bool step) { view_->clear(); map_.clear(); @@ -69,13 +77,14 @@ void StepWidget::fill_steps(QString file) emit load_image(file); int cut = file.lastIndexOf(QChar('/')); - QString path = file.left(cut+1); + QString path = file.left(cut+1); QString filename = file.mid(cut+1); - + cut = filename.lastIndexOf(QChar('.')); + QString file_with_no_ext = filename.left(cut); // view_->addItem(file_with_no_ext); - + QDir dir(path); if (dir.isReadable()) @@ -84,7 +93,7 @@ void StepWidget::fill_steps(QString file) filter << "*.xml"; QStringList xml_list = dir.entryList(filter); for (int i = 0; i < xml_list.size(); ++i) - { + { if (xml_list.at(i).startsWith(file_with_no_ext)) { cut = xml_list.at(i).lastIndexOf(QChar('.')); @@ -99,6 +108,17 @@ void StepWidget::fill_steps(QString file) } } } + + + if (step && step_ != QString::Null()) + { + QList<QListWidgetItem*> list = view_->findItems(step_, Qt::MatchContains); + + if (!list.isEmpty()) + emit activated(list.first()); + } + else + step_ = QString::Null(); } void StepWidget::add_element(const QString& element) diff --git a/scribo/demo/viewer/step_widget.hh b/scribo/demo/viewer/step_widget.hh index 829f814..928e503 100644 --- a/scribo/demo/viewer/step_widget.hh +++ b/scribo/demo/viewer/step_widget.hh @@ -44,14 +44,16 @@ public: signals: void load_image(QString); void load_xml(QString); + void activated(QListWidgetItem*); public slots: - void fill_steps(QString file); + void fill_steps(QString file, bool = false); void activate(QListWidgetItem* item); private: QListWidget* view_; StepQMap map_; + QString step_; }; #endif /* !STEP_WIDGET_HH_ */ diff --git a/scribo/demo/viewer/viewer.cc b/scribo/demo/viewer/viewer.cc index 61a57c1..b3fd6f5 100644 --- a/scribo/demo/viewer/viewer.cc +++ b/scribo/demo/viewer/viewer.cc @@ -44,6 +44,7 @@ Viewer::Viewer(int &argc, char** argv) key_map_[region::Text] = qMakePair(tr("Text Region"), QColor(0, 200, 0)); key_map_[region::Paragraph] = qMakePair(tr("Paragraph"), QColor(0, 0, 255)); key_map_[region::Line] = qMakePair(tr("Text line"), QColor(255, 0, 0)); + key_map_[region::Image] = qMakePair(tr("Image"), QColor(255, 120, 0)); key_map_[region::Noise] = qMakePair(tr("Noise"), QColor(43, 39, 128)); key_map_[region::Separator] = qMakePair(tr("Separator"), QColor(0, 0, 255)); @@ -70,7 +71,7 @@ Viewer::Viewer(int &argc, char** argv) // Layout - win_->resize(1024, 768); + win_->resize(1152, 864); win_->statusBar(); QMenu* file_menu = win_->menuBar()->addMenu(tr("File")); @@ -157,7 +158,7 @@ Viewer::Viewer(int &argc, char** argv) win_->setCentralWidget(h_splitter); QList<int> v_sizes; - v_sizes << 300 << 200 << 200 << 300; + v_sizes << 200 << 200 << 300 << 400; v_splitter->setSizes(v_sizes); QList<int> v_sizes2; @@ -168,8 +169,8 @@ Viewer::Viewer(int &argc, char** argv) h_sizes << 200 << 700; h_splitter->setSizes(h_sizes); - connect(browser_wgt, SIGNAL(activated(QString)), - step_widget, SLOT(fill_steps(QString))); + connect(browser_wgt, SIGNAL(activated(QString, bool)), + step_widget, SLOT(fill_steps(QString, bool))); connect(step_widget, SIGNAL(load_image(QString)), this, SLOT(load(QString))); @@ -252,6 +253,11 @@ Viewer::load_xml(QString filename) void Viewer::xml_to_layout() { + + /* /!\ XML parsing is VERY UGLY /!\ + TO DO: use same parsing as xml_transfrom. */ + + // Add layout info to the scene. if (doc_layout_) { @@ -284,6 +290,7 @@ Viewer::xml_to_layout() doc_layout_->data(point, Qt::UserRole).toMap(); int x = data["x"].toInt(); int y = data["y"].toInt(); + points << QPoint(x, y); } @@ -396,8 +403,8 @@ Viewer::xml_to_layout() attributes_line, points_line, outline_action_->isChecked(), fill_action_->isChecked(), - precise_action_->isChecked(), - key_wgt_->isChecked(id_line)); + precise_action_->isChecked(), + key_wgt_->isChecked(id_line)); connect(this, SIGNAL(key_updated(int, bool)), r_line, SLOT(setDrawIfSameId(int, bool))); @@ -417,6 +424,7 @@ Viewer::xml_to_layout() } emit updated(doc_layout_); + key_wgt_->update_all(); } } @@ -427,7 +435,7 @@ Viewer::load(QString filename) scene_->clear(); scene_->update(); image_ = 0; - xml_file_ = ""; + // xml_file_ = ""; // Load the image in a pixmap that is directly shown on screen. // This is very slow when used with the normal rendering system. @@ -482,7 +490,7 @@ Viewer::maybeChangeCacheMode(qreal scale) void Viewer::useExtended(bool b) { extended_mode_ = b; - key_wgt_->checkAll(); + key_wgt_->update_all(); if (xml_file_ != QString("")) load_xml(xml_file_); diff --git a/scribo/demo/viewer/xml_widget.cc b/scribo/demo/viewer/xml_widget.cc index fa050ec..36f0406 100644 --- a/scribo/demo/viewer/xml_widget.cc +++ b/scribo/demo/viewer/xml_widget.cc @@ -24,6 +24,7 @@ XmlWidget::XmlWidget() title->setAlignment(Qt::AlignHCenter); QVBoxLayout* layout = new QVBoxLayout; + layout->addWidget(title); layout->addWidget(view_); @@ -34,7 +35,7 @@ void XmlWidget::update(DomModel* model) { view_->setModel(model); - view_->resizeColumnToContents(2); + // view_->resizeColumnToContents(2); } void -- 1.5.6.5
14Â years, 10Â months
1
0
0
0
branch exp/scribo-arthur updated: last-svn-commit-499-ge9a515c
by lazzaraï¼ lrde.epita.fr
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-arthur has been updated discards 50621ae105a7b5c3ac3deeccbfeb443c84109266 (commit) discards d60f47f325bafaf2a006b127885934910c741b88 (commit) discards 737cd5321b92e297a502477b0fd50fa2cce94378 (commit) discards 6fe07efbd51c2caf601ba4037510c840515f9cf4 (commit) discards cafc45f52ab98c1e121e21b1ac604ed8014d7da8 (commit) discards b902463108affaa707cb4f3caa4ed6381832da55 (commit) discards 7a0f783867b950052f1ff2431707773aa4fa5818 (commit) discards c2c13c5068e8d7604ee28ccd534739180bed9e9b (commit) discards e0017b7c2dc690ef5bb3ed5c050b3b07e9b08005 (commit) discards 61e1870fd06af56ae92ef1cf37b408f443541d9f (commit) discards 4cd4e670baa5085a837175ff30bc65f3a4a08dea (commit) discards 057c8531918b587bea1a8c9d104be67395a004c1 (commit) discards 83e8345d5d31ad0d20dcfda0b5e2852b6c613130 (commit) discards acf89baab8b2cadc93ba0ff845d7c83c27049172 (commit) discards cfa008d41e46c8c145d9eb01cb9719a4fa018861 (commit) discards fc5c165e1e2b4713f25529e1a1f12e16514c771e (commit) discards 7bebf5b174b861b8cd7f181bb51bce2d2e771f4c (commit) discards 1454557f814a8f278ec51d567340bf7732895825 (commit) discards 128ad1a04f7f6b35a67caf9fa878ab1054bbbfdf (commit) discards 3e12eaa1e4dad3518a09c2adff34f4c223d754b8 (commit) discards 16ec2cb551d8e8724598ebb65e02d01f52f24c23 (commit) via e9a515c24d384ac7a2bd93c032c4b8e6b6ab8399 (commit) via e207d1a1088899d4ea742838479b24e1917da5df (commit) via 2bf71e7e5ceec438b54690ec9db66df5d31afe6d (commit) via d7c56032ccdd5e2150834b1bf83027e1dcce7449 (commit) via 8f7b346a203dd5a4ba0d394a7cb40ee2fe7b8ebf (commit) via 2f2de64949cc1918d53648f9aec392306218624b (commit) via 6adf97ef9ed4386086c512a2e77e9f5ee8a0b92c (commit) via 1173b73788a0380a1da64603ab8e9c1d3ecb16cd (commit) via 82005d1bb7840868e7b5b6aec27b265ac6ab803f (commit) via 4115eb4a2a56cbdb9fe0af9e41ffde321e904640 (commit) via d3490a7d2f3897552cf64bfe0180a6a408c0c396 (commit) via d1596cf8e69de18616fcaafe753ce99a622e4999 (commit) via 0321b1bcf23058df56d6bfb1961d701a5e0c7247 (commit) via 0c55bbdc7736019a66cc9ba40a72b09f0dca5fc7 (commit) via 8a9ce871cc7994efeecf2590d90f61c53a6673ab (commit) via d15041db86be92de601937366a1b371eb4cb840f (commit) via e63212121ac0e73ea8ab3d3b632416547400c774 (commit) via 1206d9d3ae1e34fdb786a9ca8ef991708cd8e5a7 (commit) via 5b691203d22559395dae9a711c183c0001f490ad (commit) via f5c8b380b6ce058555344e5f571e97cdffdd1706 (commit) via 7b391fbda3deb444f7cc78cafe8d84a16abeaf8e (commit) via 588dbb4597a125e7edd5ba1feed98fbdd249705d (commit) via 53a57b1d3275c5b9fb41db4b706342d6a7df992d (commit) via cd5ea6ecd0a75ad2dbabd704490682aeceac68bd (commit) via 2925b324b1b9c0427600a0160cdc214a03d5e8ae (commit) via 04569a2bb109e39ae8d09530aaa526ad9ae2df49 (commit) via ebad60a1e78715afe0359a2837c5de517fa7a42b (commit) via 5bd441f8f01071c7c228837ceb8d9e401bc8f974 (commit) via d6e4a923e32eb749a66490fba62885a69b2fb4dd (commit) via a4a49108929edc4cd8c2d108da7ca821f6684b45 (commit) via ed4e74a2f51a69d580a46b155c9d319d7e7f603c (commit) via 63c77cdaa94cdbfd1ee3591675f729b74cc0371e (commit) via 621ebe718756448951c4362aa8dc5be8b84025da (commit) via c3d187edce3a706763c8e2bed355517e22037cf0 (commit) via a903e8dadd0bc8f76a36c846a6167903aac6c963 (commit) via 696503dfbe53631c3d16db408d7137a0d5b9c536 (commit) via b265090ab82ff960a5cd770b863eebb8eeee71be (commit) via c0c3a98d00d261f0b32c16083030be5dc05e79ff (commit) via bd5519ba780434acb1a52552f55c5c91806d5931 (commit) via 4d1677cf6f3b63d78da59159550988f17e61b93a (commit) via 951bfdd9cb60516e53abc0c961c046851174d37d (commit) via ca408292a71afa85aa76b568642f91729ebaae05 (commit) via 00d8fa3b631df334782cc755a0a1bbc3af1e8d35 (commit) via 6ca68abdb08224a001fbdd838a6bbffb58b902ba (commit) via a9958fa777ee5686c5a923311aab1caa793ab89a (commit) via be773a94ff966b4008cb3ce086bdaa3a679cf8a5 (commit) via 013ef3d7c8f41542dc327c3f86d3741476c61aa5 (commit) via 6793cca44120828368141b44d52d589d47c72f72 (commit) via f7bc7e130d7cd61342e2a1bd50433caf8dc251e2 (commit) via 3c2ce9bb05ba3502ded2bab10d64d19d10607874 (commit) via d34c8dd49b1cafb412ed6acbc9a7df856e744ada (commit) via d5c383adedab294cc3158789aae82a358ed9f8b3 (commit) via 59987833613195d29de390caf60ea67a6d05c63c (commit) via 6bf37e8533f6fe5e1ccb3db532ac2c75624a3973 (commit) via 0545aad9399df4de95f731d4ea7ff019e996efb0 (commit) via 324908fe7cfefc7e54ebab5419c195ba111adecc (commit) via 5ee999b4a272ce703a8441e19d21914ee24a325c (commit) via af62462e491439835ff02d83dd051209402b9e15 (commit) via 8fed6fb92cee676f1b08171261d1c3c3998affca (commit) via cb1501f56a94071aa6087845f47acbbb4e359487 (commit) via 4aec8b7df9701854f4a66a5759cba50d417e2477 (commit) via 6626ff4c9b970161a3afb4771f6b5d5d17cbc054 (commit) via 5a13b71e549e3e14f56c654c2cf8060668ee651d (commit) via 8bd912698276dec80d783a2a0d1c45934b7197d6 (commit) via c05d4df52ff6ff73eab3e75343e39a4bd59c25b6 (commit) via a0961e1c87e3d8b33fc3f956f4e5eabf1301e3f4 (commit) via 087715863927fde36a5c856fa87ba071c978a824 (commit) via 8283ce59a3fbee4679d7d5e6909ac69da6dc9565 (commit) via 8559cd77490d273ee43ab417b4b666aeb12a3f4b (commit) via 6b43c06339028b02542e0214c12a976d10f8b8d7 (commit) via 52112930338d0852964eba2a09f7984c04d3b29e (commit) via c3c62f2274a751f3cc0846f81d8f54c8c50192fb (commit) via 26c8584dbd90fb2668efe2cfe260eefc65201055 (commit) via 332c9acf642b9ab88ed466b1ad0e0500fc2c885c (commit) via 5ba287436f0ad7ae908f61e666e01ea6fbb546a0 (commit) via 6270c8c945def50f6fb12b95511567e27b04db24 (commit) via 290ccbee439ac1cfc9dbd0185b60260d10dbd206 (commit) via 9fffc8073f5ea86ae99a3b5ddd23d53d10cdb429 (commit) via aa19b0aaad96157c6cbc41fd92ceb07b8f370063 (commit) via 984412efeef78be23eb0f83ce6eb50bb36031a6e (commit) via d4ca44ab91728099a70f29b73f5eb3f83a487736 (commit) via 2ae99ffe384a9bdf63e59305fe1a77063a7a1c22 (commit) via e31b70169c431b1196afb6ae2b9eda6b94ec4e26 (commit) via 9e66b0bc8e1df4154fc7a4c6834a8db7b6c3af46 (commit) via ee180d60723b0718fa53cd7d936b8260acb93af2 (commit) via 4d14a475db1082c1096ed71973e2daa2793e2cf1 (commit) via fd16f7ee48f964437406d385b54ebb912e92ea25 (commit) via 092bb0461eb91af6bca23e29bda4bdbac316d3ec (commit) via 460f059870e591b8da8363f9905a8331352c81ff (commit) via 1a16089f970043d54c716705e22f87cde43ce263 (commit) via 98eedea5d6dcf8b4bfc9dfa309b57ce5dcbfd192 (commit) via 71c9c144f233770f1b9652ba98d6137053e8ab47 (commit) via 0d502d0cf9f3571471768db4f3833b0701ef39a0 (commit) via ba369b62ba9d59fb093d4247284f2c437f42754e (commit) via 165770feeac77f1dfab40f3173c3e6e483709df1 (commit) via 4ef67060e4a70bf4af46d54548b4dafdbd04dcf9 (commit) via ace04a4f7d94756ce9a1f128c67b2a8cb840d549 (commit) via 51c347f97f743e56262f65acd5bc6658c2a99439 (commit) via 75c57adc2959683d4549bf36a0a12c08c1266760 (commit) via ceed614319364a103d4c7c15afd2ea2a3b6d2186 (commit) via ccc4a321e56015b6d2824f0f67236bdad14990c4 (commit) via 5758dd72a0d8fe7849e99ad6f5dbf6f0b97c1c6d (commit) via a32f582d8894e37cb18614521c262ab5ae49c1a7 (commit) via 635ff15ca3cc548f282d4bb96587bb6d3b2e8c7f (commit) via 70dedf8ba8537b7d8081641e15553637317f4e03 (commit) via 68624e4c54dd06c46428b7dd914bdbd1e8c06678 (commit) via bfdea8debb5538103da4cc28ca092309850fd597 (commit) via 69ce9faae9f4efb9de5b7f0bb413e467d6b10882 (commit) via 2b5bd163c6290a5e6125b338212ac97bc5963dce (commit) via 94486e40acf3355b24eece538313f3ec9edd5f20 (commit) via 916df4279f248a6fb5c85a129229f57e71f036eb (commit) via 664b361a5b75efba6b472d1028abad8d267c3628 (commit) via 9ced0495ec829f942f3abffe7077d472efff96f6 (commit) via d53b4271ddc93c8fa098f4ef4c2fc7432f808357 (commit) via 17734ea5b269b3a71fc2138a270454a80b0ed6ae (commit) via 4c42b800077d0dda5fde111d0e4761661c9a52c3 (commit) via 68d80d9e1c6f2b66a45e6bb107c7697871386426 (commit) via e30e6d746ca7e83560ad0e2a52324f0af553255d (commit) via d843b6cdad0df4b25e11da900abe87f67153ab65 (commit) via 81ebf3143f310e04f99738afb8b5ad9cbc39eaa7 (commit) via 04e7d8027ac1a88bc151aa0174a3b1ee572c4e4b (commit) via c260d597d0718762ff60972c3a9834f5f1a9db8f (commit) via 7b351ecac19fd1c42ae0382ef7179496a1e565c8 (commit) via ab8bd495b70c9c78f8fc13f1df545d487fc94217 (commit) via 5ba9288148acd3aecef5df8ec260e51887375d87 (commit) via 72a1d9cca4425b195b9132e2bd645274f52c765a (commit) via 62982aae637e6591a4f4ae8f52f04f507691ab80 (commit) via 2891ae779a6ddf363a34ad8188fdda31b8e06849 (commit) via 8d9ad1b2347654f006683e0779bffd5c5fde7734 (commit) via 24633b4c8980ac4c3f2dd7a0befbed515c3c6f48 (commit) via 8c7a1809a808addffc3ae397f0d0f1e21d242fbc (commit) via c8a3721c86de58f063888f0aeedd6197530d1ce0 (commit) via 8e148a2f3b871d60de12d627f02fc01ed7ac4331 (commit) via f1a7757aa73b3bac1c64ecb1e124633a055f4752 (commit) via 153c751d590f7825fb11427de07c890ad3dd95eb (commit) via afefd84215fa6e4c673fd0b1a3a8311ac8ea82ff (commit) via 6dd7d249daae01e8ed82f836aa2f88c4a5833d8e (commit) via 68b860f7623d03ea9815fd652300bee661351bdc (commit) via 1441b0f7b0a2ec10f6009d8ca9e97f2c6c64decd (commit) via 7c82d9a99dfcdb3c3d9a0e4beb9269ec966fa3aa (commit) via d0cba60a39189a796f76cef7ed7e0ae53ce637a8 (commit) via b77547a34bcd0b5c26ff733de1347334d89b2496 (commit) via 25eb4fe6f1b8d6217dcfded1ba138b1abb0e4b07 (commit) via 77c420e02087c7499fa59caaa8c2c6cf8b27e84c (commit) via 103e1e747ab4e16f95f94e3742b3d21b9d637354 (commit) via 5a5ceb89dd3811caae3296fce041a47c5a45564d (commit) via 03908bb38ac692efdb3ce76c8e56bc86a2ee2334 (commit) via a1b86103434c66825a1a089e7bc039f62761b692 (commit) via 10c5d398cd691716db99d2ab6f78d48f7762a75d (commit) via 66a288802969285cb0bdf97c4737c47db786e02c (commit) via 12dd47935880554c3a3cf24db5cd06de2413ae45 (commit) via e4a1fc8155fbff94835c50f7208de3d9b8c5477a (commit) via 5bb93504bd963799300af770178dee12c8cd487c (commit) via 5d5c643d6beaaf64eda9f0e0634f0ffda72cc886 (commit) via b59137ab61cc11a7d9fa58fd6e87168dda9e9b57 (commit) via 15608e30b32328403b14f4602f87b85c8d56af02 (commit) via cb0b452338b03e470cdec5b68d41b99f75ee9975 (commit) via 4502becc0a7c74d9c36df8b2f607855cb18c77fa (commit) via fe084d58f31ef12a5aac620164c35878ad4f36ce (commit) via 5025e33455e29e74226406c7ceebbcd0cdd17fa5 (commit) via b6b3517c054e387bef3d3a3c371de9b5cdf859fc (commit) via 942c6a807a7881b4115ab63232d39fc42730c6fb (commit) via 422b78ec70dc819e3f9ccb81b7aefed7e413790c (commit) via e8f81c85019744c6c9b993469dfb9da58fc7f13e (commit) via defd509888b0234193712b39f34095952366b72d (commit) via 8116ef19fc52af21a79189f607bce880b600ade5 (commit) via 4faa18c9479d0f5fa0b1780431327141396731ec (commit) via c0a26759095070ff5a69a8c508d7574b6c12b2a5 (commit) via 2199e6c6df1b10ac78e84405273befe20fa6eb96 (commit) via 390b09559fc9faf1131b057fdc12931e33430556 (commit) via c94f5179c33d27d1c3aaf46804e48d5710baeafc (commit) via e5e506be9a2edf6a0d5c184dc2fd0efee09b29c1 (commit) via d637b9962218aa697776ef9bdc509e7e50da0644 (commit) via 084fcc94307783b55e2b77f2d8217ffc68b65702 (commit) via 67c299f41df3d45fd0d6a8e3c777631367626dbe (commit) via 9196858aa3f15eba540420164e21bf929a3f2f53 (commit) via c0e0ae6fee6b9e6e6092647e1a942f1b2e9336c8 (commit) via 642d87acb6320ca145bab0149ee04cef2e3d976b (commit) via 2c4e1e1dd3e2df60cc57a9e0917b5e509fb583ef (commit) via b599cccfd46f95c9337b526e0b172e019aaaa5cb (commit) via 4ee83123b5ef3dd0ba1a0b47ad345aeae3852f22 (commit) via 9b894672a7c13f2f2720d5a425981524e92d707b (commit) via 6c5106c0a059bc80a2abed23021f450335386f1b (commit) via fca542826e4bf7909f343cdcd6a75ed3c7afc478 (commit) via 55f2622b2ccce58bee6d912ee92cb33c873a5392 (commit) via 2152dd039b5e78eaeb179cf19d640aef81ef3330 (commit) via 19eee8ed618cf36f4803e2d3ab823c8e3682fd39 (commit) via ba6a3f88edc827a030919df1ead7b16621008063 (commit) via a4d6bc84bb23a0b58e2e612124876e3dcc1a3f78 (commit) via 8293184f19cedcb42b8a33da195def597db06e6a (commit) via 6b0e5460e1c05d98beb1166a410c5919cc802348 (commit) via 7fe9e76d1693fecdc0f0de4bdcfa62297935561a (commit) via 3fac2c7d82a1bf409d3c012b10f6f98de8f36d97 (commit) via 3e079f7e60ae9d34b471db83a37709ea586166d5 (commit) via 82f86bd0049463e4f53af83742d0d63245825448 (commit) via 55cb496c91c19c956241762d43bca9bc2c522517 (commit) via 378fc00cc34856163226061563ff0cf2f26ac186 (commit) via 8a2626d805c214e0847639c112bc0c19be991033 (commit) via 5ef318c063365486ceacc847858bdfd23d93aaf1 (commit) via 8aae86da7f075b92c9872a0a4e6b2d45c4054b52 (commit) via a8e00b1cee3271cc86191b9cb18103d8f00ed781 (commit) via e89fc5123b67bba9bf2a778a4ceed26ca95132d4 (commit) via 365cdb48620a38fbea0f1b4af15e73935b938e25 (commit) via 1d9cee32593cff25aa6ef8cefc75add9bfd2038f (commit) via 3b9b30f42413743de6a5e868d6aa428f9c6f4f52 (commit) via c16f093945ae2a974a36964501b16d74733fe210 (commit) via f23d9cf9c311e552731dd144af75ac7dcaf92a27 (commit) via d76722cb4eb8feb47c6fa1b5f073b11f421a8194 (commit) via 073d3d953a4c0844363cd495462a7bef70c877b0 (commit) via e126d4ccdf50168c2439913eb47f746cc75b727c (commit) via 4e0645dc40c3b3f66df8ffb1445b47b80fad8a76 (commit) via 63aa7224f25656693c22d5f402f74b62c47728ee (commit) via 428990430d4af2b2f26b1dc6ae4ed3f2dd515c07 (commit) via a1b9977eb88d0b4608a7794031bf04c572f8f2e1 (commit) via 15b0083c5c39692271a1d9690f163598b399c655 (commit) via 71903ba675c551e3bd9073f706c4aaf961da00ce (commit) via fb074a9399bfe05e35a743437e0cd281c557db6e (commit) via f9e6be6b4b26d40873ff9cb309707f12c0ce64a5 (commit) via ab842943d315f2e78e9da8fd3ff79a381d73bc18 (commit) via 6e6e5b7d2ee1be09e8cc6978f41bf3c638028808 (commit) via 2038fc7a5be0586d14916be9980dbf1e897dc64a (commit) via c8e9fa84800ed8848e10366224fa26cdee00345d (commit) via a4af792177bc1187beb2eb1c55c5a2fa5e9a6f87 (commit) via 5440f59412f4158b3c1d73d5fbe77b935ff674ba (commit) via 03ae101e2638983b87f7d49f0cefbdc68e55dc94 (commit) via 512f054e50de04f6d163144a9c1f272dbd047078 (commit) via 0f9327c948c0cf9933a967499150f492fe63094f (commit) via f5190eace449936c1b96389dc249e5605c5abc74 (commit) via 38d31738f248e2aa8b91e4d6608851e1e9476e74 (commit) via d9fedc37413c7aeed75e85fb7c12e906f980aa5a (commit) via 42bc78f899ef2b8f2ea8100b7344c1ebe1ffc911 (commit) via f94a9b43d47fb921845f6ae5ca58cfb1ecd91062 (commit) via 40ff74388c63c2c13d24529249817f9f60d4a703 (commit) via 2e0e1ee3f937ed7de3144df16f00a0e71a70cfb7 (commit) via 2d20a625dd7aadf2e469e5e9837ff903fbbdf79f (commit) via 01ee98f52063896dac40a1e85687259b38429916 (commit) via d510e3e555ae4614d51d8d2fc692753e6cf8626b (commit) via 92124b54d54f4f85169698560e99c82387a66ce8 (commit) via 3e3486096f0f6ba002f6374dafc2fe2a69704493 (commit) via 873492a24aa0368a80567448e46dd05b25d438e0 (commit) via 0f1307f3571fb35b1782ae1f659b48aaeab842fe (commit) via 2e5cd0954a7b9383106589ae907f0271636e85bc (commit) via 6bfa9af7a48fb9674db992197a9a348c1175019f (commit) via cae77fdc1dbd50993c91117ee6e09e6e7c66377c (commit) via 76860ade539a188320cf749486d8d9a646eeead9 (commit) via 9dd6263a3e2212c4841d2de989de00382fa02185 (commit) via e0ecffb4c67d8b01e9ab1dbc6185647d55315663 (commit) via 69c0a1da93b5d8d9287a87b528679c36db331113 (commit) via dc704d34907ddbc7256ac48c4c27d01a258edf20 (commit) via 2aade6999e6deedf85c6b0201e502c1e51492bfb (commit) via ae7290b1239a974997e9caa8f99fef0d89fcca8e (commit) via a4ff06b6a32b65a7e12d8b79fe07fe15939e86ea (commit) via 50d2dc67f522262edccc662bddaaf6ba7fee417a (commit) via 1743cdc3a9ec1175eb556382c484858681c6cebd (commit) via c98d4ae07afc6e2eee02a95b0bdd6825f58ee6c3 (commit) via 7f55f7c8208591422b98ef0d8dbf73738b564ebd (commit) via 9ae11a0ca2f57fefd5c3e15a6c98ee7f11b22f1a (commit) via f382e4a24e8376645c7bf4aac2cfec4f933413c9 (commit) via 808c4e8be9333d74ac480ce7773c2c44af50abc3 (commit) via a32de0fdcfb1292f0eebd37857eeda829acb1bcc (commit) via e44073ea19332cde2bdd69ea5eb515d4cfc0e140 (commit) via fbe0b7f5ec449ab79dfad0b4d285a745f625e41e (commit) via 851beeb4d1256b38ff6d57b2c0f2944fd0479db2 (commit) via 77004f3748794e5990deca22ecbafb173fd44eef (commit) via 08a77f75484a3b12fcee2cf1f1970aefad936362 (commit) via 501c45e68c71fc00982b8b21a629d7b6757272cc (commit) via f9ac5d4d841e31df0aa208435d302202852a9a6b (commit) via c81c18f8fda28be370e9d8a01f2b1162db514c8d (commit) via 1c31ba76b4a505703f466e7d91eecc87437526a2 (commit) This update added new revisions after undoing existing revisions. That is to say, the old revision is not a strict subset of the new revision. This situation occurs when you --force push a change and generate a repository containing something like this: * -- * -- B -- O -- O -- O (50621ae105a7b5c3ac3deeccbfeb443c84109266) \ N -- N -- N (e9a515c24d384ac7a2bd93c032c4b8e6b6ab8399) When this happens we assume that you've already had alert emails for all of the O revisions, and so we here report only the revisions in the N branch from the common base, B. Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- e9a515c Changelog: Cleanup. e207d1a Open Document bug warning. 2bf71e7 Fix man error. d7c5603 Add arrows shortcuts. 8f7b346 Delete two build files. 2f2de64 Add shortcuts in Qt interface. 6adf97e Output change in xml_tranform. 1173b73 Fix bug in Qt interface. 82005d1 OpenDocument output (odt and odf). 4115eb4 SVG output. d3490a7 Fix Segfault bug in Qt interface. d1596cf Small changes in xml_transform. 0321b1b Files headers change + base64 data hide in xml tree. 0c55bbd Text selectable in Qt interface. 8a9ce87 Some changes in XML interface. d15041d Base 64 support in Qt interface (xmlc extension) e632121 Two new features in Qt interface. 1206d9d ChangeLog mistake. 5b69120 XML Tranform. f5c8b38 XML transform program. 7b391fb ICDAR XML to HTML. 588dbb4 Small fix in Qt interface. ----------------------------------------------------------------------- Summary of changes: AUTHORS | 27 +- ChangeLog | 440 +++++ HACKING | 95 + INSTALL | 469 +++-- Makefile.am | 17 +- README | 223 ++- bootstrap | 122 +- build-aux/Makefile.am | 12 +- build-aux/build_unit_test.sh | 201 ++- build-aux/devtools.sh | 16 + build-aux/devtools_utils.sh | 16 + build-aux/extra-recursive-targets.mk | 23 +- build-aux/generate_dist_headers.sh | 17 + build-aux/make_report_utils.sh | 18 +- build-aux/regen-recursive.mk | 27 +- build-aux/tex.mk | 47 + build-aux/texi2dvi | 1959 +++++++++++++++++++ configure.ac | 434 ++++- external/Makefile.am | 3 - external/trimesh/ChangeLog | 21 +- external/trimesh/Makefile.am | 19 - external/trimesh/configure.ac | 3 - external/trimesh/gluit/Makefile.am | 19 - external/trimesh/gluit/gluit.mk | 2 +- external/trimesh/include/Makefile.am | 19 - external/trimesh/libsrc/Makefile.am | 19 - external/trimesh/utilsrc/Makefile.am | 19 - lrde-upload.sh | 116 +- m4/autotroll.m4 | 2 +- m4/boost.m4 | 1038 ++++++++++ m4/oln-with-lib.m4 | 20 +- m4/pkg.m4 | 155 ++ m4/with-swilena.m4 | 112 -- milena/ChangeLog | 1838 ++++++++++++++++++- milena/Makefile.am | 14 +- .../test-constrained-connectivity.in | 16 + milena/apps/graph-morpho/Makefile.am | 4 +- milena/apps/graph-morpho/convert.hh | 7 +- milena/apps/graph-morpho/morpho.hh | 31 +- milena/apps/mesh-segm-skel/Makefile.am | 17 +- milena/apps/mesh-segm-skel/io.hh | 2 + .../test-mesh-complex-max-curv-segm.in | 16 + .../mesh-segm-skel/test-mesh-complex-max-curv.in | 16 + .../apps/mesh-segm-skel/test-mesh-complex-segm.in | 16 + .../apps/mesh-segm-skel/test-mesh-complex-skel.in | 16 + milena/apps/mesh-segm-skel/test-mesh-max-curv.in | 16 + milena/apps/mesh-segm-skel/test-mesh-segm.in | 16 + milena/apps/papers/levillain.09.ismm/Makefile.am | 5 +- milena/doc/.gitignore | 45 +- milena/doc/Doxyfile.in | 50 +- milena/doc/Makefile.am | 915 +++++++--- milena/doc/doc.mk | 36 - milena/doc/examples-outputs.mk | 919 +++++++++ milena/doc/examples.mk | 85 + milena/doc/examples/Makefile.am | 274 --- ...nstanciation.cc => accu-right-instantiation.cc} | 0 ...tion.cc.raw => accu-wrong-instantiation.cc.raw} | 0 milena/doc/examples/examples.mk | 125 -- milena/doc/examples/fill-imageif-cfun.cc | 2 +- milena/doc/examples/ima-load.cc | 8 +- milena/doc/examples/ima-save.cc | 8 +- milena/doc/examples/ima2d-rot.cc | 7 +- milena/doc/examples/labeling-compute.cc | 3 +- ...-1.cc.raw => accu-right-instantiation-1.cc.raw} | 0 milena/doc/examples/split/ima-load-1.cc.raw | 2 +- milena/doc/examples/split/ima-save-1.cc.raw | 2 +- milena/doc/examples/split/ima2d-rot-1.cc.raw | 4 +- milena/doc/examples/tuto3/println.cc | 10 +- milena/doc/examples/tuto4/image.cc | 4 +- milena/doc/examples/tuto4/site_set_create.cc | 14 +- milena/doc/figures.mk | 188 ++ milena/doc/figures/figures.mk | 41 - milena/doc/figures/fill-subdomain-2.ppm | Bin 206 -> 206 bytes milena/doc/figures/fill-subdomain-3.ppm | Bin 206 -> 206 bytes milena/doc/{white_paper => }/figures/house.png | Bin 26653 -> 26653 bytes milena/doc/{white_paper => }/figures/house_rag.png | Bin 9454 -> 9454 bytes .../doc/{white_paper => }/figures/house_wshed.png | Bin 27668 -> 27668 bytes .../figures/house_wshed_mean_colors.png | Bin 6618 -> 6618 bytes milena/doc/figures/labeling-compute-2.ppm | Bin 206 -> 206 bytes .../figures => figures/technical}/file_layout.pdf | Bin 26680 -> 26680 bytes .../figures => figures/technical}/file_layout.png | Bin 117801 -> 117801 bytes milena/doc/figures/tuto3_colorize-2.ppm | Bin 191 -> 191 bytes .../figures/tuto4_genericity_and_algorithms-1.ppm | Bin 12406 -> 12406 bytes .../figures/tuto4_genericity_and_algorithms-5.ppm | Bin 12406 -> 12406 bytes .../figures/tuto4_genericity_and_algorithms-7.pgm | 6 - .../figures/tuto4_genericity_and_algorithms-7.ppm | Bin 24696 -> 0 bytes .../figures/tuto4_genericity_and_algorithms-8.pgm | 6 - .../figures/tuto4_genericity_and_algorithms-8.ppm | 6 - .../figures/tuto4_genericity_and_algorithms-9.pgm | 6 - .../figures/tuto4_genericity_and_algorithms-9.ppm | 6 - milena/doc/gen-examples-outputs-mk | 71 + milena/doc/gen-figures-mk | 192 ++ milena/doc/gen-make-variable | 52 + milena/doc/gen-split-examples-mk | 136 ++ milena/doc/gen-split-outputs-mk | 140 ++ milena/doc/graphicx.hva | 19 + milena/doc/img/small.pbm | 1 + milena/doc/outputs.mk | 54 + ...tanciation.txt => accu-right-instantiation.txt} | 0 .../doc/outputs/{ima2d-decl-2.txt => ima-load.txt} | 0 milena/doc/outputs/outputs.mk | 69 - .../tuto3_first_routine.txt} | 0 ...ccu-right-instanciation.txt => tuto4_image.txt} | 0 milena/doc/programs-examples.mk | 147 ++ milena/doc/ref-guide.tex | 2024 ++++++++++++++++++++ milena/doc/ref_guide/Makefile.am | 112 -- milena/doc/ref_guide/ref_guide.tex | 2024 -------------------- milena/doc/split-examples.mk | 916 +++++++++ milena/doc/split-outputs.mk | 60 + .../designs/properties/values.txt | 0 .../designs/site_psite_piter/README | 0 milena/doc/technical.tex | 234 +++ milena/doc/technical/Makefile.am | 112 -- milena/doc/technical/technical.tex | 234 --- milena/doc/tools/clearbanner.sh | 16 + milena/doc/tools/data.hh.in | 37 + milena/doc/tools/sample_utils.hh | 13 +- milena/doc/tools/split_sample.sh | 21 +- milena/doc/tools/todoxygen.sh | 50 +- .../doc/{tutorial => tutorial.old}/design/Makefile | 0 .../{tutorial => tutorial.old}/design/design.tex | 0 .../design/include/imagetours.tex | 0 .../design/include/properties.tex | 0 .../{tutorial => tutorial.old}/doxyfile_tuto.local | 0 .../doc/{tutorial => tutorial.old}/image_types.txt | 0 .../{tutorial => tutorial.old}/image_values.txt | 0 .../doc/{tutorial => tutorial.old}/images_tour.txt | 0 milena/doc/{tutorial => tutorial.old}/slides.tex | 0 milena/doc/{tutorial => }/tutorial.tex | 0 milena/doc/tutorial/Makefile.am | 111 -- .../white_paper.tex => white-paper.tex} | 0 milena/doc/white_paper/Makefile.am | 115 -- milena/headers.mk | 32 +- milena/mesh/Makefile.am | 5 +- milena/mln/accu/compute.hh | 6 +- milena/mln/accu/internal/base.hh | 4 +- milena/mln/accu/math/sum.hh | 3 +- milena/mln/accu/tuple.hh | 13 +- milena/mln/convert/from_to.hxx | 10 + milena/mln/convert/impl/from_float_to_value.hh | 10 + milena/mln/convert/to_qimage.hh | 3 + milena/mln/convert/to_qimage_nocopy.hh | 4 +- milena/mln/core/alias/window2d.hh | 3 +- milena/mln/core/concept/object.hh | 4 +- milena/mln/core/image/edge_image.hh | 8 +- milena/mln/core/image/imorph/labeled_image.hh | 4 +- milena/mln/core/image/vertex_image.hh | 8 +- milena/mln/core/point.hh | 201 ++- milena/mln/data/paste_without_localization.hh | 1 + milena/mln/draw/dashed_line.hh | 2 +- milena/mln/fun/n2v/white_gaussian.hh | 4 +- milena/mln/fun/v2v/rgb_to_int_u.hh | 7 +- milena/mln/fun/v2v/saturate.hh | 9 +- 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/rotate.hh | 93 +- milena/mln/io/dicom/get_header.hh | 7 + milena/mln/io/dump/get_header.hh | 1 + milena/mln/io/fld/load.hh | 13 +- milena/mln/io/fld/max_components.hh | 32 +- milena/mln/io/fld/save.hh | 10 +- milena/mln/io/fld/write_header.hh | 16 +- milena/mln/io/raw/get_header.hh | 1 + milena/mln/labeling/blobs_and_compute.hh | 3 + milena/mln/labeling/flat_zones.hh | 34 +- milena/mln/make/edge_image.hh | 27 +- milena/mln/subsampling/antialiased.hh | 3 +- .../mln/topo/internal/complex_set_iterator_base.hh | 14 +- milena/mln/util/edge.hh | 30 +- milena/mln/util/graph.hh | 25 +- milena/mln/util/line_graph.hh | 20 +- milena/mln/util/vertex.hh | 26 +- milena/mln/value/qt/rgb32.hh | 3 +- milena/mln/value/rgb.hh | 56 +- milena/tests/Makefile.am | 3 - milena/tests/accu/Makefile.am | 19 +- milena/tests/accu/image/Makefile.am | 3 - milena/tests/accu/math/Makefile.am | 3 - milena/tests/accu/shape/Makefile.am | 3 - milena/tests/accu/site_set/Makefile.am | 3 - milena/tests/accu/stat/Makefile.am | 3 - milena/tests/algebra/Makefile.am | 3 - milena/tests/arith/Makefile.am | 6 +- milena/tests/binarization/Makefile.am | 15 +- milena/tests/binarization/threshold.cc | 7 +- milena/tests/border/Makefile.am | 6 +- milena/tests/canvas/Makefile.am | 7 +- milena/tests/canvas/browsing/Makefile.am | 6 +- milena/tests/canvas/morpho/Makefile.am | 3 - milena/tests/convert/Makefile.am | 3 - milena/tests/convert/impl/Makefile.am | 3 - milena/tests/core/Makefile.am | 6 +- milena/tests/core/alias/Makefile.am | 3 - milena/tests/core/image/Makefile.am | 3 - milena/tests/core/image/dmorph/Makefile.am | 3 - milena/tests/core/image/imorph/Makefile.am | 3 - milena/tests/core/image/vmorph/Makefile.am | 3 - milena/tests/core/other/Makefile.am | 3 - milena/tests/core/other/box_runend_piter.cc | 2 +- milena/tests/core/other/box_runstart_piter.cc | 5 +- milena/tests/core/routine/Makefile.am | 3 - milena/tests/core/site_set/Makefile.am | 3 - milena/tests/data/Makefile.am | 16 +- milena/tests/data/approx/Makefile.am | 12 +- milena/tests/data/approx/median.cc | 7 +- milena/tests/data/median.cc | 7 +- milena/tests/data/median_fast.cc | 5 +- milena/tests/data/naive/Makefile.am | 9 +- milena/tests/data/naive/median.cc | 5 +- milena/tests/debug/Makefile.am | 3 - milena/tests/display/Makefile.am | 6 +- milena/tests/draw/Makefile.am | 6 +- milena/tests/estim/Makefile.am | 6 +- milena/tests/extension/Makefile.am | 3 - milena/tests/extract/Makefile.am | 3 - milena/tests/fun/Makefile.am | 3 - milena/tests/fun/i2v/Makefile.am | 3 - milena/tests/fun/p2b/Makefile.am | 3 - milena/tests/fun/p2p/Makefile.am | 3 - milena/tests/fun/p2v/Makefile.am | 3 - milena/tests/fun/stat/Makefile.am | 3 - milena/tests/fun/v2i/Makefile.am | 3 - milena/tests/fun/v2v/Makefile.am | 3 - milena/tests/fun/vv2v/Makefile.am | 3 - milena/tests/fun/x2x/Makefile.am | 6 +- milena/tests/geom/Makefile.am | 3 - milena/tests/geom/rotate.cc | 16 +- milena/tests/geom/translate.cc | 5 +- milena/tests/graph/Makefile.am | 3 - milena/tests/graph/attribute/Makefile.am | 3 - milena/tests/histo/Makefile.am | 6 +- milena/tests/io/Makefile.am | 6 +- milena/tests/io/dicom/Makefile.am | 3 - milena/tests/io/dump/Makefile.am | 15 +- milena/tests/io/dump/dump.cc | 24 +- milena/tests/io/fits/Makefile.am | 16 +- milena/tests/io/fits/fits.cc | 11 +- milena/tests/io/fld/Makefile.am | 5 +- milena/tests/io/magick/Makefile.am | 15 +- milena/tests/io/magick/save.cc | 7 +- milena/tests/io/off/Makefile.am | 13 +- milena/tests/io/off/load_save_bin.cc | 5 +- milena/tests/io/pbm/Makefile.am | 17 +- milena/tests/io/pbm/pbm.cc | 7 +- milena/tests/io/pbm/pbm_ascii.cc | 6 +- milena/tests/io/pbms/Makefile.am | 9 +- milena/tests/io/pbms/load.cc | 4 +- milena/tests/io/pfm/Makefile.am | 3 - milena/tests/io/pgm/Makefile.am | 36 +- milena/tests/io/pgm/pgm.cc | 11 +- milena/tests/io/pgm/pgm16.cc | 13 +- milena/tests/io/pgm/pgm19.cc | 9 +- milena/tests/io/pgm/pgm27.cc | 9 +- milena/tests/io/pgm/pgm_ascii.cc | 10 +- milena/tests/io/pgms/Makefile.am | 10 +- milena/tests/io/pgms/load.cc | 4 +- milena/tests/io/pnm/Makefile.am | 3 - milena/tests/io/ppm/Makefile.am | 27 +- milena/tests/io/ppm/ppm.cc | 7 +- milena/tests/io/ppm/ppm16.cc | 11 +- milena/tests/io/ppm/ppm23.cc | 11 +- milena/tests/io/ppms/Makefile.am | 10 +- milena/tests/io/ppms/load.cc | 6 +- milena/tests/io/tiff/Makefile.am | 3 - milena/tests/labeling/Makefile.am | 6 +- 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/linear/Makefile.am | 16 +- milena/tests/linear/convolve.cc | 5 +- milena/tests/linear/convolve_2x1d.cc | 5 +- milena/tests/linear/convolve_directional.cc | 5 +- milena/tests/linear/gaussian.cc | 5 +- milena/tests/linear/gaussian/Makefile.am | 7 +- milena/tests/linear/gaussian/filter.cc | 5 +- milena/tests/linear/lap.cc | 5 +- milena/tests/linear/local/Makefile.am | 6 +- milena/tests/linear/log.cc | 5 +- milena/tests/linear/sobel_2d.cc | 5 +- milena/tests/literal/Makefile.am | 6 +- milena/tests/logical/Makefile.am | 6 +- milena/tests/make/Makefile.am | 6 +- milena/tests/math/Makefile.am | 3 - milena/tests/metal/Makefile.am | 6 +- milena/tests/metal/make/Makefile.am | 3 - milena/tests/metal/math/Makefile.am | 6 +- milena/tests/morpho/Makefile.am | 36 +- milena/tests/morpho/approx/Makefile.am | 17 +- milena/tests/morpho/approx/dilation.cc | 6 +- milena/tests/morpho/approx/erosion.cc | 6 +- .../morpho/artificial_line_graph_image_wst.cc | 5 +- milena/tests/morpho/attribute/Makefile.am | 3 - milena/tests/morpho/closing/Makefile.am | 41 +- milena/tests/morpho/closing/algebraic.cc | 6 +- milena/tests/morpho/closing/approx/Makefile.am | 14 +- milena/tests/morpho/closing/approx/structural.cc | 6 +- milena/tests/morpho/closing/height.cc | 5 +- milena/tests/morpho/closing/leveling.cc | 6 +- milena/tests/morpho/closing/structural.cc | 4 +- milena/tests/morpho/closing/sum.cc | 5 +- milena/tests/morpho/closing/volume.cc | 7 +- milena/tests/morpho/complex_image_wst.cc | 5 +- milena/tests/morpho/contrast.cc | 5 +- milena/tests/morpho/dilation.cc | 13 +- milena/tests/morpho/elementary/Makefile.am | 3 - milena/tests/morpho/general.cc | 5 +- milena/tests/morpho/gradient.cc | 7 +- milena/tests/morpho/hit_or_miss.cc | 10 +- milena/tests/morpho/laplacian.cc | 7 +- milena/tests/morpho/lena_line_graph_image_wst1.cc | 5 +- milena/tests/morpho/lena_line_graph_image_wst2.cc | 5 +- milena/tests/morpho/line_graph_image_morpho.cc | 4 +- milena/tests/morpho/meyer_wst.cc | 5 +- milena/tests/morpho/meyer_wst_long.cc | 6 +- milena/tests/morpho/opening/Makefile.am | 40 +- milena/tests/morpho/opening/algebraic.cc | 6 +- milena/tests/morpho/opening/approx/Makefile.am | 9 +- milena/tests/morpho/opening/approx/structural.cc | 6 +- milena/tests/morpho/opening/area.cc | 5 +- milena/tests/morpho/opening/height.cc | 5 +- milena/tests/morpho/opening/leveling.cc | 6 +- milena/tests/morpho/opening/structural.cc | 4 +- milena/tests/morpho/opening/sum.cc | 5 +- milena/tests/morpho/opening/volume.cc | 5 +- milena/tests/morpho/rank_filter.cc | 5 +- milena/tests/morpho/reconstruction/Makefile.am | 5 - .../morpho/reconstruction/by_dilation/Makefile.am | 5 - .../morpho/reconstruction/by_erosion/Makefile.am | 5 - milena/tests/morpho/skeleton_constrained.cc | 83 +- milena/tests/morpho/thinning.cc | 7 +- milena/tests/morpho/tree/Makefile.am | 5 +- milena/tests/morpho/tree/filter/Makefile.am | 3 - milena/tests/morpho/watershed/Makefile.am | 16 +- milena/tests/morpho/watershed/flooding.cc | 13 +- milena/tests/morpho/watershed/topological.cc | 5 +- milena/tests/norm/Makefile.am | 3 - milena/tests/opt/Makefile.am | 3 - milena/tests/pw/Makefile.am | 6 +- milena/tests/registration/Makefile.am | 3 - milena/tests/set/Makefile.am | 6 +- milena/tests/subsampling/Makefile.am | 3 - milena/tests/subsampling/antialiased.cc | 10 +- milena/tests/tag/Makefile.am | 3 - milena/tests/test/Makefile.am | 3 - milena/tests/tests-recursive.mk | 36 +- milena/tests/tests.mk | 36 +- milena/tests/topo/Makefile.am | 3 - milena/tests/topo/skeleton/Makefile.am | 3 - milena/tests/topo/skeleton/crest.cc | 10 +- milena/tests/trace/Makefile.am | 3 - milena/tests/trait/Makefile.am | 6 +- milena/tests/trait/image/Makefile.am | 6 +- milena/tests/trait/op/Makefile.am | 6 +- milena/tests/trait/value/Makefile.am | 6 +- milena/tests/transform/Makefile.am | 5 - milena/tests/unit_test/Makefile.am | 24 +- .../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 | 156 ++- milena/tests/upscaling/Makefile.am | 4 - milena/tests/upscaling/art/Makefile.am | 3 - milena/tests/util/Makefile.am | 9 +- milena/tests/util/ord.cc | 42 + milena/tests/value/Makefile.am | 3 - milena/tests/value/builtin/Makefile.am | 6 +- milena/tests/value/concept/Makefile.am | 3 - milena/tests/win/Makefile.am | 6 +- milena/tests/world/Makefile.am | 3 - milena/tests/world/binary_2d/Makefile.am | 3 - milena/tests/world/inter_pixel/Makefile.am | 3 - milena/tests/world/inter_pixel/dim2/Makefile.am | 3 - milena/tools/Makefile.am | 3 - scribo/ChangeLog | 1234 +++++++++++- scribo/Doxyfile | 16 + scribo/Doxyfile_tex | 16 + scribo/Makefile.am | 9 +- scribo/README | 17 +- scribo/all.hh | 51 - scribo/binarization/internal/first_pass_functor.hh | 168 -- scribo/binarization/sauvola_ms.hh | 988 ---------- scribo/binarization/sauvola_threshold_image.hh | 616 ------ .../binarization/sauvola_threshold_image_debug.hh | 420 ---- scribo/convert/from_qimage.hh | 92 - scribo/core/component_info.hh | 203 -- scribo/core/component_set.hh | 576 ------ scribo/core/erase_objects.hh | 86 - scribo/core/internal/link_functor_base.hh | 119 -- scribo/core/line_info.hh | 937 --------- scribo/core/macros.hh | 61 - scribo/core/object_links.hh | 244 --- scribo/core/tag/component.hh | 118 -- scribo/core/tag/line.hh | 213 -- scribo/debug/bboxes_enlarged_image.hh | 136 -- scribo/debug/decision_image.hh | 180 -- scribo/debug/highlight_text_area.hh | 255 --- scribo/debug/links_decision_image.hh | 149 -- scribo/debug/looks_like_a_text_line_image.hh | 130 -- scribo/debug/mean_and_base_lines_image.hh | 147 -- scribo/debug/save_bboxes_image.hh | 142 -- scribo/debug/save_linked_bboxes_image.hh | 291 --- scribo/debug/save_object_diff.hh | 98 - scribo/debug/several_links_decision_image.hh | 185 -- scribo/demo/Makefile.am | 5 +- scribo/demo/demat/demat.pro | 2 +- scribo/demo/wizard/wizard.pro | 2 +- scribo/draw/bounding_box_links.hh | 404 ---- scribo/draw/bounding_boxes.hh | 116 -- scribo/filter/internal/compute.hh | 147 -- scribo/filter/object_groups_size_ratio.hh | 105 - scribo/filter/object_groups_with_holes.hh | 310 --- scribo/filter/object_links_bbox_ratio.hh | 111 -- scribo/filter/object_links_bbox_w_ratio.hh | 97 - scribo/filter/object_links_center_aligned.hh | 113 -- scribo/filter/object_links_left_aligned.hh | 122 -- scribo/filter/object_links_non_aligned_simple.hh | 132 -- scribo/filter/object_links_right_aligned.hh | 121 -- scribo/filter/objects_h_thick.hh | 196 -- scribo/filter/objects_h_thin.hh | 192 -- scribo/filter/objects_size_ratio.hh | 120 -- scribo/filter/objects_small.hh | 160 -- scribo/filter/objects_thick.hh | 191 -- scribo/filter/objects_thin.hh | 190 -- scribo/filter/objects_v_thick.hh | 196 -- scribo/filter/objects_v_thin.hh | 193 -- scribo/filter/objects_with_holes.hh | 580 ------ scribo/headers.mk | 308 ++-- scribo/io/xml/save.hh | 249 --- scribo/make/all.hh | 49 - scribo/make/text.hh | 180 -- scribo/postprocessing/fill_object_holes.hh | 408 ---- scribo/preprocessing/all.hh | 46 - scribo/preprocessing/crop_without_localization.hh | 97 - scribo/preprocessing/denoise_bg.hh | 156 -- scribo/preprocessing/denoise_fg.hh | 131 -- scribo/preprocessing/deskew.hh | 437 ----- scribo/preprocessing/deskew_crop.hh | 187 -- scribo/preprocessing/rotate_90.hh | 160 -- scribo/preprocessing/split_bg_fg.hh | 340 ---- scribo/primitive/extract/all.hh | 68 - scribo/primitive/extract/lines_h_single.hh | 202 -- .../primitive/extract/lines_h_thick_and_single.hh | 152 -- scribo/primitive/extract/lines_pattern.hh | 297 --- scribo/primitive/extract/lines_v_single.hh | 196 -- .../primitive/extract/lines_v_thick_and_single.hh | 150 -- scribo/primitive/group/all.hh | 57 - scribo/primitive/group/from_double_link.hh | 127 -- scribo/primitive/group/from_graph.hh | 179 -- scribo/primitive/internal/all.hh | 57 - scribo/primitive/internal/find_graph_link.hh | 110 -- scribo/primitive/internal/is_link_valid.hh | 81 - scribo/primitive/internal/update_link_array.hh | 105 - scribo/primitive/link/all.hh | 60 - scribo/primitive/link/compute_several.hh | 117 -- scribo/primitive/link/internal/compute_anchor.hh | 249 --- .../primitive/link/internal/dmax_functor_base.hh | 100 - .../primitive/link/internal/find_several_links.hh | 137 -- .../primitive/link/internal/link_functor_base.hh | 535 ------ .../primitive/link/internal/link_ms_dmax_base.hh | 164 -- .../link/internal/link_ms_dmax_ratio_base.hh | 170 -- .../link/internal/link_several_dmax_base.hh | 265 --- scribo/primitive/link/with_graph.hh | 123 -- scribo/primitive/link/with_rag.hh | 99 - scribo/primitive/link/with_several_graphes.hh | 126 -- scribo/primitive/link/with_several_left_links.hh | 164 -- .../link/with_several_right_closest_links.hh | 215 --- scribo/primitive/link/with_several_right_links.hh | 166 -- scribo/primitive/link/with_single_down_link.hh | 183 -- scribo/primitive/link/with_single_up_link.hh | 183 -- scribo/primitive/regroup/from_single_left_link.hh | 140 -- scribo/primitive/remove/separators.hh | 112 -- scribo/scribo.mk | 13 +- scribo/scribo/all.hh | 53 + scribo/scribo/binarization/all.hh | 55 + .../{ => scribo}/binarization/global_threshold.hh | 0 .../binarization/global_threshold_auto.hh | 0 .../binarization/internal/first_pass_functor.hh | 173 ++ .../{ => scribo}/binarization/local_threshold.hh | 0 scribo/{ => scribo}/binarization/sauvola.hh | 0 scribo/scribo/binarization/sauvola_ms.hh | 988 ++++++++++ .../{ => scribo}/binarization/sauvola_ms_split.hh | 0 .../scribo/binarization/sauvola_threshold_image.hh | 616 ++++++ .../binarization/sauvola_threshold_image_debug.hh | 421 ++++ scribo/{ => scribo}/canvas/integral_browsing.hh | 0 scribo/scribo/convert/from_qimage.hh | 93 + scribo/{ => scribo}/core/all.hh | 0 scribo/{ => scribo}/core/central_sites.hh | 0 scribo/scribo/core/component_info.hh | 203 ++ scribo/scribo/core/component_set.hh | 606 ++++++ scribo/{ => scribo}/core/concept/dmax_functor.hh | 0 scribo/{ => scribo}/core/concept/link_functor.hh | 0 scribo/{ => scribo}/core/def/lbl_type.hh | 0 scribo/scribo/core/erase_objects.hh | 86 + scribo/{ => scribo}/core/init_integral_image.hh | 0 scribo/scribo/core/line_info.hh | 937 +++++++++ scribo/{ => scribo}/core/line_set.hh | 0 scribo/scribo/core/macros.hh | 64 + scribo/{ => scribo}/core/object_groups.hh | 0 scribo/scribo/core/object_links.hh | 258 +++ scribo/{ => scribo}/core/tag/anchor.hh | 0 scribo/scribo/core/tag/component.hh | 121 ++ scribo/scribo/core/tag/line.hh | 216 +++ .../{ => scribo}/debug/alignment_decision_image.hh | 0 scribo/{ => scribo}/debug/all.hh | 0 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 | 0 scribo/scribo/debug/save_linked_bboxes_image.hh | 277 +++ scribo/{ => scribo}/debug/save_table_image.hh | 0 .../scribo/debug/several_links_decision_image.hh | 179 ++ scribo/scribo/debug/text_areas_image.hh | 133 ++ scribo/{ => scribo}/debug/usage.hh | 0 scribo/{ => scribo}/draw/all.hh | 0 scribo/scribo/draw/bounding_box_links.hh | 340 ++++ scribo/scribo/draw/bounding_boxes.hh | 117 ++ scribo/{ => scribo}/draw/groups_bboxes.hh | 0 .../estim/object_groups_v_thickness.hh | 0 scribo/{ => scribo}/filter/all.hh | 0 scribo/{ => scribo}/filter/common/objects_photo.hh | 0 .../filter/internal/alignment_angle.hh | 0 .../filter/internal/component_aligned.hh | 0 scribo/scribo/filter/internal/compute.hh | 147 ++ scribo/scribo/filter/object_groups_size_ratio.hh | 105 + scribo/{ => scribo}/filter/object_groups_small.hh | 0 .../filter/object_groups_v_thickness.hh | 0 scribo/scribo/filter/object_groups_with_holes.hh | 341 ++++ .../filter/object_links_bbox_h_ratio.hh | 0 .../filter/object_links_bbox_overlap.hh | 0 scribo/scribo/filter/object_links_bbox_ratio.hh | 111 ++ scribo/scribo/filter/object_links_bbox_w_ratio.hh | 95 + .../filter/object_links_bottom_aligned.hh | 0 .../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 ++ .../filter/object_links_top_aligned.hh | 0 scribo/scribo/filter/objects_h_thick.hh | 192 ++ scribo/scribo/filter/objects_h_thin.hh | 196 ++ scribo/{ => scribo}/filter/objects_large.hh | 0 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 | 0 .../{ => scribo}/fun/v2b/objects_large_filter.hh | 0 .../{ => scribo}/fun/v2b/objects_small_filter.hh | 0 scribo/{ => scribo}/io/text_boxes/save.hh | 0 scribo/scribo/io/xml/save.hh | 253 +++ scribo/scribo/make/all.hh | 49 + scribo/{ => scribo}/make/debug_filename.hh | 0 scribo/{ => scribo}/make/influence_zone_graph.hh | 0 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 | 0 .../preprocessing/crop_without_localization.hh | 99 + scribo/{ => scribo}/preprocessing/denoise.hh | 0 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 ++ .../preprocessing/homogeneous_contrast.hh | 0 scribo/scribo/preprocessing/rotate_90.hh | 163 ++ scribo/scribo/preprocessing/split_bg_fg.hh | 341 ++++ scribo/{ => scribo}/primitive/all.hh | 0 scribo/scribo/primitive/extract/all.hh | 68 + scribo/{ => scribo}/primitive/extract/canvas.hh | 0 scribo/{ => scribo}/primitive/extract/cells.hh | 0 .../{ => scribo}/primitive/extract/components.hh | 0 .../primitive/extract/horizontal_separators.hh | 0 .../primitive/extract/lines_discontinued.hh | 0 .../primitive/extract/lines_h_discontinued.hh | 0 .../primitive/extract/lines_h_pattern.hh | 0 scribo/scribo/primitive/extract/lines_h_single.hh | 202 ++ .../primitive/extract/lines_h_thick.hh | 0 .../primitive/extract/lines_h_thick_and_single.hh | 151 ++ scribo/scribo/primitive/extract/lines_pattern.hh | 298 +++ .../{ => scribo}/primitive/extract/lines_thick.hh | 0 .../primitive/extract/lines_v_discontinued.hh | 0 .../primitive/extract/lines_v_pattern.hh | 0 scribo/scribo/primitive/extract/lines_v_single.hh | 198 ++ .../primitive/extract/lines_v_thick.hh | 0 .../primitive/extract/lines_v_thick_and_single.hh | 150 ++ .../{ => scribo}/primitive/extract/separators.hh | 0 .../primitive/extract/vertical_separators.hh | 0 scribo/scribo/primitive/group/all.hh | 58 + scribo/{ => scribo}/primitive/group/apply.hh | 0 scribo/scribo/primitive/group/from_double_link.hh | 125 ++ scribo/scribo/primitive/group/from_graph.hh | 180 ++ .../primitive/group/from_single_link.hh | 0 scribo/scribo/primitive/internal/all.hh | 57 + .../scribo/primitive/internal/find_graph_link.hh | 115 ++ .../{ => scribo}/primitive/internal/find_root.hh | 0 .../primitive/internal/have_link_valid.hh | 0 scribo/scribo/primitive/internal/is_link_valid.hh | 81 + scribo/{ => scribo}/primitive/internal/rd.hh | 0 .../primitive/internal/update_graph_link.hh | 0 scribo/scribo/primitive/link/all.hh | 61 + scribo/{ => scribo}/primitive/link/compute.hh | 0 scribo/scribo/primitive/link/compute_several.hh | 117 ++ .../primitive/link/internal/compute_anchor.hh | 252 +++ .../primitive/link/internal/dmax_default.hh | 0 .../primitive/link/internal/dmax_functor_base.hh | 102 + .../link/internal/dmax_width_and_height.hh | 0 .../primitive/link/internal/dmax_width_only.hh | 0 .../primitive/link/internal/find_link.hh | 0 .../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 | 0 .../link/internal/link_single_dmax_ratio_base.hh | 0 .../primitive/link/merge_double_link.hh | 0 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 | 0 .../scribo/primitive/link/with_single_down_link.hh | 181 ++ .../primitive/link/with_single_left_link.hh | 0 .../link/with_single_left_link_dmax_ratio.hh | 0 .../primitive/link/with_single_right_link.hh | 0 .../link/with_single_right_link_bottom.hh | 0 .../link/with_single_right_link_dmax_ratio.hh | 0 .../primitive/link/with_single_right_link_top.hh | 0 .../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 | 0 scribo/scribo/subsampling/integral_single_image.hh | 460 +++++ scribo/scribo/table/align_lines_horizontaly.hh | 106 + scribo/{ => scribo}/table/align_lines_verticaly.hh | 0 scribo/{ => scribo}/table/all.hh | 0 .../{ => scribo}/table/connect_horizontal_lines.hh | 0 .../{ => scribo}/table/connect_vertical_lines.hh | 0 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 | 0 scribo/scribo/table/internal/connect_lines.hh | 125 ++ scribo/{ => scribo}/table/internal/repair_lines.hh | 0 scribo/scribo/table/rebuild.hh | 158 ++ .../{ => scribo}/table/repair_horizontal_lines.hh | 0 scribo/{ => scribo}/table/repair_vertical_lines.hh | 0 scribo/{ => scribo}/text/all.hh | 0 scribo/{ => scribo}/text/clean.hh | 0 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 | 0 scribo/{ => scribo}/upsampling/bs2x.hh | 0 scribo/scribo/upsampling/eagle.hh | 149 ++ scribo/src/Makefile.am | 28 +- scribo/src/README | 28 +- scribo/src/afp/components.hh | 69 +- scribo/src/afp/link.hh | 49 +- scribo/src/afp/regroup.hh | 36 + scribo/src/binarization/Makefile.am | 5 +- scribo/src/binarization/sauvola_ms.cc | 2 - scribo/src/contest/hdibco-2010/Makefile.am | 4 +- scribo/src/debug/Makefile.am | 6 +- .../src/debug/show_info_median_inter_characters.cc | 194 +-- scribo/src/debug/show_info_x_height.cc | 224 +-- scribo/src/debug/show_links_bbox_h_ratio.cc | 26 +- scribo/src/debug/show_links_bbox_overlap.cc | 19 +- scribo/src/debug/show_links_bottom_aligned.cc | 6 +- scribo/src/debug/show_links_center_aligned.cc | 19 +- .../show_links_left_right_links_validation.cc | 35 +- 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 | 38 +- scribo/src/debug/show_links_single_down.cc | 33 +- .../debug/show_links_single_down_left_aligned.cc | 26 +- .../debug/show_links_single_down_right_aligned.cc | 29 +- scribo/src/debug/show_links_single_left.cc | 36 +- .../src/debug/show_links_single_left_dmax_ratio.cc | 44 +- scribo/src/debug/show_links_single_right.cc | 37 +- .../debug/show_links_single_right_dmax_ratio.cc | 36 +- scribo/src/debug/show_links_single_up.cc | 37 +- .../src/debug/show_links_single_up_left_aligned.cc | 29 +- .../debug/show_links_single_up_right_aligned.cc | 29 +- scribo/src/debug/show_links_top_aligned.cc | 12 +- 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 | 3 - 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 | 27 +- scribo/src/filter/objects_with_holes_pgm.cc | 23 +- scribo/src/misc/Makefile.am | 4 - scribo/src/misc/negate.cc | 5 +- scribo/src/misc/superpose.cc | 7 +- scribo/src/pbm_lines_in_doc.cc | 299 --- scribo/src/preprocessing/Makefile.am | 56 +- scribo/src/preprocessing/preprocess.cc | 27 +- scribo/src/preprocessing/rotate.cc | 68 + scribo/src/preprocessing/rotate_90.cc | 30 +- scribo/src/preprocessing/split_bg_fg.cc | 14 +- scribo/src/preprocessing/unskew.cc | 22 +- scribo/src/primitive/Makefile.am | 3 - scribo/src/primitive/extract/Makefile.am | 4 - .../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 +- scribo/src/primitive/find/Makefile.am | 5 - .../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 | 21 +- .../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/Makefile.am | 3 - scribo/src/table/erase.cc | 15 +- scribo/src/table/extract.cc | 7 +- scribo/src/text/Makefile.am | 3 - scribo/src/text/cleantxt.cc | 45 +- scribo/src/text_in_picture.cc | 128 +- scribo/src/text_recognition_in_picture.cc | 378 ++++ scribo/subsampling/bilinear.hh | 114 -- scribo/subsampling/integral_single_image.hh | 459 ----- scribo/table/align_lines_horizontaly.hh | 101 - scribo/table/erase.hh | 101 - scribo/table/extract.hh | 116 -- scribo/table/internal/align_lines.hh | 196 -- scribo/table/internal/connect_lines.hh | 127 -- scribo/table/rebuild.hh | 157 -- scribo/tests/Makefile.am | 7 +- scribo/tests/core/Makefile.am | 8 +- scribo/tests/core/object_image.cc | 72 - scribo/tests/filter/Makefile.am | 3 - scribo/tests/filter/objects_with_holes.cc | 67 +- scribo/tests/filter/small_and_large_bboxes.cc | 67 +- scribo/tests/preprocessing/Makefile.am | 7 +- scribo/tests/preprocessing/crop.cc | 5 +- .../preprocessing/crop_without_localization.cc | 5 +- scribo/tests/preprocessing/deskew.cc | 4 +- scribo/tests/preprocessing/rotate_90.cc | 2 +- scribo/tests/table/Makefile.am | 3 - scribo/tests/table/extract_lines_with_rank.cc | 5 +- scribo/tests/table/repair_lines.cc | 5 +- scribo/tests/tests.mk | 26 +- scribo/tests/text/Makefile.am | 3 - scribo/tests/toolchain/Makefile.am | 5 +- scribo/tests/toolchain/nepomuk/text_extraction.cc | 2 +- scribo/tests/unit_test/Makefile.am | 32 +- scribo/tests/unit_test/build_unit_test.sh | 67 - 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 | 4 + scribo/tests/unit_test/unit-tests.mk | 260 +++- scribo/text/clean_inplace.hh | 147 -- scribo/text/extract_lines.hh | 152 -- scribo/text/merging.hh | 936 --------- scribo/text/recognition.hh | 269 --- scribo/toolchain/nepomuk/text_extraction.hh | 160 -- scribo/upsampling/eagle.hh | 145 -- swilena/ChangeLog | 18 + swilena/Makefile.am | 3 - swilena/python/Makefile.am | 29 +- swilena/python/morpho-fun.py | 23 +- swilena/python/morpho-segm.py | 7 +- 799 files changed, 38945 insertions(+), 28663 deletions(-) create mode 100644 HACKING create mode 100644 build-aux/tex.mk create mode 100755 build-aux/texi2dvi create mode 100644 m4/boost.m4 create mode 100644 m4/pkg.m4 delete mode 100644 m4/with-swilena.m4 delete mode 100644 milena/doc/doc.mk create mode 100644 milena/doc/examples-outputs.mk create mode 100644 milena/doc/examples.mk delete mode 100644 milena/doc/examples/Makefile.am rename milena/doc/examples/{accu-right-instanciation.cc => accu-right-instantiation.cc} (100%) rename milena/doc/examples/{accu-wrong-instanciation.cc.raw => accu-wrong-instantiation.cc.raw} (100%) delete mode 100644 milena/doc/examples/examples.mk rename milena/doc/examples/split/{accu-right-instanciation-1.cc.raw => accu-right-instantiation-1.cc.raw} (100%) create mode 100644 milena/doc/figures.mk delete mode 100644 milena/doc/figures/figures.mk rename milena/doc/{white_paper => }/figures/house.png (100%) rename milena/doc/{white_paper => }/figures/house_rag.png (100%) rename milena/doc/{white_paper => }/figures/house_wshed.png (100%) rename milena/doc/{white_paper => }/figures/house_wshed_mean_colors.png (100%) rename milena/doc/{technical/figures => figures/technical}/file_layout.pdf (100%) rename milena/doc/{technical/figures => figures/technical}/file_layout.png (100%) delete mode 100644 milena/doc/figures/tuto4_genericity_and_algorithms-7.pgm delete mode 100644 milena/doc/figures/tuto4_genericity_and_algorithms-7.ppm delete mode 100644 milena/doc/figures/tuto4_genericity_and_algorithms-8.pgm delete mode 100644 milena/doc/figures/tuto4_genericity_and_algorithms-8.ppm delete mode 100644 milena/doc/figures/tuto4_genericity_and_algorithms-9.pgm delete mode 100644 milena/doc/figures/tuto4_genericity_and_algorithms-9.ppm create mode 100755 milena/doc/gen-examples-outputs-mk create mode 100755 milena/doc/gen-figures-mk create mode 100755 milena/doc/gen-make-variable create mode 100755 milena/doc/gen-split-examples-mk create mode 100755 milena/doc/gen-split-outputs-mk create mode 100644 milena/doc/graphicx.hva create mode 120000 milena/doc/img/small.pbm create mode 100644 milena/doc/outputs.mk copy milena/doc/outputs/{accu-right-instanciation.txt => accu-right-instantiation.txt} (100%) rename milena/doc/outputs/{ima2d-decl-2.txt => ima-load.txt} (100%) delete mode 100644 milena/doc/outputs/outputs.mk rename milena/doc/{tutorial/headers.stamp => outputs/tuto3_first_routine.txt} (100%) rename milena/doc/outputs/{accu-right-instanciation.txt => tuto4_image.txt} (100%) create mode 100644 milena/doc/programs-examples.mk create mode 100644 milena/doc/ref-guide.tex delete mode 100644 milena/doc/ref_guide/Makefile.am delete mode 100644 milena/doc/ref_guide/ref_guide.tex create mode 100644 milena/doc/split-examples.mk create mode 100644 milena/doc/split-outputs.mk rename milena/doc/{technical => technical.old}/designs/properties/values.txt (100%) rename milena/doc/{technical => technical.old}/designs/site_psite_piter/README (100%) create mode 100644 milena/doc/technical.tex delete mode 100644 milena/doc/technical/Makefile.am delete mode 100644 milena/doc/technical/technical.tex create mode 100644 milena/doc/tools/data.hh.in rename milena/doc/{tutorial => tutorial.old}/design/Makefile (100%) rename milena/doc/{tutorial => tutorial.old}/design/design.tex (100%) rename milena/doc/{tutorial => tutorial.old}/design/include/imagetours.tex (100%) rename milena/doc/{tutorial => tutorial.old}/design/include/properties.tex (100%) rename milena/doc/{tutorial => tutorial.old}/doxyfile_tuto.local (100%) rename milena/doc/{tutorial => tutorial.old}/image_types.txt (100%) rename milena/doc/{tutorial => tutorial.old}/image_values.txt (100%) rename milena/doc/{tutorial => tutorial.old}/images_tour.txt (100%) rename milena/doc/{tutorial => tutorial.old}/slides.tex (100%) rename milena/doc/{tutorial => }/tutorial.tex (100%) delete mode 100644 milena/doc/tutorial/Makefile.am rename milena/doc/{white_paper/white_paper.tex => white-paper.tex} (100%) delete mode 100644 milena/doc/white_paper/Makefile.am create mode 100644 milena/tests/unit_test/cond_tests_boost-preprocessor_boost-tuple create mode 100644 milena/tests/unit_test/cond_tests_cfitsio create mode 100644 milena/tests/unit_test/cond_tests_gdcm create mode 100644 milena/tests/unit_test/cond_tests_magickxx create mode 100644 milena/tests/unit_test/cond_tests_qt create mode 100644 milena/tests/unit_test/cond_tests_tiff create mode 100644 milena/tests/util/ord.cc delete mode 100644 scribo/all.hh delete mode 100644 scribo/binarization/internal/first_pass_functor.hh delete mode 100644 scribo/binarization/sauvola_ms.hh delete mode 100644 scribo/binarization/sauvola_threshold_image.hh delete mode 100644 scribo/binarization/sauvola_threshold_image_debug.hh delete mode 100644 scribo/convert/from_qimage.hh delete mode 100644 scribo/core/component_info.hh delete mode 100644 scribo/core/component_set.hh delete mode 100644 scribo/core/erase_objects.hh delete mode 100644 scribo/core/internal/link_functor_base.hh delete mode 100644 scribo/core/line_info.hh delete mode 100644 scribo/core/macros.hh delete mode 100644 scribo/core/object_links.hh delete mode 100644 scribo/core/tag/component.hh delete mode 100644 scribo/core/tag/line.hh delete mode 100644 scribo/debug/bboxes_enlarged_image.hh delete mode 100644 scribo/debug/decision_image.hh delete mode 100644 scribo/debug/highlight_text_area.hh delete mode 100644 scribo/debug/links_decision_image.hh delete mode 100644 scribo/debug/looks_like_a_text_line_image.hh delete mode 100644 scribo/debug/mean_and_base_lines_image.hh delete mode 100644 scribo/debug/save_bboxes_image.hh delete mode 100644 scribo/debug/save_linked_bboxes_image.hh delete mode 100644 scribo/debug/save_object_diff.hh delete mode 100644 scribo/debug/several_links_decision_image.hh delete mode 100644 scribo/draw/bounding_box_links.hh delete mode 100644 scribo/draw/bounding_boxes.hh delete mode 100644 scribo/filter/internal/compute.hh delete mode 100644 scribo/filter/object_groups_size_ratio.hh delete mode 100644 scribo/filter/object_groups_with_holes.hh delete mode 100644 scribo/filter/object_links_bbox_ratio.hh delete mode 100644 scribo/filter/object_links_bbox_w_ratio.hh delete mode 100644 scribo/filter/object_links_center_aligned.hh delete mode 100644 scribo/filter/object_links_left_aligned.hh delete mode 100644 scribo/filter/object_links_non_aligned_simple.hh delete mode 100644 scribo/filter/object_links_right_aligned.hh delete mode 100644 scribo/filter/objects_h_thick.hh delete mode 100644 scribo/filter/objects_h_thin.hh delete mode 100644 scribo/filter/objects_size_ratio.hh delete mode 100644 scribo/filter/objects_small.hh delete mode 100644 scribo/filter/objects_thick.hh delete mode 100644 scribo/filter/objects_thin.hh delete mode 100644 scribo/filter/objects_v_thick.hh delete mode 100644 scribo/filter/objects_v_thin.hh delete mode 100644 scribo/filter/objects_with_holes.hh delete mode 100644 scribo/io/xml/save.hh delete mode 100644 scribo/make/all.hh delete mode 100644 scribo/make/text.hh delete mode 100644 scribo/postprocessing/fill_object_holes.hh delete mode 100644 scribo/preprocessing/all.hh delete mode 100644 scribo/preprocessing/crop_without_localization.hh delete mode 100644 scribo/preprocessing/denoise_bg.hh delete mode 100644 scribo/preprocessing/denoise_fg.hh delete mode 100644 scribo/preprocessing/deskew.hh delete mode 100644 scribo/preprocessing/deskew_crop.hh delete mode 100644 scribo/preprocessing/rotate_90.hh delete mode 100644 scribo/preprocessing/split_bg_fg.hh delete mode 100644 scribo/primitive/extract/all.hh delete mode 100644 scribo/primitive/extract/lines_h_single.hh delete mode 100644 scribo/primitive/extract/lines_h_thick_and_single.hh delete mode 100644 scribo/primitive/extract/lines_pattern.hh delete mode 100644 scribo/primitive/extract/lines_v_single.hh delete mode 100644 scribo/primitive/extract/lines_v_thick_and_single.hh delete mode 100644 scribo/primitive/group/all.hh delete mode 100644 scribo/primitive/group/from_double_link.hh delete mode 100644 scribo/primitive/group/from_graph.hh delete mode 100644 scribo/primitive/internal/all.hh delete mode 100644 scribo/primitive/internal/find_graph_link.hh delete mode 100644 scribo/primitive/internal/is_link_valid.hh delete mode 100644 scribo/primitive/internal/update_link_array.hh delete mode 100644 scribo/primitive/link/all.hh delete mode 100644 scribo/primitive/link/compute_several.hh delete mode 100644 scribo/primitive/link/internal/compute_anchor.hh delete mode 100644 scribo/primitive/link/internal/dmax_functor_base.hh delete mode 100644 scribo/primitive/link/internal/find_several_links.hh delete mode 100644 scribo/primitive/link/internal/link_functor_base.hh delete mode 100644 scribo/primitive/link/internal/link_ms_dmax_base.hh delete mode 100644 scribo/primitive/link/internal/link_ms_dmax_ratio_base.hh delete mode 100644 scribo/primitive/link/internal/link_several_dmax_base.hh delete mode 100644 scribo/primitive/link/with_graph.hh delete mode 100644 scribo/primitive/link/with_rag.hh delete mode 100644 scribo/primitive/link/with_several_graphes.hh delete mode 100644 scribo/primitive/link/with_several_left_links.hh delete mode 100644 scribo/primitive/link/with_several_right_closest_links.hh delete mode 100644 scribo/primitive/link/with_several_right_links.hh delete mode 100644 scribo/primitive/link/with_single_down_link.hh delete mode 100644 scribo/primitive/link/with_single_up_link.hh delete mode 100644 scribo/primitive/regroup/from_single_left_link.hh delete mode 100644 scribo/primitive/remove/separators.hh create mode 100644 scribo/scribo/all.hh create mode 100644 scribo/scribo/binarization/all.hh rename scribo/{ => scribo}/binarization/global_threshold.hh (100%) rename scribo/{ => scribo}/binarization/global_threshold_auto.hh (100%) create mode 100644 scribo/scribo/binarization/internal/first_pass_functor.hh rename scribo/{ => scribo}/binarization/local_threshold.hh (100%) rename scribo/{ => scribo}/binarization/sauvola.hh (100%) create mode 100644 scribo/scribo/binarization/sauvola_ms.hh rename scribo/{ => scribo}/binarization/sauvola_ms_split.hh (100%) create mode 100644 scribo/scribo/binarization/sauvola_threshold_image.hh create mode 100644 scribo/scribo/binarization/sauvola_threshold_image_debug.hh rename scribo/{ => scribo}/canvas/integral_browsing.hh (100%) create mode 100644 scribo/scribo/convert/from_qimage.hh rename scribo/{ => scribo}/core/all.hh (100%) rename scribo/{ => scribo}/core/central_sites.hh (100%) create mode 100644 scribo/scribo/core/component_info.hh create mode 100644 scribo/scribo/core/component_set.hh rename scribo/{ => scribo}/core/concept/dmax_functor.hh (100%) rename scribo/{ => scribo}/core/concept/link_functor.hh (100%) rename scribo/{ => scribo}/core/def/lbl_type.hh (100%) create mode 100644 scribo/scribo/core/erase_objects.hh rename scribo/{ => scribo}/core/init_integral_image.hh (100%) create mode 100644 scribo/scribo/core/line_info.hh rename scribo/{ => scribo}/core/line_set.hh (100%) create mode 100644 scribo/scribo/core/macros.hh rename scribo/{ => scribo}/core/object_groups.hh (100%) create mode 100644 scribo/scribo/core/object_links.hh rename scribo/{ => scribo}/core/tag/anchor.hh (100%) create mode 100644 scribo/scribo/core/tag/component.hh create mode 100644 scribo/scribo/core/tag/line.hh rename scribo/{ => scribo}/debug/alignment_decision_image.hh (100%) rename scribo/{ => scribo}/debug/all.hh (100%) create mode 100644 scribo/scribo/debug/bboxes_enlarged_image.hh create mode 100644 scribo/scribo/debug/char_space_image.hh create mode 100644 scribo/scribo/debug/decision_image.hh create mode 100644 scribo/scribo/debug/highlight_text_area.hh create mode 100644 scribo/scribo/debug/line_info_image.hh create mode 100644 scribo/scribo/debug/links_decision_image.hh create mode 100644 scribo/scribo/debug/looks_like_a_text_line_image.hh create mode 100644 scribo/scribo/debug/mean_and_base_lines_image.hh create mode 100644 scribo/scribo/debug/save_bboxes_image.hh create mode 100644 scribo/scribo/debug/save_comp_diff.hh rename scribo/{ => scribo}/debug/save_label_image.hh (100%) create mode 100644 scribo/scribo/debug/save_linked_bboxes_image.hh rename scribo/{ => scribo}/debug/save_table_image.hh (100%) create mode 100644 scribo/scribo/debug/several_links_decision_image.hh create mode 100644 scribo/scribo/debug/text_areas_image.hh rename scribo/{ => scribo}/debug/usage.hh (100%) rename scribo/{ => scribo}/draw/all.hh (100%) create mode 100644 scribo/scribo/draw/bounding_box_links.hh create mode 100644 scribo/scribo/draw/bounding_boxes.hh rename scribo/{ => scribo}/draw/groups_bboxes.hh (100%) rename scribo/{ => scribo}/estim/object_groups_v_thickness.hh (100%) rename scribo/{ => scribo}/filter/all.hh (100%) rename scribo/{ => scribo}/filter/common/objects_photo.hh (100%) rename scribo/{ => scribo}/filter/internal/alignment_angle.hh (100%) rename scribo/{ => scribo}/filter/internal/component_aligned.hh (100%) create mode 100644 scribo/scribo/filter/internal/compute.hh create mode 100644 scribo/scribo/filter/object_groups_size_ratio.hh rename scribo/{ => scribo}/filter/object_groups_small.hh (100%) rename scribo/{ => scribo}/filter/object_groups_v_thickness.hh (100%) create mode 100644 scribo/scribo/filter/object_groups_with_holes.hh rename scribo/{ => scribo}/filter/object_links_bbox_h_ratio.hh (100%) rename scribo/{ => scribo}/filter/object_links_bbox_overlap.hh (100%) create mode 100644 scribo/scribo/filter/object_links_bbox_ratio.hh create mode 100644 scribo/scribo/filter/object_links_bbox_w_ratio.hh rename scribo/{ => scribo}/filter/object_links_bottom_aligned.hh (100%) create mode 100644 scribo/scribo/filter/object_links_center_aligned.hh create mode 100644 scribo/scribo/filter/object_links_left_aligned.hh create mode 100644 scribo/scribo/filter/object_links_non_aligned_simple.hh create mode 100644 scribo/scribo/filter/object_links_right_aligned.hh rename scribo/{ => scribo}/filter/object_links_top_aligned.hh (100%) create mode 100644 scribo/scribo/filter/objects_h_thick.hh create mode 100644 scribo/scribo/filter/objects_h_thin.hh rename scribo/{ => scribo}/filter/objects_large.hh (100%) create mode 100644 scribo/scribo/filter/objects_size_ratio.hh create mode 100644 scribo/scribo/filter/objects_small.hh create mode 100644 scribo/scribo/filter/objects_thick.hh create mode 100644 scribo/scribo/filter/objects_thin.hh create mode 100644 scribo/scribo/filter/objects_v_thick.hh create mode 100644 scribo/scribo/filter/objects_v_thin.hh create mode 100644 scribo/scribo/filter/objects_with_holes.hh rename scribo/{ => scribo}/fun/v2b/label_to_bool.hh (100%) rename scribo/{ => scribo}/fun/v2b/objects_large_filter.hh (100%) rename scribo/{ => scribo}/fun/v2b/objects_small_filter.hh (100%) rename scribo/{ => scribo}/io/text_boxes/save.hh (100%) create mode 100644 scribo/scribo/io/xml/save.hh create mode 100644 scribo/scribo/make/all.hh rename scribo/{ => scribo}/make/debug_filename.hh (100%) rename scribo/{ => scribo}/make/influence_zone_graph.hh (100%) create mode 100644 scribo/scribo/postprocessing/all.hh create mode 100644 scribo/scribo/postprocessing/fill_object_holes.hh create mode 100644 scribo/scribo/preprocessing/all.hh rename scribo/{ => scribo}/preprocessing/crop.hh (100%) create mode 100644 scribo/scribo/preprocessing/crop_without_localization.hh rename scribo/{ => scribo}/preprocessing/denoise.hh (100%) create mode 100644 scribo/scribo/preprocessing/denoise_bg.hh create mode 100644 scribo/scribo/preprocessing/denoise_fg.hh create mode 100644 scribo/scribo/preprocessing/deskew.hh create mode 100644 scribo/scribo/preprocessing/deskew_crop.hh rename scribo/{ => scribo}/preprocessing/homogeneous_contrast.hh (100%) create mode 100644 scribo/scribo/preprocessing/rotate_90.hh create mode 100644 scribo/scribo/preprocessing/split_bg_fg.hh rename scribo/{ => scribo}/primitive/all.hh (100%) create mode 100644 scribo/scribo/primitive/extract/all.hh rename scribo/{ => scribo}/primitive/extract/canvas.hh (100%) rename scribo/{ => scribo}/primitive/extract/cells.hh (100%) rename scribo/{ => scribo}/primitive/extract/components.hh (100%) rename scribo/{ => scribo}/primitive/extract/horizontal_separators.hh (100%) rename scribo/{ => scribo}/primitive/extract/lines_discontinued.hh (100%) rename scribo/{ => scribo}/primitive/extract/lines_h_discontinued.hh (100%) rename scribo/{ => scribo}/primitive/extract/lines_h_pattern.hh (100%) create mode 100644 scribo/scribo/primitive/extract/lines_h_single.hh rename scribo/{ => scribo}/primitive/extract/lines_h_thick.hh (100%) create mode 100644 scribo/scribo/primitive/extract/lines_h_thick_and_single.hh create mode 100644 scribo/scribo/primitive/extract/lines_pattern.hh rename scribo/{ => scribo}/primitive/extract/lines_thick.hh (100%) rename scribo/{ => scribo}/primitive/extract/lines_v_discontinued.hh (100%) rename scribo/{ => scribo}/primitive/extract/lines_v_pattern.hh (100%) create mode 100644 scribo/scribo/primitive/extract/lines_v_single.hh rename scribo/{ => scribo}/primitive/extract/lines_v_thick.hh (100%) create mode 100644 scribo/scribo/primitive/extract/lines_v_thick_and_single.hh rename scribo/{ => scribo}/primitive/extract/separators.hh (100%) rename scribo/{ => scribo}/primitive/extract/vertical_separators.hh (100%) create mode 100644 scribo/scribo/primitive/group/all.hh rename scribo/{ => scribo}/primitive/group/apply.hh (100%) create mode 100644 scribo/scribo/primitive/group/from_double_link.hh create mode 100644 scribo/scribo/primitive/group/from_graph.hh rename scribo/{ => scribo}/primitive/group/from_single_link.hh (100%) create mode 100644 scribo/scribo/primitive/internal/all.hh create mode 100644 scribo/scribo/primitive/internal/find_graph_link.hh rename scribo/{ => scribo}/primitive/internal/find_root.hh (100%) rename scribo/{ => scribo}/primitive/internal/have_link_valid.hh (100%) create mode 100644 scribo/scribo/primitive/internal/is_link_valid.hh rename scribo/{ => scribo}/primitive/internal/rd.hh (100%) rename scribo/{ => scribo}/primitive/internal/update_graph_link.hh (100%) create mode 100644 scribo/scribo/primitive/link/all.hh rename scribo/{ => scribo}/primitive/link/compute.hh (100%) create mode 100644 scribo/scribo/primitive/link/compute_several.hh create mode 100644 scribo/scribo/primitive/link/internal/compute_anchor.hh rename scribo/{ => scribo}/primitive/link/internal/dmax_default.hh (100%) create mode 100644 scribo/scribo/primitive/link/internal/dmax_functor_base.hh rename scribo/{ => scribo}/primitive/link/internal/dmax_width_and_height.hh (100%) rename scribo/{ => scribo}/primitive/link/internal/dmax_width_only.hh (100%) rename scribo/{ => scribo}/primitive/link/internal/find_link.hh (100%) create mode 100644 scribo/scribo/primitive/link/internal/find_several_links.hh create mode 100644 scribo/scribo/primitive/link/internal/link_functor_base.hh create mode 100644 scribo/scribo/primitive/link/internal/link_several_dmax_base.hh rename scribo/{ => scribo}/primitive/link/internal/link_single_dmax_base.hh (100%) rename scribo/{ => scribo}/primitive/link/internal/link_single_dmax_ratio_base.hh (100%) rename scribo/{ => scribo}/primitive/link/merge_double_link.hh (100%) create mode 100644 scribo/scribo/primitive/link/with_graph.hh create mode 100644 scribo/scribo/primitive/link/with_rag.hh create mode 100644 scribo/scribo/primitive/link/with_several_graphes.hh create mode 100644 scribo/scribo/primitive/link/with_several_left_links.hh create mode 100644 scribo/scribo/primitive/link/with_several_right_closest_links.hh create mode 100644 scribo/scribo/primitive/link/with_several_right_links.hh rename scribo/{ => scribo}/primitive/link/with_several_right_links_overlap.hh (100%) create mode 100644 scribo/scribo/primitive/link/with_single_down_link.hh rename scribo/{ => scribo}/primitive/link/with_single_left_link.hh (100%) rename scribo/{ => scribo}/primitive/link/with_single_left_link_dmax_ratio.hh (100%) rename scribo/{ => scribo}/primitive/link/with_single_right_link.hh (100%) rename scribo/{ => scribo}/primitive/link/with_single_right_link_bottom.hh (100%) rename scribo/{ => scribo}/primitive/link/with_single_right_link_dmax_ratio.hh (100%) rename scribo/{ => scribo}/primitive/link/with_single_right_link_top.hh (100%) create mode 100644 scribo/scribo/primitive/link/with_single_up_link.hh create mode 100644 scribo/scribo/primitive/regroup/from_single_left_link.hh create mode 100644 scribo/scribo/primitive/regroup/from_single_left_link_wrt_h_ratio.hh create mode 100644 scribo/scribo/primitive/remove/separators.hh create mode 100644 scribo/scribo/subsampling/bilinear.hh rename scribo/{ => scribo}/subsampling/integral.hh (100%) create mode 100644 scribo/scribo/subsampling/integral_single_image.hh create mode 100644 scribo/scribo/table/align_lines_horizontaly.hh rename scribo/{ => scribo}/table/align_lines_verticaly.hh (100%) rename scribo/{ => scribo}/table/all.hh (100%) rename scribo/{ => scribo}/table/connect_horizontal_lines.hh (100%) rename scribo/{ => scribo}/table/connect_vertical_lines.hh (100%) create mode 100644 scribo/scribo/table/erase.hh create mode 100644 scribo/scribo/table/extract.hh create mode 100644 scribo/scribo/table/internal/align_lines.hh rename scribo/{ => scribo}/table/internal/all.hh (100%) create mode 100644 scribo/scribo/table/internal/connect_lines.hh rename scribo/{ => scribo}/table/internal/repair_lines.hh (100%) create mode 100644 scribo/scribo/table/rebuild.hh rename scribo/{ => scribo}/table/repair_horizontal_lines.hh (100%) rename scribo/{ => scribo}/table/repair_vertical_lines.hh (100%) rename scribo/{ => scribo}/text/all.hh (100%) rename scribo/{ => scribo}/text/clean.hh (100%) create mode 100644 scribo/scribo/text/clean_inplace.hh create mode 100644 scribo/scribo/text/extract_lines.hh create mode 100644 scribo/scribo/text/look_like_text_lines.hh create mode 100644 scribo/scribo/text/merging.hh create mode 100644 scribo/scribo/text/recognition.hh create mode 100644 scribo/scribo/toolchain/nepomuk/text_extraction.hh rename scribo/{ => scribo}/toolchain/text_in_doc.hh (100%) rename scribo/{ => scribo}/upsampling/bs2x.hh (100%) create mode 100644 scribo/scribo/upsampling/eagle.hh delete mode 100644 scribo/src/pbm_lines_in_doc.cc create mode 100644 scribo/src/preprocessing/rotate.cc create mode 100644 scribo/src/text_recognition_in_picture.cc delete mode 100644 scribo/subsampling/bilinear.hh delete mode 100644 scribo/subsampling/integral_single_image.hh delete mode 100644 scribo/table/align_lines_horizontaly.hh delete mode 100644 scribo/table/erase.hh delete mode 100644 scribo/table/extract.hh delete mode 100644 scribo/table/internal/align_lines.hh delete mode 100644 scribo/table/internal/connect_lines.hh delete mode 100644 scribo/table/rebuild.hh delete mode 100644 scribo/tests/core/object_image.cc delete mode 100755 scribo/tests/unit_test/build_unit_test.sh create mode 100644 scribo/tests/unit_test/cond_tests_qt create mode 100644 scribo/tests/unit_test/cond_tests_qt_tesseract_tiff create mode 100644 scribo/tests/unit_test/cond_tests_tesseract_tiff create mode 100644 scribo/tests/unit_test/disabled_tests delete mode 100644 scribo/text/clean_inplace.hh delete mode 100644 scribo/text/extract_lines.hh delete mode 100644 scribo/text/merging.hh delete mode 100644 scribo/text/recognition.hh delete mode 100644 scribo/toolchain/nepomuk/text_extraction.hh delete mode 100644 scribo/upsampling/eagle.hh hooks/post-receive -- Olena, a generic and efficient image processing platform
14Â years, 10Â months
1
0
0
0
branch exp/next-build-ok updated: last-svn-commit-477-g53a57b1
by lazzaraï¼ lrde.epita.fr
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Olena, a generic and efficient image processing platform". The branch exp/next-build-ok has been updated discards 6cdc4212ea8835dd20bc4a024ecd5e55a54601b1 (commit) discards 92f82bb5052ce1fa559059508245769fe198c6e4 (commit) discards 999dc98b3761448ef9e181aa9f91d40b2d1c4ca5 (commit) discards d791a85fc90ade62fa14decb1e141d28e9a4401e (commit) discards 74dd34a0e2aace887b05bdfbd63df13506cf1f95 (commit) discards d8c4e9470b3f962e8a97894431e7d5abc8772f53 (commit) via 53a57b1d3275c5b9fb41db4b706342d6a7df992d (commit) via cd5ea6ecd0a75ad2dbabd704490682aeceac68bd (commit) via 2925b324b1b9c0427600a0160cdc214a03d5e8ae (commit) via 04569a2bb109e39ae8d09530aaa526ad9ae2df49 (commit) via ebad60a1e78715afe0359a2837c5de517fa7a42b (commit) via 5bd441f8f01071c7c228837ceb8d9e401bc8f974 (commit) via d6e4a923e32eb749a66490fba62885a69b2fb4dd (commit) via a4a49108929edc4cd8c2d108da7ca821f6684b45 (commit) via ed4e74a2f51a69d580a46b155c9d319d7e7f603c (commit) via 63c77cdaa94cdbfd1ee3591675f729b74cc0371e (commit) via 621ebe718756448951c4362aa8dc5be8b84025da (commit) via c3d187edce3a706763c8e2bed355517e22037cf0 (commit) via a903e8dadd0bc8f76a36c846a6167903aac6c963 (commit) via 696503dfbe53631c3d16db408d7137a0d5b9c536 (commit) via b265090ab82ff960a5cd770b863eebb8eeee71be (commit) via c0c3a98d00d261f0b32c16083030be5dc05e79ff (commit) via bd5519ba780434acb1a52552f55c5c91806d5931 (commit) via 4d1677cf6f3b63d78da59159550988f17e61b93a (commit) via 951bfdd9cb60516e53abc0c961c046851174d37d (commit) via ca408292a71afa85aa76b568642f91729ebaae05 (commit) via 00d8fa3b631df334782cc755a0a1bbc3af1e8d35 (commit) via 6ca68abdb08224a001fbdd838a6bbffb58b902ba (commit) via a9958fa777ee5686c5a923311aab1caa793ab89a (commit) via be773a94ff966b4008cb3ce086bdaa3a679cf8a5 (commit) via 013ef3d7c8f41542dc327c3f86d3741476c61aa5 (commit) via 6793cca44120828368141b44d52d589d47c72f72 (commit) via f7bc7e130d7cd61342e2a1bd50433caf8dc251e2 (commit) via 3c2ce9bb05ba3502ded2bab10d64d19d10607874 (commit) via d34c8dd49b1cafb412ed6acbc9a7df856e744ada (commit) via d5c383adedab294cc3158789aae82a358ed9f8b3 (commit) via 59987833613195d29de390caf60ea67a6d05c63c (commit) via 6bf37e8533f6fe5e1ccb3db532ac2c75624a3973 (commit) via 0545aad9399df4de95f731d4ea7ff019e996efb0 (commit) via 324908fe7cfefc7e54ebab5419c195ba111adecc (commit) via 5ee999b4a272ce703a8441e19d21914ee24a325c (commit) via af62462e491439835ff02d83dd051209402b9e15 (commit) via 8fed6fb92cee676f1b08171261d1c3c3998affca (commit) via cb1501f56a94071aa6087845f47acbbb4e359487 (commit) via 4aec8b7df9701854f4a66a5759cba50d417e2477 (commit) via 6626ff4c9b970161a3afb4771f6b5d5d17cbc054 (commit) via 5a13b71e549e3e14f56c654c2cf8060668ee651d (commit) via 8bd912698276dec80d783a2a0d1c45934b7197d6 (commit) via c05d4df52ff6ff73eab3e75343e39a4bd59c25b6 (commit) via a0961e1c87e3d8b33fc3f956f4e5eabf1301e3f4 (commit) via 087715863927fde36a5c856fa87ba071c978a824 (commit) via 8283ce59a3fbee4679d7d5e6909ac69da6dc9565 (commit) via 8559cd77490d273ee43ab417b4b666aeb12a3f4b (commit) via 6b43c06339028b02542e0214c12a976d10f8b8d7 (commit) via 52112930338d0852964eba2a09f7984c04d3b29e (commit) via c3c62f2274a751f3cc0846f81d8f54c8c50192fb (commit) via 26c8584dbd90fb2668efe2cfe260eefc65201055 (commit) via 332c9acf642b9ab88ed466b1ad0e0500fc2c885c (commit) via 5ba287436f0ad7ae908f61e666e01ea6fbb546a0 (commit) via 6270c8c945def50f6fb12b95511567e27b04db24 (commit) via 290ccbee439ac1cfc9dbd0185b60260d10dbd206 (commit) via 9fffc8073f5ea86ae99a3b5ddd23d53d10cdb429 (commit) via aa19b0aaad96157c6cbc41fd92ceb07b8f370063 (commit) This update added new revisions after undoing existing revisions. That is to say, the old revision is not a strict subset of the new revision. This situation occurs when you --force push a change and generate a repository containing something like this: * -- * -- B -- O -- O -- O (6cdc4212ea8835dd20bc4a024ecd5e55a54601b1) \ N -- N -- N (53a57b1d3275c5b9fb41db4b706342d6a7df992d) When this happens we assume that you've already had alert emails for all of the O revisions, and so we here report only the revisions in the N branch from the common base, B. Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- No new revisions were added by this update. ----------------------------------------------------------------------- Summary of changes: ChangeLog | 77 ++- INSTALL | 200 +++- Makefile.am | 4 +- bootstrap | 11 +- build-aux/build_unit_test.sh | 201 +++- configure.ac | 281 +++++- m4/autotroll.m4 | 2 +- m4/boost.m4 | 1038 ++++++++++++++++++++ m4/oln-with-lib.m4 | 5 +- m4/pkg.m4 | 155 +++ milena/ChangeLog | 158 +++ milena/headers.mk | 25 + milena/mln/accu/internal/base.hh | 4 +- milena/mln/accu/math/sum.hh | 3 +- milena/mln/accu/tuple.hh | 13 +- milena/mln/convert/impl/from_float_to_value.hh | 10 + milena/mln/convert/to_qimage.hh | 3 + milena/mln/convert/to_qimage_nocopy.hh | 4 +- milena/mln/core/point.hh | 8 +- milena/mln/data/paste_without_localization.hh | 1 + milena/mln/draw/dashed_line.hh | 2 +- milena/mln/fun/n2v/white_gaussian.hh | 4 +- milena/mln/fun/v2v/rgb_to_int_u.hh | 7 +- milena/mln/fun/v2v/saturate.hh | 9 +- 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/rotate.hh | 93 ++- milena/mln/io/dicom/get_header.hh | 7 + milena/mln/io/dump/get_header.hh | 1 + milena/mln/io/fld/load.hh | 13 +- milena/mln/io/fld/max_components.hh | 32 +- milena/mln/io/raw/get_header.hh | 1 + milena/mln/labeling/blobs_and_compute.hh | 3 + milena/mln/labeling/flat_zones.hh | 34 +- milena/mln/subsampling/antialiased.hh | 3 +- milena/mln/value/qt/rgb32.hh | 3 +- milena/mln/value/rgb.hh | 56 +- milena/tests/accu/Makefile.am | 15 +- milena/tests/geom/rotate.cc | 16 +- 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/antialiased.cc | 10 +- milena/tests/topo/skeleton/crest.cc | 10 +- 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 | 108 ++- scribo/ChangeLog | 836 +++++++++++++++- scribo/Makefile.am | 4 +- scribo/README | 17 +- scribo/all.hh | 51 - scribo/binarization/internal/first_pass_functor.hh | 168 ---- scribo/binarization/sauvola_ms.hh | 988 ------------------- scribo/binarization/sauvola_threshold_image.hh | 616 ------------ .../binarization/sauvola_threshold_image_debug.hh | 420 -------- scribo/convert/from_qimage.hh | 92 -- scribo/core/component_info.hh | 203 ---- scribo/core/component_set.hh | 576 ----------- scribo/core/erase_objects.hh | 86 -- scribo/core/internal/link_functor_base.hh | 119 --- scribo/core/macros.hh | 61 -- scribo/core/object_image.hh | 38 - scribo/core/tag/component.hh | 118 --- scribo/core/tag/line.hh | 213 ---- scribo/debug/decision_image.hh | 180 ---- scribo/debug/highlight_text_area.hh | 255 ----- scribo/debug/links_decision_image.hh | 109 -- scribo/debug/mean_and_base_lines_image.hh | 147 --- scribo/debug/save_bboxes_image.hh | 142 --- scribo/debug/save_linked_bboxes_image.hh | 291 ------ scribo/debug/save_object_diff.hh | 98 -- scribo/debug/several_links_decision_image.hh | 185 ---- scribo/demo/demat/demat.pro | 2 +- scribo/demo/wizard/wizard.pro | 2 +- scribo/draw/bounding_box_links.hh | 404 -------- scribo/draw/bounding_boxes.hh | 116 --- scribo/filter/internal/compute.hh | 147 --- scribo/filter/object_groups_size_ratio.hh | 105 -- scribo/filter/object_groups_with_holes.hh | 310 ------ scribo/filter/object_links_bbox_w_ratio.hh | 97 -- scribo/filter/object_links_center_aligned.hh | 113 --- scribo/filter/object_links_left_aligned.hh | 122 --- scribo/filter/object_links_non_aligned_simple.hh | 132 --- scribo/filter/object_links_right_aligned.hh | 121 --- scribo/filter/objects_h_thick.hh | 196 ---- scribo/filter/objects_h_thin.hh | 192 ---- scribo/filter/objects_size_ratio.hh | 120 --- scribo/filter/objects_small.hh | 160 --- scribo/filter/objects_thick.hh | 191 ---- scribo/filter/objects_thin.hh | 190 ---- scribo/filter/objects_v_thick.hh | 196 ---- scribo/filter/objects_v_thin.hh | 193 ---- scribo/filter/objects_with_holes.hh | 580 ----------- scribo/headers.mk | 493 ++++------ scribo/io/xml/save.hh | 249 ----- scribo/make/all.hh | 49 - scribo/make/text.hh | 180 ---- scribo/postprocessing/fill_object_holes.hh | 408 -------- scribo/preprocessing/all.hh | 46 - scribo/preprocessing/crop_without_localization.hh | 97 -- scribo/preprocessing/denoise_bg.hh | 156 --- scribo/preprocessing/denoise_fg.hh | 131 --- scribo/preprocessing/deskew.hh | 437 -------- scribo/preprocessing/deskew_crop.hh | 187 ---- scribo/preprocessing/rotate_90.hh | 160 --- scribo/preprocessing/split_bg_fg.hh | 340 ------- scribo/primitive/extract/all.hh | 68 -- scribo/primitive/extract/lines_h_single.hh | 202 ---- .../primitive/extract/lines_h_thick_and_single.hh | 152 --- scribo/primitive/extract/lines_pattern.hh | 297 ------ scribo/primitive/extract/lines_v_single.hh | 196 ---- .../primitive/extract/lines_v_thick_and_single.hh | 150 --- scribo/primitive/group/all.hh | 57 -- scribo/primitive/group/from_double_link.hh | 127 --- scribo/primitive/group/from_graph.hh | 179 ---- scribo/primitive/internal/all.hh | 57 -- scribo/primitive/internal/find_graph_link.hh | 110 -- scribo/primitive/internal/is_link_valid.hh | 81 -- scribo/primitive/internal/update_link_array.hh | 105 -- scribo/primitive/link/all.hh | 60 -- scribo/primitive/link/compute_several.hh | 117 --- scribo/primitive/link/internal/anchors_3.hh | 147 --- scribo/primitive/link/internal/compute_anchor.hh | 249 ----- .../primitive/link/internal/dmax_functor_base.hh | 100 -- .../primitive/link/internal/find_several_links.hh | 137 --- .../primitive/link/internal/link_functor_base.hh | 535 ---------- .../primitive/link/internal/link_ms_dmax_base.hh | 164 --- .../link/internal/link_ms_dmax_ratio_base.hh | 170 ---- .../link/internal/link_several_dmax_base.hh | 265 ----- scribo/primitive/link/with_graph.hh | 123 --- scribo/primitive/link/with_rag.hh | 99 -- scribo/primitive/link/with_several_graphes.hh | 126 --- scribo/primitive/link/with_several_left_links.hh | 164 --- .../link/with_several_right_closest_links.hh | 215 ---- scribo/primitive/link/with_several_right_links.hh | 166 ---- scribo/primitive/link/with_single_down_link.hh | 183 ---- scribo/primitive/link/with_single_up_link.hh | 183 ---- scribo/primitive/regroup/from_single_left_link.hh | 140 --- scribo/primitive/remove/separators.hh | 112 --- scribo/scribo.mk | 6 +- scribo/scribo/all.hh | 53 + scribo/scribo/binarization/all.hh | 55 + .../{ => scribo}/binarization/global_threshold.hh | 0 .../binarization/global_threshold_auto.hh | 0 .../binarization/internal/first_pass_functor.hh | 173 ++++ .../{ => scribo}/binarization/local_threshold.hh | 0 scribo/{ => scribo}/binarization/sauvola.hh | 0 scribo/scribo/binarization/sauvola_ms.hh | 988 +++++++++++++++++++ .../{ => scribo}/binarization/sauvola_ms_split.hh | 0 .../scribo/binarization/sauvola_threshold_image.hh | 616 ++++++++++++ .../binarization/sauvola_threshold_image_debug.hh | 421 ++++++++ scribo/{ => scribo}/canvas/integral_browsing.hh | 0 scribo/scribo/convert/from_qimage.hh | 93 ++ scribo/{ => scribo}/core/all.hh | 0 scribo/{ => scribo}/core/central_sites.hh | 0 scribo/scribo/core/component_info.hh | 203 ++++ scribo/scribo/core/component_set.hh | 606 ++++++++++++ scribo/{ => scribo}/core/concept/dmax_functor.hh | 0 scribo/{ => scribo}/core/concept/link_functor.hh | 0 scribo/{ => scribo}/core/def/lbl_type.hh | 0 scribo/scribo/core/erase_objects.hh | 86 ++ scribo/{ => scribo}/core/init_integral_image.hh | 0 scribo/{ => scribo}/core/line_info.hh | 0 scribo/{ => scribo}/core/line_set.hh | 0 scribo/scribo/core/macros.hh | 64 ++ scribo/{ => scribo}/core/object_groups.hh | 0 scribo/{ => scribo}/core/object_links.hh | 0 scribo/{ => scribo}/core/tag/anchor.hh | 0 scribo/scribo/core/tag/component.hh | 121 +++ scribo/scribo/core/tag/line.hh | 216 ++++ .../{ => scribo}/debug/alignment_decision_image.hh | 0 scribo/{ => scribo}/debug/all.hh | 0 scribo/{ => scribo}/debug/bboxes_enlarged_image.hh | 0 scribo/{ => scribo}/debug/char_space_image.hh | 0 scribo/scribo/debug/decision_image.hh | 183 ++++ scribo/scribo/debug/highlight_text_area.hh | 305 ++++++ scribo/{ => scribo}/debug/line_info_image.hh | 0 scribo/scribo/debug/links_decision_image.hh | 111 +++ .../debug/looks_like_a_text_line_image.hh | 0 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 | 0 scribo/scribo/debug/save_linked_bboxes_image.hh | 277 ++++++ scribo/{ => scribo}/debug/save_table_image.hh | 0 .../scribo/debug/several_links_decision_image.hh | 179 ++++ scribo/scribo/debug/text_areas_image.hh | 133 +++ scribo/{ => scribo}/debug/usage.hh | 0 scribo/{ => scribo}/draw/all.hh | 0 scribo/scribo/draw/bounding_box_links.hh | 340 +++++++ scribo/scribo/draw/bounding_boxes.hh | 117 +++ scribo/{ => scribo}/draw/groups_bboxes.hh | 0 .../estim/object_groups_v_thickness.hh | 0 scribo/{ => scribo}/filter/all.hh | 0 scribo/{ => scribo}/filter/common/objects_photo.hh | 0 .../filter/internal/alignment_angle.hh | 0 .../filter/internal/component_aligned.hh | 0 scribo/scribo/filter/internal/compute.hh | 147 +++ scribo/scribo/filter/object_groups_size_ratio.hh | 105 ++ scribo/{ => scribo}/filter/object_groups_small.hh | 0 .../filter/object_groups_v_thickness.hh | 0 scribo/scribo/filter/object_groups_with_holes.hh | 341 +++++++ .../filter/object_links_bbox_h_ratio.hh | 0 .../filter/object_links_bbox_overlap.hh | 0 .../{ => scribo}/filter/object_links_bbox_ratio.hh | 0 scribo/scribo/filter/object_links_bbox_w_ratio.hh | 95 ++ .../filter/object_links_bottom_aligned.hh | 0 .../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 +++ .../filter/object_links_top_aligned.hh | 0 scribo/scribo/filter/objects_h_thick.hh | 192 ++++ scribo/scribo/filter/objects_h_thin.hh | 196 ++++ scribo/{ => scribo}/filter/objects_large.hh | 0 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 | 0 .../{ => scribo}/fun/v2b/objects_large_filter.hh | 0 .../{ => scribo}/fun/v2b/objects_small_filter.hh | 0 scribo/{ => scribo}/io/text_boxes/save.hh | 0 scribo/scribo/io/xml/save.hh | 253 +++++ scribo/scribo/make/all.hh | 49 + scribo/{ => scribo}/make/debug_filename.hh | 0 scribo/{ => scribo}/make/influence_zone_graph.hh | 0 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 | 0 .../preprocessing/crop_without_localization.hh | 99 ++ scribo/{ => scribo}/preprocessing/denoise.hh | 0 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 ++++ .../preprocessing/homogeneous_contrast.hh | 0 scribo/scribo/preprocessing/rotate_90.hh | 163 +++ scribo/scribo/preprocessing/split_bg_fg.hh | 341 +++++++ scribo/{ => scribo}/primitive/all.hh | 0 scribo/scribo/primitive/extract/all.hh | 68 ++ scribo/{ => scribo}/primitive/extract/canvas.hh | 0 scribo/{ => scribo}/primitive/extract/cells.hh | 0 .../{ => scribo}/primitive/extract/components.hh | 0 .../primitive/extract/horizontal_separators.hh | 0 .../primitive/extract/lines_discontinued.hh | 0 .../primitive/extract/lines_h_discontinued.hh | 0 .../primitive/extract/lines_h_pattern.hh | 0 scribo/scribo/primitive/extract/lines_h_single.hh | 202 ++++ .../primitive/extract/lines_h_thick.hh | 0 .../primitive/extract/lines_h_thick_and_single.hh | 151 +++ scribo/scribo/primitive/extract/lines_pattern.hh | 298 ++++++ .../{ => scribo}/primitive/extract/lines_thick.hh | 0 .../primitive/extract/lines_v_discontinued.hh | 0 .../primitive/extract/lines_v_pattern.hh | 0 scribo/scribo/primitive/extract/lines_v_single.hh | 198 ++++ .../primitive/extract/lines_v_thick.hh | 0 .../primitive/extract/lines_v_thick_and_single.hh | 150 +++ .../{ => scribo}/primitive/extract/separators.hh | 0 .../primitive/extract/vertical_separators.hh | 0 scribo/scribo/primitive/group/all.hh | 58 ++ scribo/{ => scribo}/primitive/group/apply.hh | 0 scribo/scribo/primitive/group/from_double_link.hh | 125 +++ scribo/scribo/primitive/group/from_graph.hh | 180 ++++ .../primitive/group/from_single_link.hh | 0 scribo/scribo/primitive/internal/all.hh | 57 ++ .../scribo/primitive/internal/find_graph_link.hh | 115 +++ .../{ => scribo}/primitive/internal/find_root.hh | 0 .../primitive/internal/have_link_valid.hh | 0 scribo/scribo/primitive/internal/is_link_valid.hh | 81 ++ scribo/{ => scribo}/primitive/internal/rd.hh | 0 .../primitive/internal/update_graph_link.hh | 0 scribo/scribo/primitive/link/all.hh | 61 ++ scribo/{ => scribo}/primitive/link/compute.hh | 0 scribo/scribo/primitive/link/compute_several.hh | 117 +++ .../primitive/link/internal/compute_anchor.hh | 252 +++++ .../primitive/link/internal/dmax_default.hh | 0 .../primitive/link/internal/dmax_functor_base.hh | 102 ++ .../link/internal/dmax_width_and_height.hh | 0 .../primitive/link/internal/dmax_width_only.hh | 0 .../primitive/link/internal/find_link.hh | 0 .../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 | 0 .../link/internal/link_single_dmax_ratio_base.hh | 0 .../primitive/link/merge_double_link.hh | 0 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 | 0 .../scribo/primitive/link/with_single_down_link.hh | 181 ++++ .../primitive/link/with_single_left_link.hh | 0 .../link/with_single_left_link_dmax_ratio.hh | 0 .../primitive/link/with_single_right_link.hh | 0 .../link/with_single_right_link_bottom.hh | 0 .../link/with_single_right_link_dmax_ratio.hh | 0 .../primitive/link/with_single_right_link_top.hh | 0 .../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 | 0 scribo/scribo/subsampling/integral_single_image.hh | 460 +++++++++ scribo/scribo/table/align_lines_horizontaly.hh | 106 ++ scribo/{ => scribo}/table/align_lines_verticaly.hh | 0 scribo/{ => scribo}/table/all.hh | 0 .../{ => scribo}/table/connect_horizontal_lines.hh | 0 .../{ => scribo}/table/connect_vertical_lines.hh | 0 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 | 0 .../{ => scribo}/table/internal/connect_lines.hh | 0 scribo/{ => scribo}/table/internal/repair_lines.hh | 0 scribo/scribo/table/rebuild.hh | 158 +++ .../{ => scribo}/table/repair_horizontal_lines.hh | 0 scribo/{ => scribo}/table/repair_vertical_lines.hh | 0 scribo/{ => scribo}/text/all.hh | 0 scribo/{ => scribo}/text/clean.hh | 0 scribo/scribo/text/clean_inplace.hh | 147 +++ scribo/{ => scribo}/text/extract_lines.hh | 0 scribo/{ => scribo}/text/look_like_text_lines.hh | 0 scribo/{ => scribo}/text/merging.hh | 0 scribo/{ => scribo}/text/recognition.hh | 0 scribo/scribo/toolchain/nepomuk/text_extraction.hh | 163 +++ scribo/{ => scribo}/toolchain/text_in_doc.hh | 0 scribo/{ => scribo}/upsampling/bs2x.hh | 0 scribo/scribo/upsampling/eagle.hh | 149 +++ scribo/src/Makefile.am | 12 +- scribo/src/README | 28 +- scribo/src/afp/components.hh | 69 +- scribo/src/afp/link.hh | 49 +- scribo/src/afp/regroup.hh | 36 + scribo/src/contest/hdibco-2010/Makefile.am | 4 +- scribo/src/debug/Makefile.am | 96 +- scribo/src/debug/show_links_bbox_overlap.cc | 19 +- scribo/src/debug/show_links_bottom_aligned.cc | 15 +- scribo/src/debug/show_links_center_aligned.cc | 19 +- .../show_links_left_right_links_validation.cc | 1 - 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 | 38 +- scribo/src/debug/show_links_single_down.cc | 33 +- .../debug/show_links_single_down_left_aligned.cc | 26 +- .../debug/show_links_single_down_right_aligned.cc | 29 +- scribo/src/debug/show_links_single_left.cc | 36 +- .../src/debug/show_links_single_left_dmax_ratio.cc | 44 +- scribo/src/debug/show_links_single_right.cc | 37 +- .../debug/show_links_single_right_dmax_ratio.cc | 36 +- scribo/src/debug/show_links_single_up.cc | 37 +- .../src/debug/show_links_single_up_left_aligned.cc | 29 +- .../debug/show_links_single_up_right_aligned.cc | 29 +- scribo/src/debug/show_links_top_aligned.cc | 19 +- 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 | 29 +- 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 | 27 +- scribo/src/filter/objects_with_holes_pgm.cc | 23 +- scribo/src/misc/negate.cc | 13 +- scribo/src/misc/superpose.cc | 14 +- scribo/src/pbm_lines_in_doc.cc | 299 ------ scribo/src/preprocessing/Makefile.am | 70 +- scribo/src/preprocessing/preprocess.cc | 27 +- scribo/src/preprocessing/rotate.cc | 68 ++ scribo/src/preprocessing/rotate_90.cc | 30 +- scribo/src/preprocessing/split_bg_fg.cc | 22 +- scribo/src/preprocessing/unskew.cc | 22 +- scribo/src/primitive/extract/Makefile.am | 27 +- .../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 | 13 +- scribo/src/primitive/find/Makefile.am | 25 +- .../src/primitive/find/find_discontinued_lines.cc | 18 +- scribo/src/primitive/find/find_pattern_lines.cc | 17 +- 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 | 36 +- .../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/Makefile.am | 22 +- scribo/src/table/erase.cc | 15 +- scribo/src/table/extract.cc | 7 +- scribo/src/text/Makefile.am | 11 +- scribo/src/text/cleantxt.cc | 45 +- scribo/src/text_in_picture.cc | 128 +-- scribo/src/text_recognition_in_picture.cc | 133 ++-- scribo/subsampling/bilinear.hh | 114 --- scribo/subsampling/integral_single_image.hh | 459 --------- scribo/table/align_lines_horizontaly.hh | 101 -- scribo/table/erase.hh | 101 -- scribo/table/extract.hh | 116 --- scribo/table/internal/align_lines.hh | 196 ---- scribo/table/rebuild.hh | 157 --- 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 | 67 +- scribo/tests/preprocessing/crop.cc | 5 +- .../preprocessing/crop_without_localization.cc | 5 +- scribo/tests/preprocessing/deskew.cc | 4 +- scribo/tests/preprocessing/rotate_90.cc | 2 +- scribo/tests/table/extract_lines_with_rank.cc | 5 +- scribo/tests/table/repair_lines.cc | 5 +- scribo/tests/tests.mk | 23 +- scribo/tests/toolchain/nepomuk/text_extraction.cc | 2 +- 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 | 262 +---- scribo/text/clean_inplace.hh | 147 --- scribo/toolchain/nepomuk/text_extraction.hh | 160 --- scribo/upsampling/eagle.hh | 145 --- 448 files changed, 22593 insertions(+), 20635 deletions(-) create mode 100644 m4/boost.m4 create mode 100644 m4/pkg.m4 create mode 100644 milena/tests/unit_test/cond_tests_boost-preprocessor_boost-tuple create mode 100644 milena/tests/unit_test/cond_tests_cfitsio create mode 100644 milena/tests/unit_test/cond_tests_gdcm create mode 100644 milena/tests/unit_test/cond_tests_magickxx create mode 100644 milena/tests/unit_test/cond_tests_qt create mode 100644 milena/tests/unit_test/cond_tests_tiff delete mode 100644 scribo/all.hh delete mode 100644 scribo/binarization/internal/first_pass_functor.hh delete mode 100644 scribo/binarization/sauvola_ms.hh delete mode 100644 scribo/binarization/sauvola_threshold_image.hh delete mode 100644 scribo/binarization/sauvola_threshold_image_debug.hh delete mode 100644 scribo/convert/from_qimage.hh delete mode 100644 scribo/core/component_info.hh delete mode 100644 scribo/core/component_set.hh delete mode 100644 scribo/core/erase_objects.hh delete mode 100644 scribo/core/internal/link_functor_base.hh delete mode 100644 scribo/core/macros.hh delete mode 100644 scribo/core/object_image.hh delete mode 100644 scribo/core/tag/component.hh delete mode 100644 scribo/core/tag/line.hh delete mode 100644 scribo/debug/decision_image.hh delete mode 100644 scribo/debug/highlight_text_area.hh delete mode 100644 scribo/debug/links_decision_image.hh delete mode 100644 scribo/debug/mean_and_base_lines_image.hh delete mode 100644 scribo/debug/save_bboxes_image.hh delete mode 100644 scribo/debug/save_linked_bboxes_image.hh delete mode 100644 scribo/debug/save_object_diff.hh delete mode 100644 scribo/debug/several_links_decision_image.hh delete mode 100644 scribo/draw/bounding_box_links.hh delete mode 100644 scribo/draw/bounding_boxes.hh delete mode 100644 scribo/filter/internal/compute.hh delete mode 100644 scribo/filter/object_groups_size_ratio.hh delete mode 100644 scribo/filter/object_groups_with_holes.hh delete mode 100644 scribo/filter/object_links_bbox_w_ratio.hh delete mode 100644 scribo/filter/object_links_center_aligned.hh delete mode 100644 scribo/filter/object_links_left_aligned.hh delete mode 100644 scribo/filter/object_links_non_aligned_simple.hh delete mode 100644 scribo/filter/object_links_right_aligned.hh delete mode 100644 scribo/filter/objects_h_thick.hh delete mode 100644 scribo/filter/objects_h_thin.hh delete mode 100644 scribo/filter/objects_size_ratio.hh delete mode 100644 scribo/filter/objects_small.hh delete mode 100644 scribo/filter/objects_thick.hh delete mode 100644 scribo/filter/objects_thin.hh delete mode 100644 scribo/filter/objects_v_thick.hh delete mode 100644 scribo/filter/objects_v_thin.hh delete mode 100644 scribo/filter/objects_with_holes.hh delete mode 100644 scribo/io/xml/save.hh delete mode 100644 scribo/make/all.hh delete mode 100644 scribo/make/text.hh delete mode 100644 scribo/postprocessing/fill_object_holes.hh delete mode 100644 scribo/preprocessing/all.hh delete mode 100644 scribo/preprocessing/crop_without_localization.hh delete mode 100644 scribo/preprocessing/denoise_bg.hh delete mode 100644 scribo/preprocessing/denoise_fg.hh delete mode 100644 scribo/preprocessing/deskew.hh delete mode 100644 scribo/preprocessing/deskew_crop.hh delete mode 100644 scribo/preprocessing/rotate_90.hh delete mode 100644 scribo/preprocessing/split_bg_fg.hh delete mode 100644 scribo/primitive/extract/all.hh delete mode 100644 scribo/primitive/extract/lines_h_single.hh delete mode 100644 scribo/primitive/extract/lines_h_thick_and_single.hh delete mode 100644 scribo/primitive/extract/lines_pattern.hh delete mode 100644 scribo/primitive/extract/lines_v_single.hh delete mode 100644 scribo/primitive/extract/lines_v_thick_and_single.hh delete mode 100644 scribo/primitive/group/all.hh delete mode 100644 scribo/primitive/group/from_double_link.hh delete mode 100644 scribo/primitive/group/from_graph.hh delete mode 100644 scribo/primitive/internal/all.hh delete mode 100644 scribo/primitive/internal/find_graph_link.hh delete mode 100644 scribo/primitive/internal/is_link_valid.hh delete mode 100644 scribo/primitive/internal/update_link_array.hh delete mode 100644 scribo/primitive/link/all.hh delete mode 100644 scribo/primitive/link/compute_several.hh delete mode 100644 scribo/primitive/link/internal/anchors_3.hh delete mode 100644 scribo/primitive/link/internal/compute_anchor.hh delete mode 100644 scribo/primitive/link/internal/dmax_functor_base.hh delete mode 100644 scribo/primitive/link/internal/find_several_links.hh delete mode 100644 scribo/primitive/link/internal/link_functor_base.hh delete mode 100644 scribo/primitive/link/internal/link_ms_dmax_base.hh delete mode 100644 scribo/primitive/link/internal/link_ms_dmax_ratio_base.hh delete mode 100644 scribo/primitive/link/internal/link_several_dmax_base.hh delete mode 100644 scribo/primitive/link/with_graph.hh delete mode 100644 scribo/primitive/link/with_rag.hh delete mode 100644 scribo/primitive/link/with_several_graphes.hh delete mode 100644 scribo/primitive/link/with_several_left_links.hh delete mode 100644 scribo/primitive/link/with_several_right_closest_links.hh delete mode 100644 scribo/primitive/link/with_several_right_links.hh delete mode 100644 scribo/primitive/link/with_single_down_link.hh delete mode 100644 scribo/primitive/link/with_single_up_link.hh delete mode 100644 scribo/primitive/regroup/from_single_left_link.hh delete mode 100644 scribo/primitive/remove/separators.hh create mode 100644 scribo/scribo/all.hh create mode 100644 scribo/scribo/binarization/all.hh rename scribo/{ => scribo}/binarization/global_threshold.hh (100%) rename scribo/{ => scribo}/binarization/global_threshold_auto.hh (100%) create mode 100644 scribo/scribo/binarization/internal/first_pass_functor.hh rename scribo/{ => scribo}/binarization/local_threshold.hh (100%) rename scribo/{ => scribo}/binarization/sauvola.hh (100%) create mode 100644 scribo/scribo/binarization/sauvola_ms.hh rename scribo/{ => scribo}/binarization/sauvola_ms_split.hh (100%) create mode 100644 scribo/scribo/binarization/sauvola_threshold_image.hh create mode 100644 scribo/scribo/binarization/sauvola_threshold_image_debug.hh rename scribo/{ => scribo}/canvas/integral_browsing.hh (100%) create mode 100644 scribo/scribo/convert/from_qimage.hh rename scribo/{ => scribo}/core/all.hh (100%) rename scribo/{ => scribo}/core/central_sites.hh (100%) create mode 100644 scribo/scribo/core/component_info.hh create mode 100644 scribo/scribo/core/component_set.hh rename scribo/{ => scribo}/core/concept/dmax_functor.hh (100%) rename scribo/{ => scribo}/core/concept/link_functor.hh (100%) rename scribo/{ => scribo}/core/def/lbl_type.hh (100%) create mode 100644 scribo/scribo/core/erase_objects.hh rename scribo/{ => scribo}/core/init_integral_image.hh (100%) rename scribo/{ => scribo}/core/line_info.hh (100%) rename scribo/{ => scribo}/core/line_set.hh (100%) create mode 100644 scribo/scribo/core/macros.hh rename scribo/{ => scribo}/core/object_groups.hh (100%) rename scribo/{ => scribo}/core/object_links.hh (100%) rename scribo/{ => scribo}/core/tag/anchor.hh (100%) create mode 100644 scribo/scribo/core/tag/component.hh create mode 100644 scribo/scribo/core/tag/line.hh rename scribo/{ => scribo}/debug/alignment_decision_image.hh (100%) rename scribo/{ => scribo}/debug/all.hh (100%) rename scribo/{ => scribo}/debug/bboxes_enlarged_image.hh (100%) rename scribo/{ => scribo}/debug/char_space_image.hh (100%) create mode 100644 scribo/scribo/debug/decision_image.hh create mode 100644 scribo/scribo/debug/highlight_text_area.hh rename scribo/{ => scribo}/debug/line_info_image.hh (100%) create mode 100644 scribo/scribo/debug/links_decision_image.hh rename scribo/{ => scribo}/debug/looks_like_a_text_line_image.hh (100%) create mode 100644 scribo/scribo/debug/mean_and_base_lines_image.hh create mode 100644 scribo/scribo/debug/save_bboxes_image.hh create mode 100644 scribo/scribo/debug/save_comp_diff.hh rename scribo/{ => scribo}/debug/save_label_image.hh (100%) create mode 100644 scribo/scribo/debug/save_linked_bboxes_image.hh rename scribo/{ => scribo}/debug/save_table_image.hh (100%) create mode 100644 scribo/scribo/debug/several_links_decision_image.hh create mode 100644 scribo/scribo/debug/text_areas_image.hh rename scribo/{ => scribo}/debug/usage.hh (100%) rename scribo/{ => scribo}/draw/all.hh (100%) create mode 100644 scribo/scribo/draw/bounding_box_links.hh create mode 100644 scribo/scribo/draw/bounding_boxes.hh rename scribo/{ => scribo}/draw/groups_bboxes.hh (100%) rename scribo/{ => scribo}/estim/object_groups_v_thickness.hh (100%) rename scribo/{ => scribo}/filter/all.hh (100%) rename scribo/{ => scribo}/filter/common/objects_photo.hh (100%) rename scribo/{ => scribo}/filter/internal/alignment_angle.hh (100%) rename scribo/{ => scribo}/filter/internal/component_aligned.hh (100%) create mode 100644 scribo/scribo/filter/internal/compute.hh create mode 100644 scribo/scribo/filter/object_groups_size_ratio.hh rename scribo/{ => scribo}/filter/object_groups_small.hh (100%) rename scribo/{ => scribo}/filter/object_groups_v_thickness.hh (100%) create mode 100644 scribo/scribo/filter/object_groups_with_holes.hh rename scribo/{ => scribo}/filter/object_links_bbox_h_ratio.hh (100%) rename scribo/{ => scribo}/filter/object_links_bbox_overlap.hh (100%) rename scribo/{ => scribo}/filter/object_links_bbox_ratio.hh (100%) create mode 100644 scribo/scribo/filter/object_links_bbox_w_ratio.hh rename scribo/{ => scribo}/filter/object_links_bottom_aligned.hh (100%) create mode 100644 scribo/scribo/filter/object_links_center_aligned.hh create mode 100644 scribo/scribo/filter/object_links_left_aligned.hh create mode 100644 scribo/scribo/filter/object_links_non_aligned_simple.hh create mode 100644 scribo/scribo/filter/object_links_right_aligned.hh rename scribo/{ => scribo}/filter/object_links_top_aligned.hh (100%) create mode 100644 scribo/scribo/filter/objects_h_thick.hh create mode 100644 scribo/scribo/filter/objects_h_thin.hh rename scribo/{ => scribo}/filter/objects_large.hh (100%) create mode 100644 scribo/scribo/filter/objects_size_ratio.hh create mode 100644 scribo/scribo/filter/objects_small.hh create mode 100644 scribo/scribo/filter/objects_thick.hh create mode 100644 scribo/scribo/filter/objects_thin.hh create mode 100644 scribo/scribo/filter/objects_v_thick.hh create mode 100644 scribo/scribo/filter/objects_v_thin.hh create mode 100644 scribo/scribo/filter/objects_with_holes.hh rename scribo/{ => scribo}/fun/v2b/label_to_bool.hh (100%) rename scribo/{ => scribo}/fun/v2b/objects_large_filter.hh (100%) rename scribo/{ => scribo}/fun/v2b/objects_small_filter.hh (100%) rename scribo/{ => scribo}/io/text_boxes/save.hh (100%) create mode 100644 scribo/scribo/io/xml/save.hh create mode 100644 scribo/scribo/make/all.hh rename scribo/{ => scribo}/make/debug_filename.hh (100%) rename scribo/{ => scribo}/make/influence_zone_graph.hh (100%) create mode 100644 scribo/scribo/postprocessing/all.hh create mode 100644 scribo/scribo/postprocessing/fill_object_holes.hh create mode 100644 scribo/scribo/preprocessing/all.hh rename scribo/{ => scribo}/preprocessing/crop.hh (100%) create mode 100644 scribo/scribo/preprocessing/crop_without_localization.hh rename scribo/{ => scribo}/preprocessing/denoise.hh (100%) create mode 100644 scribo/scribo/preprocessing/denoise_bg.hh create mode 100644 scribo/scribo/preprocessing/denoise_fg.hh create mode 100644 scribo/scribo/preprocessing/deskew.hh create mode 100644 scribo/scribo/preprocessing/deskew_crop.hh rename scribo/{ => scribo}/preprocessing/homogeneous_contrast.hh (100%) create mode 100644 scribo/scribo/preprocessing/rotate_90.hh create mode 100644 scribo/scribo/preprocessing/split_bg_fg.hh rename scribo/{ => scribo}/primitive/all.hh (100%) create mode 100644 scribo/scribo/primitive/extract/all.hh rename scribo/{ => scribo}/primitive/extract/canvas.hh (100%) rename scribo/{ => scribo}/primitive/extract/cells.hh (100%) rename scribo/{ => scribo}/primitive/extract/components.hh (100%) rename scribo/{ => scribo}/primitive/extract/horizontal_separators.hh (100%) rename scribo/{ => scribo}/primitive/extract/lines_discontinued.hh (100%) rename scribo/{ => scribo}/primitive/extract/lines_h_discontinued.hh (100%) rename scribo/{ => scribo}/primitive/extract/lines_h_pattern.hh (100%) create mode 100644 scribo/scribo/primitive/extract/lines_h_single.hh rename scribo/{ => scribo}/primitive/extract/lines_h_thick.hh (100%) create mode 100644 scribo/scribo/primitive/extract/lines_h_thick_and_single.hh create mode 100644 scribo/scribo/primitive/extract/lines_pattern.hh rename scribo/{ => scribo}/primitive/extract/lines_thick.hh (100%) rename scribo/{ => scribo}/primitive/extract/lines_v_discontinued.hh (100%) rename scribo/{ => scribo}/primitive/extract/lines_v_pattern.hh (100%) create mode 100644 scribo/scribo/primitive/extract/lines_v_single.hh rename scribo/{ => scribo}/primitive/extract/lines_v_thick.hh (100%) create mode 100644 scribo/scribo/primitive/extract/lines_v_thick_and_single.hh rename scribo/{ => scribo}/primitive/extract/separators.hh (100%) rename scribo/{ => scribo}/primitive/extract/vertical_separators.hh (100%) create mode 100644 scribo/scribo/primitive/group/all.hh rename scribo/{ => scribo}/primitive/group/apply.hh (100%) create mode 100644 scribo/scribo/primitive/group/from_double_link.hh create mode 100644 scribo/scribo/primitive/group/from_graph.hh rename scribo/{ => scribo}/primitive/group/from_single_link.hh (100%) create mode 100644 scribo/scribo/primitive/internal/all.hh create mode 100644 scribo/scribo/primitive/internal/find_graph_link.hh rename scribo/{ => scribo}/primitive/internal/find_root.hh (100%) rename scribo/{ => scribo}/primitive/internal/have_link_valid.hh (100%) create mode 100644 scribo/scribo/primitive/internal/is_link_valid.hh rename scribo/{ => scribo}/primitive/internal/rd.hh (100%) rename scribo/{ => scribo}/primitive/internal/update_graph_link.hh (100%) create mode 100644 scribo/scribo/primitive/link/all.hh rename scribo/{ => scribo}/primitive/link/compute.hh (100%) create mode 100644 scribo/scribo/primitive/link/compute_several.hh create mode 100644 scribo/scribo/primitive/link/internal/compute_anchor.hh rename scribo/{ => scribo}/primitive/link/internal/dmax_default.hh (100%) create mode 100644 scribo/scribo/primitive/link/internal/dmax_functor_base.hh rename scribo/{ => scribo}/primitive/link/internal/dmax_width_and_height.hh (100%) rename scribo/{ => scribo}/primitive/link/internal/dmax_width_only.hh (100%) rename scribo/{ => scribo}/primitive/link/internal/find_link.hh (100%) create mode 100644 scribo/scribo/primitive/link/internal/find_several_links.hh create mode 100644 scribo/scribo/primitive/link/internal/link_functor_base.hh create mode 100644 scribo/scribo/primitive/link/internal/link_several_dmax_base.hh rename scribo/{ => scribo}/primitive/link/internal/link_single_dmax_base.hh (100%) rename scribo/{ => scribo}/primitive/link/internal/link_single_dmax_ratio_base.hh (100%) rename scribo/{ => scribo}/primitive/link/merge_double_link.hh (100%) create mode 100644 scribo/scribo/primitive/link/with_graph.hh create mode 100644 scribo/scribo/primitive/link/with_rag.hh create mode 100644 scribo/scribo/primitive/link/with_several_graphes.hh create mode 100644 scribo/scribo/primitive/link/with_several_left_links.hh create mode 100644 scribo/scribo/primitive/link/with_several_right_closest_links.hh create mode 100644 scribo/scribo/primitive/link/with_several_right_links.hh rename scribo/{ => scribo}/primitive/link/with_several_right_links_overlap.hh (100%) create mode 100644 scribo/scribo/primitive/link/with_single_down_link.hh rename scribo/{ => scribo}/primitive/link/with_single_left_link.hh (100%) rename scribo/{ => scribo}/primitive/link/with_single_left_link_dmax_ratio.hh (100%) rename scribo/{ => scribo}/primitive/link/with_single_right_link.hh (100%) rename scribo/{ => scribo}/primitive/link/with_single_right_link_bottom.hh (100%) rename scribo/{ => scribo}/primitive/link/with_single_right_link_dmax_ratio.hh (100%) rename scribo/{ => scribo}/primitive/link/with_single_right_link_top.hh (100%) create mode 100644 scribo/scribo/primitive/link/with_single_up_link.hh create mode 100644 scribo/scribo/primitive/regroup/from_single_left_link.hh create mode 100644 scribo/scribo/primitive/regroup/from_single_left_link_wrt_h_ratio.hh create mode 100644 scribo/scribo/primitive/remove/separators.hh create mode 100644 scribo/scribo/subsampling/bilinear.hh rename scribo/{ => scribo}/subsampling/integral.hh (100%) create mode 100644 scribo/scribo/subsampling/integral_single_image.hh create mode 100644 scribo/scribo/table/align_lines_horizontaly.hh rename scribo/{ => scribo}/table/align_lines_verticaly.hh (100%) rename scribo/{ => scribo}/table/all.hh (100%) rename scribo/{ => scribo}/table/connect_horizontal_lines.hh (100%) rename scribo/{ => scribo}/table/connect_vertical_lines.hh (100%) create mode 100644 scribo/scribo/table/erase.hh create mode 100644 scribo/scribo/table/extract.hh create mode 100644 scribo/scribo/table/internal/align_lines.hh rename scribo/{ => scribo}/table/internal/all.hh (100%) rename scribo/{ => scribo}/table/internal/connect_lines.hh (100%) rename scribo/{ => scribo}/table/internal/repair_lines.hh (100%) create mode 100644 scribo/scribo/table/rebuild.hh rename scribo/{ => scribo}/table/repair_horizontal_lines.hh (100%) rename scribo/{ => scribo}/table/repair_vertical_lines.hh (100%) rename scribo/{ => scribo}/text/all.hh (100%) rename scribo/{ => scribo}/text/clean.hh (100%) create mode 100644 scribo/scribo/text/clean_inplace.hh rename scribo/{ => scribo}/text/extract_lines.hh (100%) rename scribo/{ => scribo}/text/look_like_text_lines.hh (100%) rename scribo/{ => scribo}/text/merging.hh (100%) rename scribo/{ => scribo}/text/recognition.hh (100%) create mode 100644 scribo/scribo/toolchain/nepomuk/text_extraction.hh rename scribo/{ => scribo}/toolchain/text_in_doc.hh (100%) rename scribo/{ => scribo}/upsampling/bs2x.hh (100%) create mode 100644 scribo/scribo/upsampling/eagle.hh delete mode 100644 scribo/src/pbm_lines_in_doc.cc create mode 100644 scribo/src/preprocessing/rotate.cc delete mode 100644 scribo/subsampling/bilinear.hh delete mode 100644 scribo/subsampling/integral_single_image.hh delete mode 100644 scribo/table/align_lines_horizontaly.hh delete mode 100644 scribo/table/erase.hh delete mode 100644 scribo/table/extract.hh delete mode 100644 scribo/table/internal/align_lines.hh delete mode 100644 scribo/table/rebuild.hh delete mode 100644 scribo/tests/core/object_image.cc delete mode 100755 scribo/tests/unit_test/build_unit_test.sh create mode 100644 scribo/tests/unit_test/cond_tests_qt create mode 100644 scribo/tests/unit_test/cond_tests_qt_tesseract_tiff create mode 100644 scribo/tests/unit_test/cond_tests_tesseract_tiff delete mode 100644 scribo/text/clean_inplace.hh delete mode 100644 scribo/toolchain/nepomuk/text_extraction.hh delete mode 100644 scribo/upsampling/eagle.hh hooks/post-receive -- Olena, a generic and efficient image processing platform
14Â years, 10Â months
1
0
0
0
branch exp/scribo-z updated: last-svn-commit-477-g53a57b1
by lazzaraï¼ lrde.epita.fr
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Olena, a generic and efficient image processing platform". The branch exp/scribo-z has been updated discards 83e8345d5d31ad0d20dcfda0b5e2852b6c613130 (commit) discards acf89baab8b2cadc93ba0ff845d7c83c27049172 (commit) discards cfa008d41e46c8c145d9eb01cb9719a4fa018861 (commit) discards fc5c165e1e2b4713f25529e1a1f12e16514c771e (commit) discards 7bebf5b174b861b8cd7f181bb51bce2d2e771f4c (commit) discards 1454557f814a8f278ec51d567340bf7732895825 (commit) discards 128ad1a04f7f6b35a67caf9fa878ab1054bbbfdf (commit) discards 3e12eaa1e4dad3518a09c2adff34f4c223d754b8 (commit) discards 16ec2cb551d8e8724598ebb65e02d01f52f24c23 (commit) via 53a57b1d3275c5b9fb41db4b706342d6a7df992d (commit) via cd5ea6ecd0a75ad2dbabd704490682aeceac68bd (commit) via 2925b324b1b9c0427600a0160cdc214a03d5e8ae (commit) via 04569a2bb109e39ae8d09530aaa526ad9ae2df49 (commit) via ebad60a1e78715afe0359a2837c5de517fa7a42b (commit) via 5bd441f8f01071c7c228837ceb8d9e401bc8f974 (commit) via d6e4a923e32eb749a66490fba62885a69b2fb4dd (commit) via a4a49108929edc4cd8c2d108da7ca821f6684b45 (commit) via ed4e74a2f51a69d580a46b155c9d319d7e7f603c (commit) via 63c77cdaa94cdbfd1ee3591675f729b74cc0371e (commit) via 621ebe718756448951c4362aa8dc5be8b84025da (commit) via c3d187edce3a706763c8e2bed355517e22037cf0 (commit) via a903e8dadd0bc8f76a36c846a6167903aac6c963 (commit) via 696503dfbe53631c3d16db408d7137a0d5b9c536 (commit) via b265090ab82ff960a5cd770b863eebb8eeee71be (commit) via c0c3a98d00d261f0b32c16083030be5dc05e79ff (commit) via bd5519ba780434acb1a52552f55c5c91806d5931 (commit) via 4d1677cf6f3b63d78da59159550988f17e61b93a (commit) via 951bfdd9cb60516e53abc0c961c046851174d37d (commit) via ca408292a71afa85aa76b568642f91729ebaae05 (commit) via 00d8fa3b631df334782cc755a0a1bbc3af1e8d35 (commit) via 6ca68abdb08224a001fbdd838a6bbffb58b902ba (commit) via a9958fa777ee5686c5a923311aab1caa793ab89a (commit) via be773a94ff966b4008cb3ce086bdaa3a679cf8a5 (commit) via 013ef3d7c8f41542dc327c3f86d3741476c61aa5 (commit) via 6793cca44120828368141b44d52d589d47c72f72 (commit) via f7bc7e130d7cd61342e2a1bd50433caf8dc251e2 (commit) via 3c2ce9bb05ba3502ded2bab10d64d19d10607874 (commit) via d34c8dd49b1cafb412ed6acbc9a7df856e744ada (commit) via d5c383adedab294cc3158789aae82a358ed9f8b3 (commit) via 59987833613195d29de390caf60ea67a6d05c63c (commit) via 6bf37e8533f6fe5e1ccb3db532ac2c75624a3973 (commit) via 0545aad9399df4de95f731d4ea7ff019e996efb0 (commit) via 324908fe7cfefc7e54ebab5419c195ba111adecc (commit) via 5ee999b4a272ce703a8441e19d21914ee24a325c (commit) via af62462e491439835ff02d83dd051209402b9e15 (commit) via 8fed6fb92cee676f1b08171261d1c3c3998affca (commit) via cb1501f56a94071aa6087845f47acbbb4e359487 (commit) via 4aec8b7df9701854f4a66a5759cba50d417e2477 (commit) via 6626ff4c9b970161a3afb4771f6b5d5d17cbc054 (commit) via 5a13b71e549e3e14f56c654c2cf8060668ee651d (commit) via 8bd912698276dec80d783a2a0d1c45934b7197d6 (commit) via c05d4df52ff6ff73eab3e75343e39a4bd59c25b6 (commit) via a0961e1c87e3d8b33fc3f956f4e5eabf1301e3f4 (commit) via 087715863927fde36a5c856fa87ba071c978a824 (commit) via 8283ce59a3fbee4679d7d5e6909ac69da6dc9565 (commit) via 8559cd77490d273ee43ab417b4b666aeb12a3f4b (commit) via 6b43c06339028b02542e0214c12a976d10f8b8d7 (commit) via 52112930338d0852964eba2a09f7984c04d3b29e (commit) via c3c62f2274a751f3cc0846f81d8f54c8c50192fb (commit) via 26c8584dbd90fb2668efe2cfe260eefc65201055 (commit) via 332c9acf642b9ab88ed466b1ad0e0500fc2c885c (commit) via 5ba287436f0ad7ae908f61e666e01ea6fbb546a0 (commit) via 6270c8c945def50f6fb12b95511567e27b04db24 (commit) via 290ccbee439ac1cfc9dbd0185b60260d10dbd206 (commit) via 9fffc8073f5ea86ae99a3b5ddd23d53d10cdb429 (commit) via aa19b0aaad96157c6cbc41fd92ceb07b8f370063 (commit) via 984412efeef78be23eb0f83ce6eb50bb36031a6e (commit) via d4ca44ab91728099a70f29b73f5eb3f83a487736 (commit) via 2ae99ffe384a9bdf63e59305fe1a77063a7a1c22 (commit) via e31b70169c431b1196afb6ae2b9eda6b94ec4e26 (commit) via 9e66b0bc8e1df4154fc7a4c6834a8db7b6c3af46 (commit) via ee180d60723b0718fa53cd7d936b8260acb93af2 (commit) via 4d14a475db1082c1096ed71973e2daa2793e2cf1 (commit) via fd16f7ee48f964437406d385b54ebb912e92ea25 (commit) via 092bb0461eb91af6bca23e29bda4bdbac316d3ec (commit) via 460f059870e591b8da8363f9905a8331352c81ff (commit) via 1a16089f970043d54c716705e22f87cde43ce263 (commit) via 98eedea5d6dcf8b4bfc9dfa309b57ce5dcbfd192 (commit) via 71c9c144f233770f1b9652ba98d6137053e8ab47 (commit) via 0d502d0cf9f3571471768db4f3833b0701ef39a0 (commit) via ba369b62ba9d59fb093d4247284f2c437f42754e (commit) via 165770feeac77f1dfab40f3173c3e6e483709df1 (commit) via 4ef67060e4a70bf4af46d54548b4dafdbd04dcf9 (commit) via ace04a4f7d94756ce9a1f128c67b2a8cb840d549 (commit) via 51c347f97f743e56262f65acd5bc6658c2a99439 (commit) via 75c57adc2959683d4549bf36a0a12c08c1266760 (commit) via ceed614319364a103d4c7c15afd2ea2a3b6d2186 (commit) via ccc4a321e56015b6d2824f0f67236bdad14990c4 (commit) via 5758dd72a0d8fe7849e99ad6f5dbf6f0b97c1c6d (commit) via a32f582d8894e37cb18614521c262ab5ae49c1a7 (commit) via 635ff15ca3cc548f282d4bb96587bb6d3b2e8c7f (commit) via 70dedf8ba8537b7d8081641e15553637317f4e03 (commit) via 68624e4c54dd06c46428b7dd914bdbd1e8c06678 (commit) via bfdea8debb5538103da4cc28ca092309850fd597 (commit) via 69ce9faae9f4efb9de5b7f0bb413e467d6b10882 (commit) via 2b5bd163c6290a5e6125b338212ac97bc5963dce (commit) via 94486e40acf3355b24eece538313f3ec9edd5f20 (commit) via 916df4279f248a6fb5c85a129229f57e71f036eb (commit) via 664b361a5b75efba6b472d1028abad8d267c3628 (commit) via 9ced0495ec829f942f3abffe7077d472efff96f6 (commit) via d53b4271ddc93c8fa098f4ef4c2fc7432f808357 (commit) via 17734ea5b269b3a71fc2138a270454a80b0ed6ae (commit) via 4c42b800077d0dda5fde111d0e4761661c9a52c3 (commit) via 68d80d9e1c6f2b66a45e6bb107c7697871386426 (commit) via e30e6d746ca7e83560ad0e2a52324f0af553255d (commit) via d843b6cdad0df4b25e11da900abe87f67153ab65 (commit) via 81ebf3143f310e04f99738afb8b5ad9cbc39eaa7 (commit) via 04e7d8027ac1a88bc151aa0174a3b1ee572c4e4b (commit) via c260d597d0718762ff60972c3a9834f5f1a9db8f (commit) via 7b351ecac19fd1c42ae0382ef7179496a1e565c8 (commit) via ab8bd495b70c9c78f8fc13f1df545d487fc94217 (commit) via 5ba9288148acd3aecef5df8ec260e51887375d87 (commit) via 72a1d9cca4425b195b9132e2bd645274f52c765a (commit) via 62982aae637e6591a4f4ae8f52f04f507691ab80 (commit) via 2891ae779a6ddf363a34ad8188fdda31b8e06849 (commit) via 8d9ad1b2347654f006683e0779bffd5c5fde7734 (commit) via 24633b4c8980ac4c3f2dd7a0befbed515c3c6f48 (commit) via 8c7a1809a808addffc3ae397f0d0f1e21d242fbc (commit) via c8a3721c86de58f063888f0aeedd6197530d1ce0 (commit) via 8e148a2f3b871d60de12d627f02fc01ed7ac4331 (commit) via f1a7757aa73b3bac1c64ecb1e124633a055f4752 (commit) via 153c751d590f7825fb11427de07c890ad3dd95eb (commit) via afefd84215fa6e4c673fd0b1a3a8311ac8ea82ff (commit) via 6dd7d249daae01e8ed82f836aa2f88c4a5833d8e (commit) via 68b860f7623d03ea9815fd652300bee661351bdc (commit) via 1441b0f7b0a2ec10f6009d8ca9e97f2c6c64decd (commit) via 7c82d9a99dfcdb3c3d9a0e4beb9269ec966fa3aa (commit) via d0cba60a39189a796f76cef7ed7e0ae53ce637a8 (commit) via b77547a34bcd0b5c26ff733de1347334d89b2496 (commit) via 25eb4fe6f1b8d6217dcfded1ba138b1abb0e4b07 (commit) via 77c420e02087c7499fa59caaa8c2c6cf8b27e84c (commit) via 103e1e747ab4e16f95f94e3742b3d21b9d637354 (commit) via 5a5ceb89dd3811caae3296fce041a47c5a45564d (commit) via 03908bb38ac692efdb3ce76c8e56bc86a2ee2334 (commit) via a1b86103434c66825a1a089e7bc039f62761b692 (commit) via 10c5d398cd691716db99d2ab6f78d48f7762a75d (commit) via 66a288802969285cb0bdf97c4737c47db786e02c (commit) via 12dd47935880554c3a3cf24db5cd06de2413ae45 (commit) via e4a1fc8155fbff94835c50f7208de3d9b8c5477a (commit) via 5bb93504bd963799300af770178dee12c8cd487c (commit) via 5d5c643d6beaaf64eda9f0e0634f0ffda72cc886 (commit) via b59137ab61cc11a7d9fa58fd6e87168dda9e9b57 (commit) via 15608e30b32328403b14f4602f87b85c8d56af02 (commit) via cb0b452338b03e470cdec5b68d41b99f75ee9975 (commit) via 4502becc0a7c74d9c36df8b2f607855cb18c77fa (commit) via fe084d58f31ef12a5aac620164c35878ad4f36ce (commit) via 5025e33455e29e74226406c7ceebbcd0cdd17fa5 (commit) via b6b3517c054e387bef3d3a3c371de9b5cdf859fc (commit) via 942c6a807a7881b4115ab63232d39fc42730c6fb (commit) via 422b78ec70dc819e3f9ccb81b7aefed7e413790c (commit) via e8f81c85019744c6c9b993469dfb9da58fc7f13e (commit) via defd509888b0234193712b39f34095952366b72d (commit) via 8116ef19fc52af21a79189f607bce880b600ade5 (commit) via 4faa18c9479d0f5fa0b1780431327141396731ec (commit) via c0a26759095070ff5a69a8c508d7574b6c12b2a5 (commit) via 2199e6c6df1b10ac78e84405273befe20fa6eb96 (commit) via 390b09559fc9faf1131b057fdc12931e33430556 (commit) via c94f5179c33d27d1c3aaf46804e48d5710baeafc (commit) via e5e506be9a2edf6a0d5c184dc2fd0efee09b29c1 (commit) via d637b9962218aa697776ef9bdc509e7e50da0644 (commit) via 084fcc94307783b55e2b77f2d8217ffc68b65702 (commit) via 67c299f41df3d45fd0d6a8e3c777631367626dbe (commit) via 9196858aa3f15eba540420164e21bf929a3f2f53 (commit) via c0e0ae6fee6b9e6e6092647e1a942f1b2e9336c8 (commit) via 642d87acb6320ca145bab0149ee04cef2e3d976b (commit) via 2c4e1e1dd3e2df60cc57a9e0917b5e509fb583ef (commit) via b599cccfd46f95c9337b526e0b172e019aaaa5cb (commit) via 4ee83123b5ef3dd0ba1a0b47ad345aeae3852f22 (commit) via 9b894672a7c13f2f2720d5a425981524e92d707b (commit) via 6c5106c0a059bc80a2abed23021f450335386f1b (commit) via fca542826e4bf7909f343cdcd6a75ed3c7afc478 (commit) via 55f2622b2ccce58bee6d912ee92cb33c873a5392 (commit) via 2152dd039b5e78eaeb179cf19d640aef81ef3330 (commit) via 19eee8ed618cf36f4803e2d3ab823c8e3682fd39 (commit) via ba6a3f88edc827a030919df1ead7b16621008063 (commit) via a4d6bc84bb23a0b58e2e612124876e3dcc1a3f78 (commit) via 8293184f19cedcb42b8a33da195def597db06e6a (commit) via 6b0e5460e1c05d98beb1166a410c5919cc802348 (commit) via 7fe9e76d1693fecdc0f0de4bdcfa62297935561a (commit) via 3fac2c7d82a1bf409d3c012b10f6f98de8f36d97 (commit) via 3e079f7e60ae9d34b471db83a37709ea586166d5 (commit) via 82f86bd0049463e4f53af83742d0d63245825448 (commit) via 55cb496c91c19c956241762d43bca9bc2c522517 (commit) via 378fc00cc34856163226061563ff0cf2f26ac186 (commit) via 8a2626d805c214e0847639c112bc0c19be991033 (commit) via 5ef318c063365486ceacc847858bdfd23d93aaf1 (commit) via 8aae86da7f075b92c9872a0a4e6b2d45c4054b52 (commit) via a8e00b1cee3271cc86191b9cb18103d8f00ed781 (commit) via e89fc5123b67bba9bf2a778a4ceed26ca95132d4 (commit) via 365cdb48620a38fbea0f1b4af15e73935b938e25 (commit) via 1d9cee32593cff25aa6ef8cefc75add9bfd2038f (commit) via 3b9b30f42413743de6a5e868d6aa428f9c6f4f52 (commit) via c16f093945ae2a974a36964501b16d74733fe210 (commit) via f23d9cf9c311e552731dd144af75ac7dcaf92a27 (commit) via d76722cb4eb8feb47c6fa1b5f073b11f421a8194 (commit) via 073d3d953a4c0844363cd495462a7bef70c877b0 (commit) via e126d4ccdf50168c2439913eb47f746cc75b727c (commit) via 4e0645dc40c3b3f66df8ffb1445b47b80fad8a76 (commit) via 63aa7224f25656693c22d5f402f74b62c47728ee (commit) via 428990430d4af2b2f26b1dc6ae4ed3f2dd515c07 (commit) via a1b9977eb88d0b4608a7794031bf04c572f8f2e1 (commit) via 15b0083c5c39692271a1d9690f163598b399c655 (commit) via 71903ba675c551e3bd9073f706c4aaf961da00ce (commit) via fb074a9399bfe05e35a743437e0cd281c557db6e (commit) via f9e6be6b4b26d40873ff9cb309707f12c0ce64a5 (commit) via ab842943d315f2e78e9da8fd3ff79a381d73bc18 (commit) via 6e6e5b7d2ee1be09e8cc6978f41bf3c638028808 (commit) via 2038fc7a5be0586d14916be9980dbf1e897dc64a (commit) via c8e9fa84800ed8848e10366224fa26cdee00345d (commit) via a4af792177bc1187beb2eb1c55c5a2fa5e9a6f87 (commit) via 5440f59412f4158b3c1d73d5fbe77b935ff674ba (commit) via 03ae101e2638983b87f7d49f0cefbdc68e55dc94 (commit) via 512f054e50de04f6d163144a9c1f272dbd047078 (commit) via 0f9327c948c0cf9933a967499150f492fe63094f (commit) via f5190eace449936c1b96389dc249e5605c5abc74 (commit) via 38d31738f248e2aa8b91e4d6608851e1e9476e74 (commit) via d9fedc37413c7aeed75e85fb7c12e906f980aa5a (commit) via 42bc78f899ef2b8f2ea8100b7344c1ebe1ffc911 (commit) via f94a9b43d47fb921845f6ae5ca58cfb1ecd91062 (commit) via 40ff74388c63c2c13d24529249817f9f60d4a703 (commit) via 2e0e1ee3f937ed7de3144df16f00a0e71a70cfb7 (commit) via 2d20a625dd7aadf2e469e5e9837ff903fbbdf79f (commit) via 01ee98f52063896dac40a1e85687259b38429916 (commit) via d510e3e555ae4614d51d8d2fc692753e6cf8626b (commit) via 92124b54d54f4f85169698560e99c82387a66ce8 (commit) via 3e3486096f0f6ba002f6374dafc2fe2a69704493 (commit) via 873492a24aa0368a80567448e46dd05b25d438e0 (commit) via 0f1307f3571fb35b1782ae1f659b48aaeab842fe (commit) via 2e5cd0954a7b9383106589ae907f0271636e85bc (commit) via 6bfa9af7a48fb9674db992197a9a348c1175019f (commit) via cae77fdc1dbd50993c91117ee6e09e6e7c66377c (commit) via 76860ade539a188320cf749486d8d9a646eeead9 (commit) via 9dd6263a3e2212c4841d2de989de00382fa02185 (commit) via e0ecffb4c67d8b01e9ab1dbc6185647d55315663 (commit) via 69c0a1da93b5d8d9287a87b528679c36db331113 (commit) via dc704d34907ddbc7256ac48c4c27d01a258edf20 (commit) via 2aade6999e6deedf85c6b0201e502c1e51492bfb (commit) via ae7290b1239a974997e9caa8f99fef0d89fcca8e (commit) via a4ff06b6a32b65a7e12d8b79fe07fe15939e86ea (commit) via 50d2dc67f522262edccc662bddaaf6ba7fee417a (commit) via 1743cdc3a9ec1175eb556382c484858681c6cebd (commit) via c98d4ae07afc6e2eee02a95b0bdd6825f58ee6c3 (commit) via 7f55f7c8208591422b98ef0d8dbf73738b564ebd (commit) via 9ae11a0ca2f57fefd5c3e15a6c98ee7f11b22f1a (commit) via f382e4a24e8376645c7bf4aac2cfec4f933413c9 (commit) via 808c4e8be9333d74ac480ce7773c2c44af50abc3 (commit) via a32de0fdcfb1292f0eebd37857eeda829acb1bcc (commit) via e44073ea19332cde2bdd69ea5eb515d4cfc0e140 (commit) via fbe0b7f5ec449ab79dfad0b4d285a745f625e41e (commit) via 851beeb4d1256b38ff6d57b2c0f2944fd0479db2 (commit) via 77004f3748794e5990deca22ecbafb173fd44eef (commit) via 08a77f75484a3b12fcee2cf1f1970aefad936362 (commit) via 501c45e68c71fc00982b8b21a629d7b6757272cc (commit) via f9ac5d4d841e31df0aa208435d302202852a9a6b (commit) via c81c18f8fda28be370e9d8a01f2b1162db514c8d (commit) via 1c31ba76b4a505703f466e7d91eecc87437526a2 (commit) This update added new revisions after undoing existing revisions. That is to say, the old revision is not a strict subset of the new revision. This situation occurs when you --force push a change and generate a repository containing something like this: * -- * -- B -- O -- O -- O (83e8345d5d31ad0d20dcfda0b5e2852b6c613130) \ N -- N -- N (53a57b1d3275c5b9fb41db4b706342d6a7df992d) When this happens we assume that you've already had alert emails for all of the O revisions, and so we here report only the revisions in the N branch from the common base, B. Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- No new revisions were added by this update. ----------------------------------------------------------------------- Summary of changes: AUTHORS | 27 +- ChangeLog | 440 +++++ HACKING | 95 + INSTALL | 469 +++-- Makefile.am | 17 +- README | 223 ++- bootstrap | 122 +- build-aux/Makefile.am | 12 +- build-aux/build_unit_test.sh | 201 ++- build-aux/devtools.sh | 16 + build-aux/devtools_utils.sh | 16 + build-aux/extra-recursive-targets.mk | 23 +- build-aux/generate_dist_headers.sh | 17 + build-aux/make_report_utils.sh | 18 +- build-aux/regen-recursive.mk | 27 +- build-aux/tex.mk | 47 + build-aux/texi2dvi | 1959 +++++++++++++++++++ configure.ac | 434 ++++- external/Makefile.am | 3 - external/trimesh/ChangeLog | 21 +- external/trimesh/Makefile.am | 19 - external/trimesh/configure.ac | 3 - external/trimesh/gluit/Makefile.am | 19 - external/trimesh/gluit/gluit.mk | 2 +- external/trimesh/include/Makefile.am | 19 - external/trimesh/libsrc/Makefile.am | 19 - external/trimesh/utilsrc/Makefile.am | 19 - lrde-upload.sh | 116 +- m4/autotroll.m4 | 2 +- m4/boost.m4 | 1038 ++++++++++ m4/oln-with-lib.m4 | 20 +- m4/pkg.m4 | 155 ++ m4/with-swilena.m4 | 112 -- milena/ChangeLog | 1838 ++++++++++++++++++- milena/Makefile.am | 14 +- .../test-constrained-connectivity.in | 16 + milena/apps/graph-morpho/Makefile.am | 4 +- milena/apps/graph-morpho/convert.hh | 7 +- milena/apps/graph-morpho/morpho.hh | 31 +- milena/apps/mesh-segm-skel/Makefile.am | 17 +- milena/apps/mesh-segm-skel/io.hh | 2 + .../test-mesh-complex-max-curv-segm.in | 16 + .../mesh-segm-skel/test-mesh-complex-max-curv.in | 16 + .../apps/mesh-segm-skel/test-mesh-complex-segm.in | 16 + .../apps/mesh-segm-skel/test-mesh-complex-skel.in | 16 + milena/apps/mesh-segm-skel/test-mesh-max-curv.in | 16 + milena/apps/mesh-segm-skel/test-mesh-segm.in | 16 + milena/apps/papers/levillain.09.ismm/Makefile.am | 5 +- milena/doc/.gitignore | 45 +- milena/doc/Doxyfile.in | 50 +- milena/doc/Makefile.am | 915 +++++++--- milena/doc/doc.mk | 36 - milena/doc/examples-outputs.mk | 919 +++++++++ milena/doc/examples.mk | 85 + milena/doc/examples/Makefile.am | 274 --- ...nstanciation.cc => accu-right-instantiation.cc} | 0 ...tion.cc.raw => accu-wrong-instantiation.cc.raw} | 0 milena/doc/examples/examples.mk | 125 -- milena/doc/examples/fill-imageif-cfun.cc | 2 +- milena/doc/examples/ima-load.cc | 8 +- milena/doc/examples/ima-save.cc | 8 +- milena/doc/examples/ima2d-rot.cc | 7 +- milena/doc/examples/labeling-compute.cc | 3 +- ...-1.cc.raw => accu-right-instantiation-1.cc.raw} | 0 milena/doc/examples/split/ima-load-1.cc.raw | 2 +- milena/doc/examples/split/ima-save-1.cc.raw | 2 +- milena/doc/examples/split/ima2d-rot-1.cc.raw | 4 +- milena/doc/examples/tuto3/println.cc | 10 +- milena/doc/examples/tuto4/image.cc | 4 +- milena/doc/examples/tuto4/site_set_create.cc | 14 +- milena/doc/figures.mk | 188 ++ milena/doc/figures/figures.mk | 41 - milena/doc/figures/fill-subdomain-2.ppm | Bin 206 -> 206 bytes milena/doc/figures/fill-subdomain-3.ppm | Bin 206 -> 206 bytes milena/doc/{white_paper => }/figures/house.png | Bin 26653 -> 26653 bytes milena/doc/{white_paper => }/figures/house_rag.png | Bin 9454 -> 9454 bytes .../doc/{white_paper => }/figures/house_wshed.png | Bin 27668 -> 27668 bytes .../figures/house_wshed_mean_colors.png | Bin 6618 -> 6618 bytes milena/doc/figures/labeling-compute-2.ppm | Bin 206 -> 206 bytes .../figures => figures/technical}/file_layout.pdf | Bin 26680 -> 26680 bytes .../figures => figures/technical}/file_layout.png | Bin 117801 -> 117801 bytes milena/doc/figures/tuto3_colorize-2.ppm | Bin 191 -> 191 bytes .../figures/tuto4_genericity_and_algorithms-1.ppm | Bin 12406 -> 12406 bytes .../figures/tuto4_genericity_and_algorithms-5.ppm | Bin 12406 -> 12406 bytes .../figures/tuto4_genericity_and_algorithms-7.pgm | 6 - .../figures/tuto4_genericity_and_algorithms-7.ppm | Bin 24696 -> 0 bytes .../figures/tuto4_genericity_and_algorithms-8.pgm | 6 - .../figures/tuto4_genericity_and_algorithms-8.ppm | 6 - .../figures/tuto4_genericity_and_algorithms-9.pgm | 6 - .../figures/tuto4_genericity_and_algorithms-9.ppm | 6 - milena/doc/gen-examples-outputs-mk | 71 + milena/doc/gen-figures-mk | 192 ++ milena/doc/gen-make-variable | 52 + milena/doc/gen-split-examples-mk | 136 ++ milena/doc/gen-split-outputs-mk | 140 ++ milena/doc/graphicx.hva | 19 + milena/doc/img/small.pbm | 1 + milena/doc/outputs.mk | 54 + ...tanciation.txt => accu-right-instantiation.txt} | 0 .../doc/outputs/{ima2d-decl-2.txt => ima-load.txt} | 0 milena/doc/outputs/outputs.mk | 69 - .../tuto3_first_routine.txt} | 0 ...ccu-right-instanciation.txt => tuto4_image.txt} | 0 milena/doc/programs-examples.mk | 147 ++ milena/doc/ref-guide.tex | 2024 ++++++++++++++++++++ milena/doc/ref_guide/Makefile.am | 112 -- milena/doc/ref_guide/ref_guide.tex | 2024 -------------------- milena/doc/split-examples.mk | 916 +++++++++ milena/doc/split-outputs.mk | 60 + .../designs/properties/values.txt | 0 .../designs/site_psite_piter/README | 0 milena/doc/technical.tex | 234 +++ milena/doc/technical/Makefile.am | 112 -- milena/doc/technical/technical.tex | 234 --- milena/doc/tools/clearbanner.sh | 16 + milena/doc/tools/data.hh.in | 37 + milena/doc/tools/sample_utils.hh | 13 +- milena/doc/tools/split_sample.sh | 21 +- milena/doc/tools/todoxygen.sh | 50 +- .../doc/{tutorial => tutorial.old}/design/Makefile | 0 .../{tutorial => tutorial.old}/design/design.tex | 0 .../design/include/imagetours.tex | 0 .../design/include/properties.tex | 0 .../{tutorial => tutorial.old}/doxyfile_tuto.local | 0 .../doc/{tutorial => tutorial.old}/image_types.txt | 0 .../{tutorial => tutorial.old}/image_values.txt | 0 .../doc/{tutorial => tutorial.old}/images_tour.txt | 0 milena/doc/{tutorial => tutorial.old}/slides.tex | 0 milena/doc/{tutorial => }/tutorial.tex | 0 milena/doc/tutorial/Makefile.am | 111 -- .../white_paper.tex => white-paper.tex} | 0 milena/doc/white_paper/Makefile.am | 115 -- milena/headers.mk | 32 +- milena/mesh/Makefile.am | 5 +- milena/mln/accu/compute.hh | 6 +- milena/mln/accu/internal/base.hh | 4 +- milena/mln/accu/math/sum.hh | 3 +- milena/mln/accu/tuple.hh | 13 +- milena/mln/convert/from_to.hxx | 10 + milena/mln/convert/impl/from_float_to_value.hh | 10 + milena/mln/convert/to_qimage.hh | 3 + milena/mln/convert/to_qimage_nocopy.hh | 4 +- milena/mln/core/alias/window2d.hh | 3 +- milena/mln/core/concept/object.hh | 4 +- milena/mln/core/image/edge_image.hh | 8 +- milena/mln/core/image/imorph/labeled_image.hh | 4 +- milena/mln/core/image/vertex_image.hh | 8 +- milena/mln/core/point.hh | 201 ++- milena/mln/data/paste_without_localization.hh | 1 + milena/mln/draw/dashed_line.hh | 2 +- milena/mln/fun/n2v/white_gaussian.hh | 4 +- milena/mln/fun/v2v/rgb_to_int_u.hh | 7 +- milena/mln/fun/v2v/saturate.hh | 9 +- 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/rotate.hh | 93 +- milena/mln/io/dicom/get_header.hh | 7 + milena/mln/io/dump/get_header.hh | 1 + milena/mln/io/fld/load.hh | 13 +- milena/mln/io/fld/max_components.hh | 32 +- milena/mln/io/fld/save.hh | 10 +- milena/mln/io/fld/write_header.hh | 16 +- milena/mln/io/raw/get_header.hh | 1 + milena/mln/labeling/blobs_and_compute.hh | 3 + milena/mln/labeling/flat_zones.hh | 34 +- milena/mln/make/edge_image.hh | 27 +- milena/mln/subsampling/antialiased.hh | 3 +- .../mln/topo/internal/complex_set_iterator_base.hh | 14 +- milena/mln/util/edge.hh | 30 +- milena/mln/util/graph.hh | 25 +- milena/mln/util/line_graph.hh | 20 +- milena/mln/util/vertex.hh | 26 +- milena/mln/value/qt/rgb32.hh | 3 +- milena/mln/value/rgb.hh | 56 +- milena/tests/Makefile.am | 3 - milena/tests/accu/Makefile.am | 19 +- milena/tests/accu/image/Makefile.am | 3 - milena/tests/accu/math/Makefile.am | 3 - milena/tests/accu/shape/Makefile.am | 3 - milena/tests/accu/site_set/Makefile.am | 3 - milena/tests/accu/stat/Makefile.am | 3 - milena/tests/algebra/Makefile.am | 3 - milena/tests/arith/Makefile.am | 6 +- milena/tests/binarization/Makefile.am | 15 +- milena/tests/binarization/threshold.cc | 7 +- milena/tests/border/Makefile.am | 6 +- milena/tests/canvas/Makefile.am | 7 +- milena/tests/canvas/browsing/Makefile.am | 6 +- milena/tests/canvas/morpho/Makefile.am | 3 - milena/tests/convert/Makefile.am | 3 - milena/tests/convert/impl/Makefile.am | 3 - milena/tests/core/Makefile.am | 6 +- milena/tests/core/alias/Makefile.am | 3 - milena/tests/core/image/Makefile.am | 3 - milena/tests/core/image/dmorph/Makefile.am | 3 - milena/tests/core/image/imorph/Makefile.am | 3 - milena/tests/core/image/vmorph/Makefile.am | 3 - milena/tests/core/other/Makefile.am | 3 - milena/tests/core/other/box_runend_piter.cc | 2 +- milena/tests/core/other/box_runstart_piter.cc | 5 +- milena/tests/core/routine/Makefile.am | 3 - milena/tests/core/site_set/Makefile.am | 3 - milena/tests/data/Makefile.am | 16 +- milena/tests/data/approx/Makefile.am | 12 +- milena/tests/data/approx/median.cc | 7 +- milena/tests/data/median.cc | 7 +- milena/tests/data/median_fast.cc | 5 +- milena/tests/data/naive/Makefile.am | 9 +- milena/tests/data/naive/median.cc | 5 +- milena/tests/debug/Makefile.am | 3 - milena/tests/display/Makefile.am | 6 +- milena/tests/draw/Makefile.am | 6 +- milena/tests/estim/Makefile.am | 6 +- milena/tests/extension/Makefile.am | 3 - milena/tests/extract/Makefile.am | 3 - milena/tests/fun/Makefile.am | 3 - milena/tests/fun/i2v/Makefile.am | 3 - milena/tests/fun/p2b/Makefile.am | 3 - milena/tests/fun/p2p/Makefile.am | 3 - milena/tests/fun/p2v/Makefile.am | 3 - milena/tests/fun/stat/Makefile.am | 3 - milena/tests/fun/v2i/Makefile.am | 3 - milena/tests/fun/v2v/Makefile.am | 3 - milena/tests/fun/vv2v/Makefile.am | 3 - milena/tests/fun/x2x/Makefile.am | 6 +- milena/tests/geom/Makefile.am | 3 - milena/tests/geom/rotate.cc | 16 +- milena/tests/geom/translate.cc | 5 +- milena/tests/graph/Makefile.am | 3 - milena/tests/graph/attribute/Makefile.am | 3 - milena/tests/histo/Makefile.am | 6 +- milena/tests/io/Makefile.am | 6 +- milena/tests/io/dicom/Makefile.am | 3 - milena/tests/io/dump/Makefile.am | 15 +- milena/tests/io/dump/dump.cc | 24 +- milena/tests/io/fits/Makefile.am | 16 +- milena/tests/io/fits/fits.cc | 11 +- milena/tests/io/fld/Makefile.am | 5 +- milena/tests/io/magick/Makefile.am | 15 +- milena/tests/io/magick/save.cc | 7 +- milena/tests/io/off/Makefile.am | 13 +- milena/tests/io/off/load_save_bin.cc | 5 +- milena/tests/io/pbm/Makefile.am | 17 +- milena/tests/io/pbm/pbm.cc | 7 +- milena/tests/io/pbm/pbm_ascii.cc | 6 +- milena/tests/io/pbms/Makefile.am | 9 +- milena/tests/io/pbms/load.cc | 4 +- milena/tests/io/pfm/Makefile.am | 3 - milena/tests/io/pgm/Makefile.am | 36 +- milena/tests/io/pgm/pgm.cc | 11 +- milena/tests/io/pgm/pgm16.cc | 13 +- milena/tests/io/pgm/pgm19.cc | 9 +- milena/tests/io/pgm/pgm27.cc | 9 +- milena/tests/io/pgm/pgm_ascii.cc | 10 +- milena/tests/io/pgms/Makefile.am | 10 +- milena/tests/io/pgms/load.cc | 4 +- milena/tests/io/pnm/Makefile.am | 3 - milena/tests/io/ppm/Makefile.am | 27 +- milena/tests/io/ppm/ppm.cc | 7 +- milena/tests/io/ppm/ppm16.cc | 11 +- milena/tests/io/ppm/ppm23.cc | 11 +- milena/tests/io/ppms/Makefile.am | 10 +- milena/tests/io/ppms/load.cc | 6 +- milena/tests/io/tiff/Makefile.am | 3 - milena/tests/labeling/Makefile.am | 6 +- 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/linear/Makefile.am | 16 +- milena/tests/linear/convolve.cc | 5 +- milena/tests/linear/convolve_2x1d.cc | 5 +- milena/tests/linear/convolve_directional.cc | 5 +- milena/tests/linear/gaussian.cc | 5 +- milena/tests/linear/gaussian/Makefile.am | 7 +- milena/tests/linear/gaussian/filter.cc | 5 +- milena/tests/linear/lap.cc | 5 +- milena/tests/linear/local/Makefile.am | 6 +- milena/tests/linear/log.cc | 5 +- milena/tests/linear/sobel_2d.cc | 5 +- milena/tests/literal/Makefile.am | 6 +- milena/tests/logical/Makefile.am | 6 +- milena/tests/make/Makefile.am | 6 +- milena/tests/math/Makefile.am | 3 - milena/tests/metal/Makefile.am | 6 +- milena/tests/metal/make/Makefile.am | 3 - milena/tests/metal/math/Makefile.am | 6 +- milena/tests/morpho/Makefile.am | 36 +- milena/tests/morpho/approx/Makefile.am | 17 +- milena/tests/morpho/approx/dilation.cc | 6 +- milena/tests/morpho/approx/erosion.cc | 6 +- .../morpho/artificial_line_graph_image_wst.cc | 5 +- milena/tests/morpho/attribute/Makefile.am | 3 - milena/tests/morpho/closing/Makefile.am | 41 +- milena/tests/morpho/closing/algebraic.cc | 6 +- milena/tests/morpho/closing/approx/Makefile.am | 14 +- milena/tests/morpho/closing/approx/structural.cc | 6 +- milena/tests/morpho/closing/height.cc | 5 +- milena/tests/morpho/closing/leveling.cc | 6 +- milena/tests/morpho/closing/structural.cc | 4 +- milena/tests/morpho/closing/sum.cc | 5 +- milena/tests/morpho/closing/volume.cc | 7 +- milena/tests/morpho/complex_image_wst.cc | 5 +- milena/tests/morpho/contrast.cc | 5 +- milena/tests/morpho/dilation.cc | 13 +- milena/tests/morpho/elementary/Makefile.am | 3 - milena/tests/morpho/general.cc | 5 +- milena/tests/morpho/gradient.cc | 7 +- milena/tests/morpho/hit_or_miss.cc | 10 +- milena/tests/morpho/laplacian.cc | 7 +- milena/tests/morpho/lena_line_graph_image_wst1.cc | 5 +- milena/tests/morpho/lena_line_graph_image_wst2.cc | 5 +- milena/tests/morpho/line_graph_image_morpho.cc | 4 +- milena/tests/morpho/meyer_wst.cc | 5 +- milena/tests/morpho/meyer_wst_long.cc | 6 +- milena/tests/morpho/opening/Makefile.am | 40 +- milena/tests/morpho/opening/algebraic.cc | 6 +- milena/tests/morpho/opening/approx/Makefile.am | 9 +- milena/tests/morpho/opening/approx/structural.cc | 6 +- milena/tests/morpho/opening/area.cc | 5 +- milena/tests/morpho/opening/height.cc | 5 +- milena/tests/morpho/opening/leveling.cc | 6 +- milena/tests/morpho/opening/structural.cc | 4 +- milena/tests/morpho/opening/sum.cc | 5 +- milena/tests/morpho/opening/volume.cc | 5 +- milena/tests/morpho/rank_filter.cc | 5 +- milena/tests/morpho/reconstruction/Makefile.am | 5 - .../morpho/reconstruction/by_dilation/Makefile.am | 5 - .../morpho/reconstruction/by_erosion/Makefile.am | 5 - milena/tests/morpho/skeleton_constrained.cc | 83 +- milena/tests/morpho/thinning.cc | 7 +- milena/tests/morpho/tree/Makefile.am | 5 +- milena/tests/morpho/tree/filter/Makefile.am | 3 - milena/tests/morpho/watershed/Makefile.am | 16 +- milena/tests/morpho/watershed/flooding.cc | 13 +- milena/tests/morpho/watershed/topological.cc | 5 +- milena/tests/norm/Makefile.am | 3 - milena/tests/opt/Makefile.am | 3 - milena/tests/pw/Makefile.am | 6 +- milena/tests/registration/Makefile.am | 3 - milena/tests/set/Makefile.am | 6 +- milena/tests/subsampling/Makefile.am | 3 - milena/tests/subsampling/antialiased.cc | 10 +- milena/tests/tag/Makefile.am | 3 - milena/tests/test/Makefile.am | 3 - milena/tests/tests-recursive.mk | 36 +- milena/tests/tests.mk | 36 +- milena/tests/topo/Makefile.am | 3 - milena/tests/topo/skeleton/Makefile.am | 3 - milena/tests/topo/skeleton/crest.cc | 10 +- milena/tests/trace/Makefile.am | 3 - milena/tests/trait/Makefile.am | 6 +- milena/tests/trait/image/Makefile.am | 6 +- milena/tests/trait/op/Makefile.am | 6 +- milena/tests/trait/value/Makefile.am | 6 +- milena/tests/transform/Makefile.am | 5 - milena/tests/unit_test/Makefile.am | 24 +- .../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 | 156 ++- milena/tests/upscaling/Makefile.am | 4 - milena/tests/upscaling/art/Makefile.am | 3 - milena/tests/util/Makefile.am | 9 +- milena/tests/util/ord.cc | 42 + milena/tests/value/Makefile.am | 3 - milena/tests/value/builtin/Makefile.am | 6 +- milena/tests/value/concept/Makefile.am | 3 - milena/tests/win/Makefile.am | 6 +- milena/tests/world/Makefile.am | 3 - milena/tests/world/binary_2d/Makefile.am | 3 - milena/tests/world/inter_pixel/Makefile.am | 3 - milena/tests/world/inter_pixel/dim2/Makefile.am | 3 - milena/tools/Makefile.am | 3 - scribo/ChangeLog | 1046 ++++++++++- scribo/Doxyfile | 16 + scribo/Doxyfile_tex | 16 + scribo/Makefile.am | 9 +- scribo/README | 17 +- scribo/all.hh | 51 - scribo/binarization/internal/first_pass_functor.hh | 168 -- scribo/binarization/sauvola_ms.hh | 988 ---------- scribo/binarization/sauvola_threshold_image.hh | 616 ------ .../binarization/sauvola_threshold_image_debug.hh | 420 ---- scribo/convert/from_qimage.hh | 92 - scribo/core/component_info.hh | 203 -- scribo/core/component_set.hh | 576 ------ scribo/core/erase_objects.hh | 86 - scribo/core/internal/link_functor_base.hh | 119 -- scribo/core/line_info.hh | 937 --------- scribo/core/macros.hh | 61 - scribo/core/object_links.hh | 244 --- scribo/core/tag/component.hh | 118 -- scribo/core/tag/line.hh | 213 -- scribo/debug/bboxes_enlarged_image.hh | 136 -- scribo/debug/decision_image.hh | 180 -- scribo/debug/highlight_text_area.hh | 255 --- scribo/debug/links_decision_image.hh | 149 -- scribo/debug/looks_like_a_text_line_image.hh | 130 -- scribo/debug/mean_and_base_lines_image.hh | 147 -- scribo/debug/save_bboxes_image.hh | 142 -- scribo/debug/save_linked_bboxes_image.hh | 291 --- scribo/debug/save_object_diff.hh | 98 - scribo/debug/several_links_decision_image.hh | 185 -- scribo/demo/Makefile.am | 5 +- scribo/demo/demat/demat.pro | 2 +- scribo/demo/viewer/Makefile.am | 9 + scribo/demo/viewer/browser_widget.cc | 61 +- scribo/demo/viewer/browser_widget.hh | 8 +- 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 | 6 +- scribo/demo/viewer/image_region.cc | 6 +- scribo/demo/viewer/image_region.hh | 9 +- scribo/demo/viewer/image_region.hxx | 8 +- scribo/demo/viewer/image_scene.cc | 30 +- scribo/demo/viewer/image_scene.hh | 4 +- scribo/demo/viewer/key_widget.cc | 114 +- scribo/demo/viewer/key_widget.hh | 11 +- scribo/demo/viewer/property_widget.cc | 73 + scribo/demo/viewer/property_widget.hh | 41 + scribo/demo/viewer/step_widget.cc | 95 +- scribo/demo/viewer/step_widget.hh | 7 +- scribo/demo/viewer/viewer.cc | 628 +++---- scribo/demo/viewer/viewer.hh | 18 +- scribo/demo/viewer/xml_widget.cc | 144 +-- scribo/demo/viewer/xml_widget.hh | 15 +- scribo/demo/wizard/wizard.pro | 2 +- scribo/draw/bounding_box_links.hh | 404 ---- scribo/draw/bounding_boxes.hh | 116 -- scribo/filter/internal/compute.hh | 147 -- scribo/filter/object_groups_size_ratio.hh | 105 - scribo/filter/object_groups_with_holes.hh | 310 --- scribo/filter/object_links_bbox_ratio.hh | 111 -- scribo/filter/object_links_bbox_w_ratio.hh | 97 - scribo/filter/object_links_center_aligned.hh | 113 -- scribo/filter/object_links_left_aligned.hh | 122 -- scribo/filter/object_links_non_aligned_simple.hh | 132 -- scribo/filter/object_links_right_aligned.hh | 121 -- scribo/filter/objects_h_thick.hh | 196 -- scribo/filter/objects_h_thin.hh | 192 -- scribo/filter/objects_size_ratio.hh | 120 -- scribo/filter/objects_small.hh | 160 -- scribo/filter/objects_thick.hh | 191 -- scribo/filter/objects_thin.hh | 190 -- scribo/filter/objects_v_thick.hh | 196 -- scribo/filter/objects_v_thin.hh | 193 -- scribo/filter/objects_with_holes.hh | 580 ------ scribo/headers.mk | 308 ++-- scribo/io/xml/save.hh | 249 --- scribo/make/all.hh | 49 - scribo/make/text.hh | 180 -- scribo/postprocessing/fill_object_holes.hh | 408 ---- scribo/preprocessing/all.hh | 46 - scribo/preprocessing/crop_without_localization.hh | 97 - scribo/preprocessing/denoise_bg.hh | 156 -- scribo/preprocessing/denoise_fg.hh | 131 -- scribo/preprocessing/deskew.hh | 437 ----- scribo/preprocessing/deskew_crop.hh | 187 -- scribo/preprocessing/rotate_90.hh | 160 -- scribo/preprocessing/split_bg_fg.hh | 340 ---- scribo/primitive/extract/all.hh | 68 - scribo/primitive/extract/lines_h_single.hh | 202 -- .../primitive/extract/lines_h_thick_and_single.hh | 152 -- scribo/primitive/extract/lines_pattern.hh | 297 --- scribo/primitive/extract/lines_v_single.hh | 196 -- .../primitive/extract/lines_v_thick_and_single.hh | 150 -- scribo/primitive/group/all.hh | 57 - scribo/primitive/group/from_double_link.hh | 127 -- scribo/primitive/group/from_graph.hh | 179 -- scribo/primitive/internal/all.hh | 57 - scribo/primitive/internal/find_graph_link.hh | 110 -- scribo/primitive/internal/is_link_valid.hh | 81 - scribo/primitive/internal/update_link_array.hh | 105 - scribo/primitive/link/all.hh | 60 - scribo/primitive/link/compute_several.hh | 117 -- scribo/primitive/link/internal/compute_anchor.hh | 249 --- .../primitive/link/internal/dmax_functor_base.hh | 100 - .../primitive/link/internal/find_several_links.hh | 137 -- .../primitive/link/internal/link_functor_base.hh | 535 ------ .../primitive/link/internal/link_ms_dmax_base.hh | 164 -- .../link/internal/link_ms_dmax_ratio_base.hh | 170 -- .../link/internal/link_several_dmax_base.hh | 265 --- scribo/primitive/link/with_graph.hh | 123 -- scribo/primitive/link/with_rag.hh | 99 - scribo/primitive/link/with_several_graphes.hh | 126 -- scribo/primitive/link/with_several_left_links.hh | 164 -- .../link/with_several_right_closest_links.hh | 215 --- scribo/primitive/link/with_several_right_links.hh | 166 -- scribo/primitive/link/with_single_down_link.hh | 183 -- scribo/primitive/link/with_single_up_link.hh | 183 -- scribo/primitive/regroup/from_single_left_link.hh | 140 -- scribo/primitive/remove/separators.hh | 112 -- scribo/sandbox/ChangeLog | 90 - scribo/sandbox/arthur/xml_transform/README | 24 - scribo/sandbox/arthur/xml_transform/common.cc | 13 - scribo/sandbox/arthur/xml_transform/common.hh | 16 - scribo/sandbox/arthur/xml_transform/image_crop.cc | 319 --- scribo/sandbox/arthur/xml_transform/image_crop.hh | 57 - scribo/sandbox/arthur/xml_transform/loader.cc | 170 -- scribo/sandbox/arthur/xml_transform/loader.hh | 48 - scribo/sandbox/arthur/xml_transform/main.cc | 94 - .../arthur/xml_transform/templates/html/css.css | 31 - .../xml_transform/templates/html/html_generator.sh | 3 - .../arthur/xml_transform/templates/html/xsl.xsl | 223 --- .../xml_transform/templates/html/xsl_base64.xsl | 225 --- .../arthur/xml_transform/templates/pdf/line.xsl | 129 -- .../arthur/xml_transform/templates/pdf/main.xsl | 62 - .../arthur/xml_transform/templates/pdf/main64.xsl | 62 - .../xml_transform/templates/pdf/main_crop.xsl | 42 - .../xml_transform/templates/pdf/pdf_generator.sh | 3 - .../xml_transform/templates/pdf/regions_base64.xsl | 59 - .../xml_transform/templates/pdf/regions_png.xsl | 59 - .../sandbox/arthur/xml_transform/xml_transform.cc | 138 -- .../sandbox/arthur/xml_transform/xml_transform.hh | 58 - .../sandbox/arthur/xml_transform/xml_transform.pro | 16 - scribo/scribo.mk | 13 +- scribo/scribo/all.hh | 53 + scribo/scribo/binarization/all.hh | 55 + .../{ => scribo}/binarization/global_threshold.hh | 0 .../binarization/global_threshold_auto.hh | 0 .../binarization/internal/first_pass_functor.hh | 173 ++ .../{ => scribo}/binarization/local_threshold.hh | 0 scribo/{ => scribo}/binarization/sauvola.hh | 0 scribo/scribo/binarization/sauvola_ms.hh | 988 ++++++++++ .../{ => scribo}/binarization/sauvola_ms_split.hh | 0 .../scribo/binarization/sauvola_threshold_image.hh | 616 ++++++ .../binarization/sauvola_threshold_image_debug.hh | 421 ++++ scribo/{ => scribo}/canvas/integral_browsing.hh | 0 scribo/scribo/convert/from_qimage.hh | 93 + scribo/{ => scribo}/core/all.hh | 0 scribo/{ => scribo}/core/central_sites.hh | 0 scribo/scribo/core/component_info.hh | 203 ++ scribo/scribo/core/component_set.hh | 606 ++++++ scribo/{ => scribo}/core/concept/dmax_functor.hh | 0 scribo/{ => scribo}/core/concept/link_functor.hh | 0 scribo/{ => scribo}/core/def/lbl_type.hh | 0 scribo/scribo/core/erase_objects.hh | 86 + scribo/{ => scribo}/core/init_integral_image.hh | 0 scribo/scribo/core/line_info.hh | 937 +++++++++ scribo/{ => scribo}/core/line_set.hh | 0 scribo/scribo/core/macros.hh | 64 + scribo/{ => scribo}/core/object_groups.hh | 0 scribo/scribo/core/object_links.hh | 258 +++ scribo/{ => scribo}/core/tag/anchor.hh | 0 scribo/scribo/core/tag/component.hh | 121 ++ scribo/scribo/core/tag/line.hh | 216 +++ .../{ => scribo}/debug/alignment_decision_image.hh | 0 scribo/{ => scribo}/debug/all.hh | 0 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 | 0 scribo/scribo/debug/save_linked_bboxes_image.hh | 277 +++ scribo/{ => scribo}/debug/save_table_image.hh | 0 .../scribo/debug/several_links_decision_image.hh | 179 ++ scribo/scribo/debug/text_areas_image.hh | 133 ++ scribo/{ => scribo}/debug/usage.hh | 0 scribo/{ => scribo}/draw/all.hh | 0 scribo/scribo/draw/bounding_box_links.hh | 340 ++++ scribo/scribo/draw/bounding_boxes.hh | 117 ++ scribo/{ => scribo}/draw/groups_bboxes.hh | 0 .../estim/object_groups_v_thickness.hh | 0 scribo/{ => scribo}/filter/all.hh | 0 scribo/{ => scribo}/filter/common/objects_photo.hh | 0 .../filter/internal/alignment_angle.hh | 0 .../filter/internal/component_aligned.hh | 0 scribo/scribo/filter/internal/compute.hh | 147 ++ scribo/scribo/filter/object_groups_size_ratio.hh | 105 + scribo/{ => scribo}/filter/object_groups_small.hh | 0 .../filter/object_groups_v_thickness.hh | 0 scribo/scribo/filter/object_groups_with_holes.hh | 341 ++++ .../filter/object_links_bbox_h_ratio.hh | 0 .../filter/object_links_bbox_overlap.hh | 0 scribo/scribo/filter/object_links_bbox_ratio.hh | 111 ++ scribo/scribo/filter/object_links_bbox_w_ratio.hh | 95 + .../filter/object_links_bottom_aligned.hh | 0 .../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 ++ .../filter/object_links_top_aligned.hh | 0 scribo/scribo/filter/objects_h_thick.hh | 192 ++ scribo/scribo/filter/objects_h_thin.hh | 196 ++ scribo/{ => scribo}/filter/objects_large.hh | 0 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 | 0 .../{ => scribo}/fun/v2b/objects_large_filter.hh | 0 .../{ => scribo}/fun/v2b/objects_small_filter.hh | 0 scribo/{ => scribo}/io/text_boxes/save.hh | 0 scribo/scribo/io/xml/save.hh | 253 +++ scribo/scribo/make/all.hh | 49 + scribo/{ => scribo}/make/debug_filename.hh | 0 scribo/{ => scribo}/make/influence_zone_graph.hh | 0 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 | 0 .../preprocessing/crop_without_localization.hh | 99 + scribo/{ => scribo}/preprocessing/denoise.hh | 0 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 ++ .../preprocessing/homogeneous_contrast.hh | 0 scribo/scribo/preprocessing/rotate_90.hh | 163 ++ scribo/scribo/preprocessing/split_bg_fg.hh | 341 ++++ scribo/{ => scribo}/primitive/all.hh | 0 scribo/scribo/primitive/extract/all.hh | 68 + scribo/{ => scribo}/primitive/extract/canvas.hh | 0 scribo/{ => scribo}/primitive/extract/cells.hh | 0 .../{ => scribo}/primitive/extract/components.hh | 0 .../primitive/extract/horizontal_separators.hh | 0 .../primitive/extract/lines_discontinued.hh | 0 .../primitive/extract/lines_h_discontinued.hh | 0 .../primitive/extract/lines_h_pattern.hh | 0 scribo/scribo/primitive/extract/lines_h_single.hh | 202 ++ .../primitive/extract/lines_h_thick.hh | 0 .../primitive/extract/lines_h_thick_and_single.hh | 151 ++ scribo/scribo/primitive/extract/lines_pattern.hh | 298 +++ .../{ => scribo}/primitive/extract/lines_thick.hh | 0 .../primitive/extract/lines_v_discontinued.hh | 0 .../primitive/extract/lines_v_pattern.hh | 0 scribo/scribo/primitive/extract/lines_v_single.hh | 198 ++ .../primitive/extract/lines_v_thick.hh | 0 .../primitive/extract/lines_v_thick_and_single.hh | 150 ++ .../{ => scribo}/primitive/extract/separators.hh | 0 .../primitive/extract/vertical_separators.hh | 0 scribo/scribo/primitive/group/all.hh | 58 + scribo/{ => scribo}/primitive/group/apply.hh | 0 scribo/scribo/primitive/group/from_double_link.hh | 125 ++ scribo/scribo/primitive/group/from_graph.hh | 180 ++ .../primitive/group/from_single_link.hh | 0 scribo/scribo/primitive/internal/all.hh | 57 + .../scribo/primitive/internal/find_graph_link.hh | 115 ++ .../{ => scribo}/primitive/internal/find_root.hh | 0 .../primitive/internal/have_link_valid.hh | 0 scribo/scribo/primitive/internal/is_link_valid.hh | 81 + scribo/{ => scribo}/primitive/internal/rd.hh | 0 .../primitive/internal/update_graph_link.hh | 0 scribo/scribo/primitive/link/all.hh | 61 + scribo/{ => scribo}/primitive/link/compute.hh | 0 scribo/scribo/primitive/link/compute_several.hh | 117 ++ .../primitive/link/internal/compute_anchor.hh | 252 +++ .../primitive/link/internal/dmax_default.hh | 0 .../primitive/link/internal/dmax_functor_base.hh | 102 + .../link/internal/dmax_width_and_height.hh | 0 .../primitive/link/internal/dmax_width_only.hh | 0 .../primitive/link/internal/find_link.hh | 0 .../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 | 0 .../link/internal/link_single_dmax_ratio_base.hh | 0 .../primitive/link/merge_double_link.hh | 0 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 | 0 .../scribo/primitive/link/with_single_down_link.hh | 181 ++ .../primitive/link/with_single_left_link.hh | 0 .../link/with_single_left_link_dmax_ratio.hh | 0 .../primitive/link/with_single_right_link.hh | 0 .../link/with_single_right_link_bottom.hh | 0 .../link/with_single_right_link_dmax_ratio.hh | 0 .../primitive/link/with_single_right_link_top.hh | 0 .../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 | 0 scribo/scribo/subsampling/integral_single_image.hh | 460 +++++ scribo/scribo/table/align_lines_horizontaly.hh | 106 + scribo/{ => scribo}/table/align_lines_verticaly.hh | 0 scribo/{ => scribo}/table/all.hh | 0 .../{ => scribo}/table/connect_horizontal_lines.hh | 0 .../{ => scribo}/table/connect_vertical_lines.hh | 0 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 | 0 scribo/scribo/table/internal/connect_lines.hh | 125 ++ scribo/{ => scribo}/table/internal/repair_lines.hh | 0 scribo/scribo/table/rebuild.hh | 158 ++ .../{ => scribo}/table/repair_horizontal_lines.hh | 0 scribo/{ => scribo}/table/repair_vertical_lines.hh | 0 scribo/{ => scribo}/text/all.hh | 0 scribo/{ => scribo}/text/clean.hh | 0 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 | 0 scribo/{ => scribo}/upsampling/bs2x.hh | 0 scribo/scribo/upsampling/eagle.hh | 149 ++ scribo/src/Makefile.am | 28 +- scribo/src/README | 28 +- scribo/src/afp/components.hh | 69 +- scribo/src/afp/link.hh | 49 +- scribo/src/afp/regroup.hh | 36 + scribo/src/binarization/Makefile.am | 5 +- scribo/src/binarization/sauvola_ms.cc | 2 - scribo/src/contest/hdibco-2010/Makefile.am | 4 +- scribo/src/debug/Makefile.am | 6 +- .../src/debug/show_info_median_inter_characters.cc | 194 +-- scribo/src/debug/show_info_x_height.cc | 224 +-- scribo/src/debug/show_links_bbox_h_ratio.cc | 26 +- scribo/src/debug/show_links_bbox_overlap.cc | 19 +- scribo/src/debug/show_links_bottom_aligned.cc | 6 +- scribo/src/debug/show_links_center_aligned.cc | 19 +- .../show_links_left_right_links_validation.cc | 35 +- 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 | 38 +- scribo/src/debug/show_links_single_down.cc | 33 +- .../debug/show_links_single_down_left_aligned.cc | 26 +- .../debug/show_links_single_down_right_aligned.cc | 29 +- scribo/src/debug/show_links_single_left.cc | 36 +- .../src/debug/show_links_single_left_dmax_ratio.cc | 44 +- scribo/src/debug/show_links_single_right.cc | 37 +- .../debug/show_links_single_right_dmax_ratio.cc | 36 +- scribo/src/debug/show_links_single_up.cc | 37 +- .../src/debug/show_links_single_up_left_aligned.cc | 29 +- .../debug/show_links_single_up_right_aligned.cc | 29 +- scribo/src/debug/show_links_top_aligned.cc | 12 +- 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 | 3 - 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 | 27 +- scribo/src/filter/objects_with_holes_pgm.cc | 23 +- scribo/src/misc/Makefile.am | 4 - scribo/src/misc/negate.cc | 5 +- scribo/src/misc/superpose.cc | 7 +- scribo/src/pbm_lines_in_doc.cc | 299 --- scribo/src/preprocessing/Makefile.am | 56 +- scribo/src/preprocessing/preprocess.cc | 27 +- scribo/src/preprocessing/rotate.cc | 68 + scribo/src/preprocessing/rotate_90.cc | 30 +- scribo/src/preprocessing/split_bg_fg.cc | 14 +- scribo/src/preprocessing/unskew.cc | 22 +- scribo/src/primitive/Makefile.am | 3 - scribo/src/primitive/extract/Makefile.am | 4 - .../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 +- scribo/src/primitive/find/Makefile.am | 5 - .../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 | 21 +- .../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/Makefile.am | 3 - scribo/src/table/erase.cc | 15 +- scribo/src/table/extract.cc | 7 +- scribo/src/text/Makefile.am | 3 - scribo/src/text/cleantxt.cc | 45 +- scribo/src/text_in_picture.cc | 128 +- scribo/src/text_recognition_in_picture.cc | 378 ++++ scribo/subsampling/bilinear.hh | 114 -- scribo/subsampling/integral_single_image.hh | 459 ----- scribo/table/align_lines_horizontaly.hh | 101 - scribo/table/erase.hh | 101 - scribo/table/extract.hh | 116 -- scribo/table/internal/align_lines.hh | 196 -- scribo/table/internal/connect_lines.hh | 127 -- scribo/table/rebuild.hh | 157 -- scribo/tests/Makefile.am | 7 +- scribo/tests/core/Makefile.am | 8 +- scribo/tests/core/object_image.cc | 72 - scribo/tests/filter/Makefile.am | 3 - scribo/tests/filter/objects_with_holes.cc | 67 +- scribo/tests/filter/small_and_large_bboxes.cc | 67 +- scribo/tests/preprocessing/Makefile.am | 7 +- scribo/tests/preprocessing/crop.cc | 5 +- .../preprocessing/crop_without_localization.cc | 5 +- scribo/tests/preprocessing/deskew.cc | 4 +- scribo/tests/preprocessing/rotate_90.cc | 2 +- scribo/tests/table/Makefile.am | 3 - scribo/tests/table/extract_lines_with_rank.cc | 5 +- scribo/tests/table/repair_lines.cc | 5 +- scribo/tests/tests.mk | 26 +- scribo/tests/text/Makefile.am | 3 - scribo/tests/toolchain/Makefile.am | 5 +- scribo/tests/toolchain/nepomuk/text_extraction.cc | 2 +- scribo/tests/unit_test/Makefile.am | 32 +- scribo/tests/unit_test/build_unit_test.sh | 67 - 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 | 4 + scribo/tests/unit_test/unit-tests.mk | 260 +++- scribo/text/clean_inplace.hh | 147 -- scribo/text/extract_lines.hh | 152 -- scribo/text/merging.hh | 936 --------- scribo/text/recognition.hh | 269 --- scribo/toolchain/nepomuk/text_extraction.hh | 160 -- scribo/upsampling/eagle.hh | 145 -- swilena/ChangeLog | 18 + swilena/Makefile.am | 3 - swilena/python/Makefile.am | 29 +- swilena/python/morpho-fun.py | 23 +- swilena/python/morpho-segm.py | 7 +- 845 files changed, 39722 insertions(+), 31382 deletions(-) create mode 100644 HACKING create mode 100644 build-aux/tex.mk create mode 100755 build-aux/texi2dvi create mode 100644 m4/boost.m4 create mode 100644 m4/pkg.m4 delete mode 100644 m4/with-swilena.m4 delete mode 100644 milena/doc/doc.mk create mode 100644 milena/doc/examples-outputs.mk create mode 100644 milena/doc/examples.mk delete mode 100644 milena/doc/examples/Makefile.am rename milena/doc/examples/{accu-right-instanciation.cc => accu-right-instantiation.cc} (100%) rename milena/doc/examples/{accu-wrong-instanciation.cc.raw => accu-wrong-instantiation.cc.raw} (100%) delete mode 100644 milena/doc/examples/examples.mk rename milena/doc/examples/split/{accu-right-instanciation-1.cc.raw => accu-right-instantiation-1.cc.raw} (100%) create mode 100644 milena/doc/figures.mk delete mode 100644 milena/doc/figures/figures.mk rename milena/doc/{white_paper => }/figures/house.png (100%) rename milena/doc/{white_paper => }/figures/house_rag.png (100%) rename milena/doc/{white_paper => }/figures/house_wshed.png (100%) rename milena/doc/{white_paper => }/figures/house_wshed_mean_colors.png (100%) rename milena/doc/{technical/figures => figures/technical}/file_layout.pdf (100%) rename milena/doc/{technical/figures => figures/technical}/file_layout.png (100%) delete mode 100644 milena/doc/figures/tuto4_genericity_and_algorithms-7.pgm delete mode 100644 milena/doc/figures/tuto4_genericity_and_algorithms-7.ppm delete mode 100644 milena/doc/figures/tuto4_genericity_and_algorithms-8.pgm delete mode 100644 milena/doc/figures/tuto4_genericity_and_algorithms-8.ppm delete mode 100644 milena/doc/figures/tuto4_genericity_and_algorithms-9.pgm delete mode 100644 milena/doc/figures/tuto4_genericity_and_algorithms-9.ppm create mode 100755 milena/doc/gen-examples-outputs-mk create mode 100755 milena/doc/gen-figures-mk create mode 100755 milena/doc/gen-make-variable create mode 100755 milena/doc/gen-split-examples-mk create mode 100755 milena/doc/gen-split-outputs-mk create mode 100644 milena/doc/graphicx.hva create mode 120000 milena/doc/img/small.pbm create mode 100644 milena/doc/outputs.mk copy milena/doc/outputs/{accu-right-instanciation.txt => accu-right-instantiation.txt} (100%) rename milena/doc/outputs/{ima2d-decl-2.txt => ima-load.txt} (100%) delete mode 100644 milena/doc/outputs/outputs.mk rename milena/doc/{tutorial/headers.stamp => outputs/tuto3_first_routine.txt} (100%) rename milena/doc/outputs/{accu-right-instanciation.txt => tuto4_image.txt} (100%) create mode 100644 milena/doc/programs-examples.mk create mode 100644 milena/doc/ref-guide.tex delete mode 100644 milena/doc/ref_guide/Makefile.am delete mode 100644 milena/doc/ref_guide/ref_guide.tex create mode 100644 milena/doc/split-examples.mk create mode 100644 milena/doc/split-outputs.mk rename milena/doc/{technical => technical.old}/designs/properties/values.txt (100%) rename milena/doc/{technical => technical.old}/designs/site_psite_piter/README (100%) create mode 100644 milena/doc/technical.tex delete mode 100644 milena/doc/technical/Makefile.am delete mode 100644 milena/doc/technical/technical.tex create mode 100644 milena/doc/tools/data.hh.in rename milena/doc/{tutorial => tutorial.old}/design/Makefile (100%) rename milena/doc/{tutorial => tutorial.old}/design/design.tex (100%) rename milena/doc/{tutorial => tutorial.old}/design/include/imagetours.tex (100%) rename milena/doc/{tutorial => tutorial.old}/design/include/properties.tex (100%) rename milena/doc/{tutorial => tutorial.old}/doxyfile_tuto.local (100%) rename milena/doc/{tutorial => tutorial.old}/image_types.txt (100%) rename milena/doc/{tutorial => tutorial.old}/image_values.txt (100%) rename milena/doc/{tutorial => tutorial.old}/images_tour.txt (100%) rename milena/doc/{tutorial => tutorial.old}/slides.tex (100%) rename milena/doc/{tutorial => }/tutorial.tex (100%) delete mode 100644 milena/doc/tutorial/Makefile.am rename milena/doc/{white_paper/white_paper.tex => white-paper.tex} (100%) delete mode 100644 milena/doc/white_paper/Makefile.am create mode 100644 milena/tests/unit_test/cond_tests_boost-preprocessor_boost-tuple create mode 100644 milena/tests/unit_test/cond_tests_cfitsio create mode 100644 milena/tests/unit_test/cond_tests_gdcm create mode 100644 milena/tests/unit_test/cond_tests_magickxx create mode 100644 milena/tests/unit_test/cond_tests_qt create mode 100644 milena/tests/unit_test/cond_tests_tiff create mode 100644 milena/tests/util/ord.cc delete mode 100644 scribo/all.hh delete mode 100644 scribo/binarization/internal/first_pass_functor.hh delete mode 100644 scribo/binarization/sauvola_ms.hh delete mode 100644 scribo/binarization/sauvola_threshold_image.hh delete mode 100644 scribo/binarization/sauvola_threshold_image_debug.hh delete mode 100644 scribo/convert/from_qimage.hh delete mode 100644 scribo/core/component_info.hh delete mode 100644 scribo/core/component_set.hh delete mode 100644 scribo/core/erase_objects.hh delete mode 100644 scribo/core/internal/link_functor_base.hh delete mode 100644 scribo/core/line_info.hh delete mode 100644 scribo/core/macros.hh delete mode 100644 scribo/core/object_links.hh delete mode 100644 scribo/core/tag/component.hh delete mode 100644 scribo/core/tag/line.hh delete mode 100644 scribo/debug/bboxes_enlarged_image.hh delete mode 100644 scribo/debug/decision_image.hh delete mode 100644 scribo/debug/highlight_text_area.hh delete mode 100644 scribo/debug/links_decision_image.hh delete mode 100644 scribo/debug/looks_like_a_text_line_image.hh delete mode 100644 scribo/debug/mean_and_base_lines_image.hh delete mode 100644 scribo/debug/save_bboxes_image.hh delete mode 100644 scribo/debug/save_linked_bboxes_image.hh delete mode 100644 scribo/debug/save_object_diff.hh delete mode 100644 scribo/debug/several_links_decision_image.hh create mode 100644 scribo/demo/viewer/domitem.cc create mode 100644 scribo/demo/viewer/domitem.hh create mode 100644 scribo/demo/viewer/dommodel.cc create mode 100644 scribo/demo/viewer/dommodel.hh create mode 100644 scribo/demo/viewer/property_widget.cc create mode 100644 scribo/demo/viewer/property_widget.hh delete mode 100644 scribo/draw/bounding_box_links.hh delete mode 100644 scribo/draw/bounding_boxes.hh delete mode 100644 scribo/filter/internal/compute.hh delete mode 100644 scribo/filter/object_groups_size_ratio.hh delete mode 100644 scribo/filter/object_groups_with_holes.hh delete mode 100644 scribo/filter/object_links_bbox_ratio.hh delete mode 100644 scribo/filter/object_links_bbox_w_ratio.hh delete mode 100644 scribo/filter/object_links_center_aligned.hh delete mode 100644 scribo/filter/object_links_left_aligned.hh delete mode 100644 scribo/filter/object_links_non_aligned_simple.hh delete mode 100644 scribo/filter/object_links_right_aligned.hh delete mode 100644 scribo/filter/objects_h_thick.hh delete mode 100644 scribo/filter/objects_h_thin.hh delete mode 100644 scribo/filter/objects_size_ratio.hh delete mode 100644 scribo/filter/objects_small.hh delete mode 100644 scribo/filter/objects_thick.hh delete mode 100644 scribo/filter/objects_thin.hh delete mode 100644 scribo/filter/objects_v_thick.hh delete mode 100644 scribo/filter/objects_v_thin.hh delete mode 100644 scribo/filter/objects_with_holes.hh delete mode 100644 scribo/io/xml/save.hh delete mode 100644 scribo/make/all.hh delete mode 100644 scribo/make/text.hh delete mode 100644 scribo/postprocessing/fill_object_holes.hh delete mode 100644 scribo/preprocessing/all.hh delete mode 100644 scribo/preprocessing/crop_without_localization.hh delete mode 100644 scribo/preprocessing/denoise_bg.hh delete mode 100644 scribo/preprocessing/denoise_fg.hh delete mode 100644 scribo/preprocessing/deskew.hh delete mode 100644 scribo/preprocessing/deskew_crop.hh delete mode 100644 scribo/preprocessing/rotate_90.hh delete mode 100644 scribo/preprocessing/split_bg_fg.hh delete mode 100644 scribo/primitive/extract/all.hh delete mode 100644 scribo/primitive/extract/lines_h_single.hh delete mode 100644 scribo/primitive/extract/lines_h_thick_and_single.hh delete mode 100644 scribo/primitive/extract/lines_pattern.hh delete mode 100644 scribo/primitive/extract/lines_v_single.hh delete mode 100644 scribo/primitive/extract/lines_v_thick_and_single.hh delete mode 100644 scribo/primitive/group/all.hh delete mode 100644 scribo/primitive/group/from_double_link.hh delete mode 100644 scribo/primitive/group/from_graph.hh delete mode 100644 scribo/primitive/internal/all.hh delete mode 100644 scribo/primitive/internal/find_graph_link.hh delete mode 100644 scribo/primitive/internal/is_link_valid.hh delete mode 100644 scribo/primitive/internal/update_link_array.hh delete mode 100644 scribo/primitive/link/all.hh delete mode 100644 scribo/primitive/link/compute_several.hh delete mode 100644 scribo/primitive/link/internal/compute_anchor.hh delete mode 100644 scribo/primitive/link/internal/dmax_functor_base.hh delete mode 100644 scribo/primitive/link/internal/find_several_links.hh delete mode 100644 scribo/primitive/link/internal/link_functor_base.hh delete mode 100644 scribo/primitive/link/internal/link_ms_dmax_base.hh delete mode 100644 scribo/primitive/link/internal/link_ms_dmax_ratio_base.hh delete mode 100644 scribo/primitive/link/internal/link_several_dmax_base.hh delete mode 100644 scribo/primitive/link/with_graph.hh delete mode 100644 scribo/primitive/link/with_rag.hh delete mode 100644 scribo/primitive/link/with_several_graphes.hh delete mode 100644 scribo/primitive/link/with_several_left_links.hh delete mode 100644 scribo/primitive/link/with_several_right_closest_links.hh delete mode 100644 scribo/primitive/link/with_several_right_links.hh delete mode 100644 scribo/primitive/link/with_single_down_link.hh delete mode 100644 scribo/primitive/link/with_single_up_link.hh delete mode 100644 scribo/primitive/regroup/from_single_left_link.hh delete mode 100644 scribo/primitive/remove/separators.hh delete mode 100644 scribo/sandbox/arthur/xml_transform/README delete mode 100644 scribo/sandbox/arthur/xml_transform/common.cc delete mode 100644 scribo/sandbox/arthur/xml_transform/common.hh delete mode 100644 scribo/sandbox/arthur/xml_transform/image_crop.cc delete mode 100644 scribo/sandbox/arthur/xml_transform/image_crop.hh delete mode 100644 scribo/sandbox/arthur/xml_transform/loader.cc delete mode 100644 scribo/sandbox/arthur/xml_transform/loader.hh delete mode 100644 scribo/sandbox/arthur/xml_transform/main.cc delete mode 100644 scribo/sandbox/arthur/xml_transform/templates/html/css.css delete mode 100644 scribo/sandbox/arthur/xml_transform/templates/html/html_generator.sh delete mode 100644 scribo/sandbox/arthur/xml_transform/templates/html/xsl.xsl delete mode 100644 scribo/sandbox/arthur/xml_transform/templates/html/xsl_base64.xsl delete mode 100644 scribo/sandbox/arthur/xml_transform/templates/pdf/line.xsl delete mode 100644 scribo/sandbox/arthur/xml_transform/templates/pdf/main.xsl delete mode 100644 scribo/sandbox/arthur/xml_transform/templates/pdf/main64.xsl delete mode 100644 scribo/sandbox/arthur/xml_transform/templates/pdf/main_crop.xsl delete mode 100644 scribo/sandbox/arthur/xml_transform/templates/pdf/pdf_generator.sh delete mode 100644 scribo/sandbox/arthur/xml_transform/templates/pdf/regions_base64.xsl delete mode 100644 scribo/sandbox/arthur/xml_transform/templates/pdf/regions_png.xsl delete mode 100644 scribo/sandbox/arthur/xml_transform/xml_transform.cc delete mode 100644 scribo/sandbox/arthur/xml_transform/xml_transform.hh delete mode 100644 scribo/sandbox/arthur/xml_transform/xml_transform.pro create mode 100644 scribo/scribo/all.hh create mode 100644 scribo/scribo/binarization/all.hh rename scribo/{ => scribo}/binarization/global_threshold.hh (100%) rename scribo/{ => scribo}/binarization/global_threshold_auto.hh (100%) create mode 100644 scribo/scribo/binarization/internal/first_pass_functor.hh rename scribo/{ => scribo}/binarization/local_threshold.hh (100%) rename scribo/{ => scribo}/binarization/sauvola.hh (100%) create mode 100644 scribo/scribo/binarization/sauvola_ms.hh rename scribo/{ => scribo}/binarization/sauvola_ms_split.hh (100%) create mode 100644 scribo/scribo/binarization/sauvola_threshold_image.hh create mode 100644 scribo/scribo/binarization/sauvola_threshold_image_debug.hh rename scribo/{ => scribo}/canvas/integral_browsing.hh (100%) create mode 100644 scribo/scribo/convert/from_qimage.hh rename scribo/{ => scribo}/core/all.hh (100%) rename scribo/{ => scribo}/core/central_sites.hh (100%) create mode 100644 scribo/scribo/core/component_info.hh create mode 100644 scribo/scribo/core/component_set.hh rename scribo/{ => scribo}/core/concept/dmax_functor.hh (100%) rename scribo/{ => scribo}/core/concept/link_functor.hh (100%) rename scribo/{ => scribo}/core/def/lbl_type.hh (100%) create mode 100644 scribo/scribo/core/erase_objects.hh rename scribo/{ => scribo}/core/init_integral_image.hh (100%) create mode 100644 scribo/scribo/core/line_info.hh rename scribo/{ => scribo}/core/line_set.hh (100%) create mode 100644 scribo/scribo/core/macros.hh rename scribo/{ => scribo}/core/object_groups.hh (100%) create mode 100644 scribo/scribo/core/object_links.hh rename scribo/{ => scribo}/core/tag/anchor.hh (100%) create mode 100644 scribo/scribo/core/tag/component.hh create mode 100644 scribo/scribo/core/tag/line.hh rename scribo/{ => scribo}/debug/alignment_decision_image.hh (100%) rename scribo/{ => scribo}/debug/all.hh (100%) create mode 100644 scribo/scribo/debug/bboxes_enlarged_image.hh create mode 100644 scribo/scribo/debug/char_space_image.hh create mode 100644 scribo/scribo/debug/decision_image.hh create mode 100644 scribo/scribo/debug/highlight_text_area.hh create mode 100644 scribo/scribo/debug/line_info_image.hh create mode 100644 scribo/scribo/debug/links_decision_image.hh create mode 100644 scribo/scribo/debug/looks_like_a_text_line_image.hh create mode 100644 scribo/scribo/debug/mean_and_base_lines_image.hh create mode 100644 scribo/scribo/debug/save_bboxes_image.hh create mode 100644 scribo/scribo/debug/save_comp_diff.hh rename scribo/{ => scribo}/debug/save_label_image.hh (100%) create mode 100644 scribo/scribo/debug/save_linked_bboxes_image.hh rename scribo/{ => scribo}/debug/save_table_image.hh (100%) create mode 100644 scribo/scribo/debug/several_links_decision_image.hh create mode 100644 scribo/scribo/debug/text_areas_image.hh rename scribo/{ => scribo}/debug/usage.hh (100%) rename scribo/{ => scribo}/draw/all.hh (100%) create mode 100644 scribo/scribo/draw/bounding_box_links.hh create mode 100644 scribo/scribo/draw/bounding_boxes.hh rename scribo/{ => scribo}/draw/groups_bboxes.hh (100%) rename scribo/{ => scribo}/estim/object_groups_v_thickness.hh (100%) rename scribo/{ => scribo}/filter/all.hh (100%) rename scribo/{ => scribo}/filter/common/objects_photo.hh (100%) rename scribo/{ => scribo}/filter/internal/alignment_angle.hh (100%) rename scribo/{ => scribo}/filter/internal/component_aligned.hh (100%) create mode 100644 scribo/scribo/filter/internal/compute.hh create mode 100644 scribo/scribo/filter/object_groups_size_ratio.hh rename scribo/{ => scribo}/filter/object_groups_small.hh (100%) rename scribo/{ => scribo}/filter/object_groups_v_thickness.hh (100%) create mode 100644 scribo/scribo/filter/object_groups_with_holes.hh rename scribo/{ => scribo}/filter/object_links_bbox_h_ratio.hh (100%) rename scribo/{ => scribo}/filter/object_links_bbox_overlap.hh (100%) create mode 100644 scribo/scribo/filter/object_links_bbox_ratio.hh create mode 100644 scribo/scribo/filter/object_links_bbox_w_ratio.hh rename scribo/{ => scribo}/filter/object_links_bottom_aligned.hh (100%) create mode 100644 scribo/scribo/filter/object_links_center_aligned.hh create mode 100644 scribo/scribo/filter/object_links_left_aligned.hh create mode 100644 scribo/scribo/filter/object_links_non_aligned_simple.hh create mode 100644 scribo/scribo/filter/object_links_right_aligned.hh rename scribo/{ => scribo}/filter/object_links_top_aligned.hh (100%) create mode 100644 scribo/scribo/filter/objects_h_thick.hh create mode 100644 scribo/scribo/filter/objects_h_thin.hh rename scribo/{ => scribo}/filter/objects_large.hh (100%) create mode 100644 scribo/scribo/filter/objects_size_ratio.hh create mode 100644 scribo/scribo/filter/objects_small.hh create mode 100644 scribo/scribo/filter/objects_thick.hh create mode 100644 scribo/scribo/filter/objects_thin.hh create mode 100644 scribo/scribo/filter/objects_v_thick.hh create mode 100644 scribo/scribo/filter/objects_v_thin.hh create mode 100644 scribo/scribo/filter/objects_with_holes.hh rename scribo/{ => scribo}/fun/v2b/label_to_bool.hh (100%) rename scribo/{ => scribo}/fun/v2b/objects_large_filter.hh (100%) rename scribo/{ => scribo}/fun/v2b/objects_small_filter.hh (100%) rename scribo/{ => scribo}/io/text_boxes/save.hh (100%) create mode 100644 scribo/scribo/io/xml/save.hh create mode 100644 scribo/scribo/make/all.hh rename scribo/{ => scribo}/make/debug_filename.hh (100%) rename scribo/{ => scribo}/make/influence_zone_graph.hh (100%) create mode 100644 scribo/scribo/postprocessing/all.hh create mode 100644 scribo/scribo/postprocessing/fill_object_holes.hh create mode 100644 scribo/scribo/preprocessing/all.hh rename scribo/{ => scribo}/preprocessing/crop.hh (100%) create mode 100644 scribo/scribo/preprocessing/crop_without_localization.hh rename scribo/{ => scribo}/preprocessing/denoise.hh (100%) create mode 100644 scribo/scribo/preprocessing/denoise_bg.hh create mode 100644 scribo/scribo/preprocessing/denoise_fg.hh create mode 100644 scribo/scribo/preprocessing/deskew.hh create mode 100644 scribo/scribo/preprocessing/deskew_crop.hh rename scribo/{ => scribo}/preprocessing/homogeneous_contrast.hh (100%) create mode 100644 scribo/scribo/preprocessing/rotate_90.hh create mode 100644 scribo/scribo/preprocessing/split_bg_fg.hh rename scribo/{ => scribo}/primitive/all.hh (100%) create mode 100644 scribo/scribo/primitive/extract/all.hh rename scribo/{ => scribo}/primitive/extract/canvas.hh (100%) rename scribo/{ => scribo}/primitive/extract/cells.hh (100%) rename scribo/{ => scribo}/primitive/extract/components.hh (100%) rename scribo/{ => scribo}/primitive/extract/horizontal_separators.hh (100%) rename scribo/{ => scribo}/primitive/extract/lines_discontinued.hh (100%) rename scribo/{ => scribo}/primitive/extract/lines_h_discontinued.hh (100%) rename scribo/{ => scribo}/primitive/extract/lines_h_pattern.hh (100%) create mode 100644 scribo/scribo/primitive/extract/lines_h_single.hh rename scribo/{ => scribo}/primitive/extract/lines_h_thick.hh (100%) create mode 100644 scribo/scribo/primitive/extract/lines_h_thick_and_single.hh create mode 100644 scribo/scribo/primitive/extract/lines_pattern.hh rename scribo/{ => scribo}/primitive/extract/lines_thick.hh (100%) rename scribo/{ => scribo}/primitive/extract/lines_v_discontinued.hh (100%) rename scribo/{ => scribo}/primitive/extract/lines_v_pattern.hh (100%) create mode 100644 scribo/scribo/primitive/extract/lines_v_single.hh rename scribo/{ => scribo}/primitive/extract/lines_v_thick.hh (100%) create mode 100644 scribo/scribo/primitive/extract/lines_v_thick_and_single.hh rename scribo/{ => scribo}/primitive/extract/separators.hh (100%) rename scribo/{ => scribo}/primitive/extract/vertical_separators.hh (100%) create mode 100644 scribo/scribo/primitive/group/all.hh rename scribo/{ => scribo}/primitive/group/apply.hh (100%) create mode 100644 scribo/scribo/primitive/group/from_double_link.hh create mode 100644 scribo/scribo/primitive/group/from_graph.hh rename scribo/{ => scribo}/primitive/group/from_single_link.hh (100%) create mode 100644 scribo/scribo/primitive/internal/all.hh create mode 100644 scribo/scribo/primitive/internal/find_graph_link.hh rename scribo/{ => scribo}/primitive/internal/find_root.hh (100%) rename scribo/{ => scribo}/primitive/internal/have_link_valid.hh (100%) create mode 100644 scribo/scribo/primitive/internal/is_link_valid.hh rename scribo/{ => scribo}/primitive/internal/rd.hh (100%) rename scribo/{ => scribo}/primitive/internal/update_graph_link.hh (100%) create mode 100644 scribo/scribo/primitive/link/all.hh rename scribo/{ => scribo}/primitive/link/compute.hh (100%) create mode 100644 scribo/scribo/primitive/link/compute_several.hh create mode 100644 scribo/scribo/primitive/link/internal/compute_anchor.hh rename scribo/{ => scribo}/primitive/link/internal/dmax_default.hh (100%) create mode 100644 scribo/scribo/primitive/link/internal/dmax_functor_base.hh rename scribo/{ => scribo}/primitive/link/internal/dmax_width_and_height.hh (100%) rename scribo/{ => scribo}/primitive/link/internal/dmax_width_only.hh (100%) rename scribo/{ => scribo}/primitive/link/internal/find_link.hh (100%) create mode 100644 scribo/scribo/primitive/link/internal/find_several_links.hh create mode 100644 scribo/scribo/primitive/link/internal/link_functor_base.hh create mode 100644 scribo/scribo/primitive/link/internal/link_several_dmax_base.hh rename scribo/{ => scribo}/primitive/link/internal/link_single_dmax_base.hh (100%) rename scribo/{ => scribo}/primitive/link/internal/link_single_dmax_ratio_base.hh (100%) rename scribo/{ => scribo}/primitive/link/merge_double_link.hh (100%) create mode 100644 scribo/scribo/primitive/link/with_graph.hh create mode 100644 scribo/scribo/primitive/link/with_rag.hh create mode 100644 scribo/scribo/primitive/link/with_several_graphes.hh create mode 100644 scribo/scribo/primitive/link/with_several_left_links.hh create mode 100644 scribo/scribo/primitive/link/with_several_right_closest_links.hh create mode 100644 scribo/scribo/primitive/link/with_several_right_links.hh rename scribo/{ => scribo}/primitive/link/with_several_right_links_overlap.hh (100%) create mode 100644 scribo/scribo/primitive/link/with_single_down_link.hh rename scribo/{ => scribo}/primitive/link/with_single_left_link.hh (100%) rename scribo/{ => scribo}/primitive/link/with_single_left_link_dmax_ratio.hh (100%) rename scribo/{ => scribo}/primitive/link/with_single_right_link.hh (100%) rename scribo/{ => scribo}/primitive/link/with_single_right_link_bottom.hh (100%) rename scribo/{ => scribo}/primitive/link/with_single_right_link_dmax_ratio.hh (100%) rename scribo/{ => scribo}/primitive/link/with_single_right_link_top.hh (100%) create mode 100644 scribo/scribo/primitive/link/with_single_up_link.hh create mode 100644 scribo/scribo/primitive/regroup/from_single_left_link.hh create mode 100644 scribo/scribo/primitive/regroup/from_single_left_link_wrt_h_ratio.hh create mode 100644 scribo/scribo/primitive/remove/separators.hh create mode 100644 scribo/scribo/subsampling/bilinear.hh rename scribo/{ => scribo}/subsampling/integral.hh (100%) create mode 100644 scribo/scribo/subsampling/integral_single_image.hh create mode 100644 scribo/scribo/table/align_lines_horizontaly.hh rename scribo/{ => scribo}/table/align_lines_verticaly.hh (100%) rename scribo/{ => scribo}/table/all.hh (100%) rename scribo/{ => scribo}/table/connect_horizontal_lines.hh (100%) rename scribo/{ => scribo}/table/connect_vertical_lines.hh (100%) create mode 100644 scribo/scribo/table/erase.hh create mode 100644 scribo/scribo/table/extract.hh create mode 100644 scribo/scribo/table/internal/align_lines.hh rename scribo/{ => scribo}/table/internal/all.hh (100%) create mode 100644 scribo/scribo/table/internal/connect_lines.hh rename scribo/{ => scribo}/table/internal/repair_lines.hh (100%) create mode 100644 scribo/scribo/table/rebuild.hh rename scribo/{ => scribo}/table/repair_horizontal_lines.hh (100%) rename scribo/{ => scribo}/table/repair_vertical_lines.hh (100%) rename scribo/{ => scribo}/text/all.hh (100%) rename scribo/{ => scribo}/text/clean.hh (100%) create mode 100644 scribo/scribo/text/clean_inplace.hh create mode 100644 scribo/scribo/text/extract_lines.hh create mode 100644 scribo/scribo/text/look_like_text_lines.hh create mode 100644 scribo/scribo/text/merging.hh create mode 100644 scribo/scribo/text/recognition.hh create mode 100644 scribo/scribo/toolchain/nepomuk/text_extraction.hh rename scribo/{ => scribo}/toolchain/text_in_doc.hh (100%) rename scribo/{ => scribo}/upsampling/bs2x.hh (100%) create mode 100644 scribo/scribo/upsampling/eagle.hh delete mode 100644 scribo/src/pbm_lines_in_doc.cc create mode 100644 scribo/src/preprocessing/rotate.cc create mode 100644 scribo/src/text_recognition_in_picture.cc delete mode 100644 scribo/subsampling/bilinear.hh delete mode 100644 scribo/subsampling/integral_single_image.hh delete mode 100644 scribo/table/align_lines_horizontaly.hh delete mode 100644 scribo/table/erase.hh delete mode 100644 scribo/table/extract.hh delete mode 100644 scribo/table/internal/align_lines.hh delete mode 100644 scribo/table/internal/connect_lines.hh delete mode 100644 scribo/table/rebuild.hh delete mode 100644 scribo/tests/core/object_image.cc delete mode 100755 scribo/tests/unit_test/build_unit_test.sh create mode 100644 scribo/tests/unit_test/cond_tests_qt create mode 100644 scribo/tests/unit_test/cond_tests_qt_tesseract_tiff create mode 100644 scribo/tests/unit_test/cond_tests_tesseract_tiff create mode 100644 scribo/tests/unit_test/disabled_tests delete mode 100644 scribo/text/clean_inplace.hh delete mode 100644 scribo/text/extract_lines.hh delete mode 100644 scribo/text/merging.hh delete mode 100644 scribo/text/recognition.hh delete mode 100644 scribo/toolchain/nepomuk/text_extraction.hh delete mode 100644 scribo/upsampling/eagle.hh hooks/post-receive -- Olena, a generic and efficient image processing platform
14Â years, 10Â months
1
0
0
0
branch exp/milena-z updated: last-svn-commit-477-g53a57b1
by lazzaraï¼ lrde.epita.fr
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 updated via 53a57b1d3275c5b9fb41db4b706342d6a7df992d (commit) via cd5ea6ecd0a75ad2dbabd704490682aeceac68bd (commit) via 2925b324b1b9c0427600a0160cdc214a03d5e8ae (commit) via 04569a2bb109e39ae8d09530aaa526ad9ae2df49 (commit) via ebad60a1e78715afe0359a2837c5de517fa7a42b (commit) via 5bd441f8f01071c7c228837ceb8d9e401bc8f974 (commit) via d6e4a923e32eb749a66490fba62885a69b2fb4dd (commit) via a4a49108929edc4cd8c2d108da7ca821f6684b45 (commit) via ed4e74a2f51a69d580a46b155c9d319d7e7f603c (commit) via 63c77cdaa94cdbfd1ee3591675f729b74cc0371e (commit) via 621ebe718756448951c4362aa8dc5be8b84025da (commit) via c3d187edce3a706763c8e2bed355517e22037cf0 (commit) via a903e8dadd0bc8f76a36c846a6167903aac6c963 (commit) via 696503dfbe53631c3d16db408d7137a0d5b9c536 (commit) via b265090ab82ff960a5cd770b863eebb8eeee71be (commit) via c0c3a98d00d261f0b32c16083030be5dc05e79ff (commit) via bd5519ba780434acb1a52552f55c5c91806d5931 (commit) via 4d1677cf6f3b63d78da59159550988f17e61b93a (commit) via 951bfdd9cb60516e53abc0c961c046851174d37d (commit) via ca408292a71afa85aa76b568642f91729ebaae05 (commit) via 00d8fa3b631df334782cc755a0a1bbc3af1e8d35 (commit) via 6ca68abdb08224a001fbdd838a6bbffb58b902ba (commit) via a9958fa777ee5686c5a923311aab1caa793ab89a (commit) via be773a94ff966b4008cb3ce086bdaa3a679cf8a5 (commit) via 013ef3d7c8f41542dc327c3f86d3741476c61aa5 (commit) via 6793cca44120828368141b44d52d589d47c72f72 (commit) via f7bc7e130d7cd61342e2a1bd50433caf8dc251e2 (commit) via 3c2ce9bb05ba3502ded2bab10d64d19d10607874 (commit) via d34c8dd49b1cafb412ed6acbc9a7df856e744ada (commit) via d5c383adedab294cc3158789aae82a358ed9f8b3 (commit) via 59987833613195d29de390caf60ea67a6d05c63c (commit) via 6bf37e8533f6fe5e1ccb3db532ac2c75624a3973 (commit) via 0545aad9399df4de95f731d4ea7ff019e996efb0 (commit) via 324908fe7cfefc7e54ebab5419c195ba111adecc (commit) via 5ee999b4a272ce703a8441e19d21914ee24a325c (commit) via af62462e491439835ff02d83dd051209402b9e15 (commit) via 8fed6fb92cee676f1b08171261d1c3c3998affca (commit) via cb1501f56a94071aa6087845f47acbbb4e359487 (commit) via 4aec8b7df9701854f4a66a5759cba50d417e2477 (commit) via 6626ff4c9b970161a3afb4771f6b5d5d17cbc054 (commit) via 5a13b71e549e3e14f56c654c2cf8060668ee651d (commit) via 8bd912698276dec80d783a2a0d1c45934b7197d6 (commit) via c05d4df52ff6ff73eab3e75343e39a4bd59c25b6 (commit) via a0961e1c87e3d8b33fc3f956f4e5eabf1301e3f4 (commit) via 087715863927fde36a5c856fa87ba071c978a824 (commit) via 8283ce59a3fbee4679d7d5e6909ac69da6dc9565 (commit) via 8559cd77490d273ee43ab417b4b666aeb12a3f4b (commit) via 6b43c06339028b02542e0214c12a976d10f8b8d7 (commit) via 52112930338d0852964eba2a09f7984c04d3b29e (commit) via c3c62f2274a751f3cc0846f81d8f54c8c50192fb (commit) via 26c8584dbd90fb2668efe2cfe260eefc65201055 (commit) via 332c9acf642b9ab88ed466b1ad0e0500fc2c885c (commit) via 5ba287436f0ad7ae908f61e666e01ea6fbb546a0 (commit) via 6270c8c945def50f6fb12b95511567e27b04db24 (commit) via 290ccbee439ac1cfc9dbd0185b60260d10dbd206 (commit) via 9fffc8073f5ea86ae99a3b5ddd23d53d10cdb429 (commit) via aa19b0aaad96157c6cbc41fd92ceb07b8f370063 (commit) via 984412efeef78be23eb0f83ce6eb50bb36031a6e (commit) via d4ca44ab91728099a70f29b73f5eb3f83a487736 (commit) via 2ae99ffe384a9bdf63e59305fe1a77063a7a1c22 (commit) via e31b70169c431b1196afb6ae2b9eda6b94ec4e26 (commit) via 9e66b0bc8e1df4154fc7a4c6834a8db7b6c3af46 (commit) via ee180d60723b0718fa53cd7d936b8260acb93af2 (commit) via 4d14a475db1082c1096ed71973e2daa2793e2cf1 (commit) via fd16f7ee48f964437406d385b54ebb912e92ea25 (commit) via 092bb0461eb91af6bca23e29bda4bdbac316d3ec (commit) via 460f059870e591b8da8363f9905a8331352c81ff (commit) via 1a16089f970043d54c716705e22f87cde43ce263 (commit) via 7b2111843120f318b696b1b79bd2e900a7eeac4b (commit) via 58e82cd9f7d25b6aafb2085c4ace86d1819b5e1f (commit) via 218a6951a1b0d51f35faf440a0938ffc57e6fc69 (commit) via 2290b5c217d1aff34973686b4ca20ac907b088b1 (commit) via 3586ef11c3c314352893a9239f16679657d12d5f (commit) via 681f2578cf36e5d15de8744b5a7dd92bfdc4fc4c (commit) via 1307e9db8d14cfc6dff52604e561b71388e44f58 (commit) via 71f26fd56cb0b4ce501d5b268110a7cba2580c26 (commit) via ad5614ea5041d342b336310eb72fc632e85d92fe (commit) via 125df33ea1757903b9ae2078ff37cda45ab1fc0c (commit) via b9a5b97f58655d268aea57a5b3d625f8fedae6ee (commit) via d169338813844bac2932789235e76482922b0d5e (commit) via 241c2467d08dc42b87d25a93f2606c1d46d835d2 (commit) via f5c0ae5a9385033e13a8f7d639f26f7c3114854e (commit) via 7e1a2f88f9f363580adf64244448a04b2fed8588 (commit) via 31925d2882a55285b496a5efb040875eeceee85e (commit) via b15c1b6b4c6eb9cb7dda58a28bb93695feb7c463 (commit) via 288d44d51e20f1d602c0b6b2f2d3cadb5cc4ba1d (commit) via 4d87541b98ba8e496d125c80c83ad20fbfbb8fb3 (commit) via b57d26e949bf2f7993b86a1df34d12c0e27f581d (commit) via 17304c0d1e2e0f089a7fba4a319c85c401b78a71 (commit) via 5179913a9ef7ad087e49b617e185ea77bef3bd4e (commit) via 7c558b5f8ddad2675f221439e6cc05c131c41306 (commit) via fe92959d0b991dc4af32354a5aaecebe4a2496e7 (commit) via 5fa09b417ceab47852ce77832d504474b37911c0 (commit) via b4195d21051065f1793d03ac2fc8473979eb3d85 (commit) via f3987ed3d3aa9063ae36e632d59f56c0fed6ef71 (commit) via 7570d066d5b6867ec467c65577b856552eb7959f (commit) via b98887a266675d0408c9a5e206e01e8c05141350 (commit) via 07b0d845a4695de07897a0550f3cf88e90bf71ba (commit) via e9bf3efcc6957e3e0d0b37228e0060cee5315c66 (commit) via 26fd960b08963a21dcc2b55b6618bc0fb03f1721 (commit) via f8c67ca6812d33f6e758d02b52306be5337357ec (commit) via 34bcc24494086059cddc9563bfc74d7d41c92062 (commit) via 00152b7b89d4690e7e1fe0ac252096d834360917 (commit) via 53630924d3586513a4979ad9ba76ec975a7d4d6f (commit) via 65586d1b604614ab2072306198b2418b222901e6 (commit) via 8adc20194128cd40b88e9d531541067d9c07f90a (commit) via e6a836cee6c68ad1fb50e38754ac5c0a0a7c6236 (commit) via 993461bf6f0e721d96fd483df3c461a7f37c7ea5 (commit) via 60fefaa2e97f9a9dac00d2404fa4ce730cd171b0 (commit) via 4b0e1fb92f24d116e8df227786eae369f1b8f615 (commit) via 2f0e11309514214cd1be0c8c565183bd001cc1b6 (commit) via 224e84a64d1844494f71173a154fbec87927da4b (commit) via 81d685024b4321859625cf173903e176cbf6ecbe (commit) via 543d805e7b099357ba92802493be73e39a71687c (commit) via 2f5f4a438accd7aa52c3ac8d3550b70cef778c0e (commit) via 6b6d1440369b9cb9fc31c4453723e179d91ba842 (commit) via 98eedea5d6dcf8b4bfc9dfa309b57ce5dcbfd192 (commit) via 55a5c879876aa4d7e2b2326f426a3e048b386044 (commit) via 15c7c9c6fc5f10005d6965cd819f9d13dac7a8f7 (commit) via 79001a91319044fdabf9504d8a4b745824e3e91b (commit) via ff4fcc5ac88a15114fa027286af119fb49ae5a08 (commit) via 033b24976414aed9461ea4cb7e60e29fe95ff5b3 (commit) via ef48505d020f4fd2ba1e89482bf3a2e3a69d2b7c (commit) via be8a9483d08855d6475aafbcf6d7b99b4c2e7546 (commit) via 76ed491e0693668ef068eef740ea697eb17e9017 (commit) via 5d3b9dacc3b50f37a4fb09dd53d45c53dcdd59c4 (commit) via 5824c18c8dc04d028fac6a873aeaed17ae00ed07 (commit) via d7850dbc2fb6879dceacc355cf5f37f460e09313 (commit) via f8b5117d9ebdbb13855bdb4d4dcc1581e7bc82b1 (commit) via 9f19274a760e12dc9b2cbe7bdf5bfc9c466af5b8 (commit) via 5ca84d197b8742460dfda8b9435a02a79603ab0a (commit) via d12e77e06b9cfdb409a36b3f4fb65b09327acfdb (commit) via b3416b2f45e4e3ab0e853c2e73f1c670891e5d8d (commit) via 3591f2a690fbd20c6caaf51283ba96505e87c0c0 (commit) via 76dd7c37346ba9280d586e31b0ff558af2a44d90 (commit) via 71c9c144f233770f1b9652ba98d6137053e8ab47 (commit) via 91b205927506a09d3c921c4980da3b114617775d (commit) via 966f8d64839b0d13bdc608ef7f4c4247e984391a (commit) via f89278cf5b12300abe45d7bf8eb464c7bdb7fba7 (commit) via 3ca05868e71d080d12c18329019b2addbf83bec9 (commit) via f819edfc8980df439b1920cadc3893a2f8b4eee6 (commit) via ef51cf7f9dc8e6c3f1c064f881cc3b6b429e1c76 (commit) via a2d98b12b61ffbd0a4e7addb440888d86d5be8d5 (commit) via f5d28e908b41e8003fd401989b74b8c995a93192 (commit) via ab515db441e4825dcfb9601c6ac024c614ce1e45 (commit) via 6fb53567c35855b2ba1b61b1f9da6aba108a0471 (commit) via c7c49e9d4611785b6c4086e7098d684fefd690b8 (commit) via 0c7c2800580a76a371845addb361bd20498c396d (commit) via 0832aee891ff1c8f78abf0b6f3ce22cda88a258a (commit) via 6d82d878bff6d80604a7554a348ef8c1d06464ad (commit) via 999e60c6f834a03d4ad636052aca1a785501f673 (commit) via d3888a39df55beccc974bf4f556eb50e3b7057cb (commit) via 06903f8517a4560f544ccb343f011548011fa95f (commit) via ed6a220ec78c88954f73cee7258595b1a697a242 (commit) via 7fd561dd32cd4d3a32aa974642da054078513355 (commit) via 5c627b019540ecc6dbf4cb21630354289adf6f6b (commit) via 85cda080414cc6e05d8ee49246a2171eb7f4fbae (commit) via e8373a069ad3b882f9a927c8d318643645069c1e (commit) via 4bf89fb72cfe41e98d7df23be2cc79bb37173c39 (commit) via 0d502d0cf9f3571471768db4f3833b0701ef39a0 (commit) via ba369b62ba9d59fb093d4247284f2c437f42754e (commit) via 165770feeac77f1dfab40f3173c3e6e483709df1 (commit) via 4ef67060e4a70bf4af46d54548b4dafdbd04dcf9 (commit) via ace04a4f7d94756ce9a1f128c67b2a8cb840d549 (commit) via 51c347f97f743e56262f65acd5bc6658c2a99439 (commit) via 75c57adc2959683d4549bf36a0a12c08c1266760 (commit) via ceed614319364a103d4c7c15afd2ea2a3b6d2186 (commit) via ccc4a321e56015b6d2824f0f67236bdad14990c4 (commit) via 5758dd72a0d8fe7849e99ad6f5dbf6f0b97c1c6d (commit) via a32f582d8894e37cb18614521c262ab5ae49c1a7 (commit) via 635ff15ca3cc548f282d4bb96587bb6d3b2e8c7f (commit) via 70dedf8ba8537b7d8081641e15553637317f4e03 (commit) via 68624e4c54dd06c46428b7dd914bdbd1e8c06678 (commit) via a6a8d2a44d746824876f24c53af69f83036ddaf3 (commit) via 810f0413346986f6e7fc86f513ee1df28f142418 (commit) via 33ffff60e3846bf4499c3eafaa2dfd37791fb4e2 (commit) via 31216d34c0c51609cbe6921cd0d285701d583e3b (commit) via db55e631a5d4be26186cf58f23d63c9ae8a1a88e (commit) via 080134d6115e902c66ee0eb866008d7ad8e161f8 (commit) via 40d518005c478e2b5640a04019fdbf84c6858d27 (commit) via cbbdf4e015a418723730e0173ae88377ab365f1e (commit) via ff15d075512aadb2cfa4e99d36d3fa080809822f (commit) via 12ddb9702902e9c12be67d23fad1053e320f151e (commit) via b8aaebae9a034fa3b39de284bd2677801bc15471 (commit) via cbbbffd5c0c474d94fdab9e79c90e0ea92ec185c (commit) via 99e2b8fc744f5ab029cee5c4fa8eb465750101af (commit) via 41c82626a63b343f4d54e620c3055c1db6bf91de (commit) via 8c069f07986676a26ea14a1daa4e623d75302cbc (commit) via ca67a57fcb8149672ea524e5d20cab138c9147d6 (commit) via 21af64ad3a6645b7c1e7afa3347ba545911affa1 (commit) via 24e4f689ffc6598a646431b8344fe3c7b6c73da5 (commit) via 04aef4bf80daa8b02650ad3b2479dfea0bfa666c (commit) via 3b8335a122ff4d071759346847666d62c702f2b4 (commit) via ff1e5aae555fb905fa33369c85c94b0b0108feaf (commit) via c7cb9f3cfb759b353cb92e62c9154c0607b9faa8 (commit) via 28453cfc46940eb2fa4e6bf993d0378a97b396a3 (commit) via f256a61a4a6aaabab1806c9f644bfd0005c3e857 (commit) via 464d58f97a427e842a704e17a6c50ca6a88e11f5 (commit) via 9c5c48319714b54f41adc49d4b5417294e8b6079 (commit) via 9d7a1cca8578a712714a94258d081b1a4e3d5d95 (commit) via a184c8106407ea7b3ce30dc14b1d548ac93813f2 (commit) via b826d4152097bfcb1138f05f647862c69f739769 (commit) via 32401e08eb7edab00e58069690e7371af8346fdd (commit) via 622c2395fcf4ecd00991ba4dfda4eddc49604ba1 (commit) via 752d8cae10e26fae6500a073893aa6aad2c85403 (commit) via d02047f7f328aa892cb80f57374f3c6ba6a3fdc1 (commit) via 8d47be1577e975889b17016f2fda968d79780b57 (commit) via 548b72e33fc2b5352a5ca511693a5ae43fd94cba (commit) via 11701a0cb30bfb85d57a07a94e88485ebd7c0c4a (commit) via 53a98117e4a7985a38bf6b708d99069ba17353aa (commit) via b54300a5ba958e308a8ff9edb32f685247999e2a (commit) via 6143a5ecb90ebfec07d7f7e4605e086f7bc61f83 (commit) via 2c6947d729838521895b4ef091210d1f82ad66fa (commit) via 4dad6c9aa0df1dddd07a4fa53cecc05b7287ff4a (commit) via d10f1a65daf8af9a90af3c937226f5c4d5b4750a (commit) via b1a4d275224ac708a9b05dae7915a27109886cc9 (commit) via 9f724b07283be1b79455a1b1a80c87205db7415d (commit) via 6adbc43e3b823f9eeb385911e3a47e5ec8c963e9 (commit) via 4a19598794bc2ebec9d40f2bdd02afe17e9c4f85 (commit) via bfdea8debb5538103da4cc28ca092309850fd597 (commit) via 69ce9faae9f4efb9de5b7f0bb413e467d6b10882 (commit) via 2b5bd163c6290a5e6125b338212ac97bc5963dce (commit) via 94486e40acf3355b24eece538313f3ec9edd5f20 (commit) via 916df4279f248a6fb5c85a129229f57e71f036eb (commit) via 664b361a5b75efba6b472d1028abad8d267c3628 (commit) via 9ced0495ec829f942f3abffe7077d472efff96f6 (commit) via d53b4271ddc93c8fa098f4ef4c2fc7432f808357 (commit) via 17734ea5b269b3a71fc2138a270454a80b0ed6ae (commit) via 4c42b800077d0dda5fde111d0e4761661c9a52c3 (commit) via 68d80d9e1c6f2b66a45e6bb107c7697871386426 (commit) via e30e6d746ca7e83560ad0e2a52324f0af553255d (commit) via d843b6cdad0df4b25e11da900abe87f67153ab65 (commit) via 81ebf3143f310e04f99738afb8b5ad9cbc39eaa7 (commit) via 04e7d8027ac1a88bc151aa0174a3b1ee572c4e4b (commit) via c260d597d0718762ff60972c3a9834f5f1a9db8f (commit) via 7b351ecac19fd1c42ae0382ef7179496a1e565c8 (commit) via ab8bd495b70c9c78f8fc13f1df545d487fc94217 (commit) via 5ba9288148acd3aecef5df8ec260e51887375d87 (commit) via 72a1d9cca4425b195b9132e2bd645274f52c765a (commit) via 62982aae637e6591a4f4ae8f52f04f507691ab80 (commit) via 2891ae779a6ddf363a34ad8188fdda31b8e06849 (commit) via 8d9ad1b2347654f006683e0779bffd5c5fde7734 (commit) via 24633b4c8980ac4c3f2dd7a0befbed515c3c6f48 (commit) via 8c7a1809a808addffc3ae397f0d0f1e21d242fbc (commit) via c8a3721c86de58f063888f0aeedd6197530d1ce0 (commit) via 8e148a2f3b871d60de12d627f02fc01ed7ac4331 (commit) via f1a7757aa73b3bac1c64ecb1e124633a055f4752 (commit) via 153c751d590f7825fb11427de07c890ad3dd95eb (commit) via afefd84215fa6e4c673fd0b1a3a8311ac8ea82ff (commit) via 6dd7d249daae01e8ed82f836aa2f88c4a5833d8e (commit) via 68b860f7623d03ea9815fd652300bee661351bdc (commit) via 1441b0f7b0a2ec10f6009d8ca9e97f2c6c64decd (commit) via 7c82d9a99dfcdb3c3d9a0e4beb9269ec966fa3aa (commit) via d0cba60a39189a796f76cef7ed7e0ae53ce637a8 (commit) via b77547a34bcd0b5c26ff733de1347334d89b2496 (commit) via 25eb4fe6f1b8d6217dcfded1ba138b1abb0e4b07 (commit) via 77c420e02087c7499fa59caaa8c2c6cf8b27e84c (commit) via 103e1e747ab4e16f95f94e3742b3d21b9d637354 (commit) via 5a5ceb89dd3811caae3296fce041a47c5a45564d (commit) via 03908bb38ac692efdb3ce76c8e56bc86a2ee2334 (commit) via a1b86103434c66825a1a089e7bc039f62761b692 (commit) via 10c5d398cd691716db99d2ab6f78d48f7762a75d (commit) via 66a288802969285cb0bdf97c4737c47db786e02c (commit) via 12dd47935880554c3a3cf24db5cd06de2413ae45 (commit) via e4a1fc8155fbff94835c50f7208de3d9b8c5477a (commit) via 5bb93504bd963799300af770178dee12c8cd487c (commit) via 5d5c643d6beaaf64eda9f0e0634f0ffda72cc886 (commit) via b59137ab61cc11a7d9fa58fd6e87168dda9e9b57 (commit) via 15608e30b32328403b14f4602f87b85c8d56af02 (commit) via cb0b452338b03e470cdec5b68d41b99f75ee9975 (commit) via 4502becc0a7c74d9c36df8b2f607855cb18c77fa (commit) via fe084d58f31ef12a5aac620164c35878ad4f36ce (commit) via 5025e33455e29e74226406c7ceebbcd0cdd17fa5 (commit) via b6b3517c054e387bef3d3a3c371de9b5cdf859fc (commit) via 942c6a807a7881b4115ab63232d39fc42730c6fb (commit) via 422b78ec70dc819e3f9ccb81b7aefed7e413790c (commit) via e8f81c85019744c6c9b993469dfb9da58fc7f13e (commit) via defd509888b0234193712b39f34095952366b72d (commit) via 8116ef19fc52af21a79189f607bce880b600ade5 (commit) via 4faa18c9479d0f5fa0b1780431327141396731ec (commit) via c0a26759095070ff5a69a8c508d7574b6c12b2a5 (commit) via 2199e6c6df1b10ac78e84405273befe20fa6eb96 (commit) via 390b09559fc9faf1131b057fdc12931e33430556 (commit) via c94f5179c33d27d1c3aaf46804e48d5710baeafc (commit) via e5e506be9a2edf6a0d5c184dc2fd0efee09b29c1 (commit) via d637b9962218aa697776ef9bdc509e7e50da0644 (commit) via 084fcc94307783b55e2b77f2d8217ffc68b65702 (commit) via 67c299f41df3d45fd0d6a8e3c777631367626dbe (commit) via 9196858aa3f15eba540420164e21bf929a3f2f53 (commit) via c0e0ae6fee6b9e6e6092647e1a942f1b2e9336c8 (commit) via 642d87acb6320ca145bab0149ee04cef2e3d976b (commit) via 2c4e1e1dd3e2df60cc57a9e0917b5e509fb583ef (commit) via b599cccfd46f95c9337b526e0b172e019aaaa5cb (commit) via 4ee83123b5ef3dd0ba1a0b47ad345aeae3852f22 (commit) via 9b894672a7c13f2f2720d5a425981524e92d707b (commit) via 6c5106c0a059bc80a2abed23021f450335386f1b (commit) via fca542826e4bf7909f343cdcd6a75ed3c7afc478 (commit) via 55f2622b2ccce58bee6d912ee92cb33c873a5392 (commit) via 2152dd039b5e78eaeb179cf19d640aef81ef3330 (commit) via 19eee8ed618cf36f4803e2d3ab823c8e3682fd39 (commit) via ba6a3f88edc827a030919df1ead7b16621008063 (commit) via a4d6bc84bb23a0b58e2e612124876e3dcc1a3f78 (commit) via 8293184f19cedcb42b8a33da195def597db06e6a (commit) via 6b0e5460e1c05d98beb1166a410c5919cc802348 (commit) via 7fe9e76d1693fecdc0f0de4bdcfa62297935561a (commit) via 3fac2c7d82a1bf409d3c012b10f6f98de8f36d97 (commit) via 3e079f7e60ae9d34b471db83a37709ea586166d5 (commit) via 82f86bd0049463e4f53af83742d0d63245825448 (commit) via 55cb496c91c19c956241762d43bca9bc2c522517 (commit) via 378fc00cc34856163226061563ff0cf2f26ac186 (commit) via 8a2626d805c214e0847639c112bc0c19be991033 (commit) via 5ef318c063365486ceacc847858bdfd23d93aaf1 (commit) via 8aae86da7f075b92c9872a0a4e6b2d45c4054b52 (commit) via a8e00b1cee3271cc86191b9cb18103d8f00ed781 (commit) via e89fc5123b67bba9bf2a778a4ceed26ca95132d4 (commit) via 365cdb48620a38fbea0f1b4af15e73935b938e25 (commit) via 1d9cee32593cff25aa6ef8cefc75add9bfd2038f (commit) via 3b9b30f42413743de6a5e868d6aa428f9c6f4f52 (commit) via c16f093945ae2a974a36964501b16d74733fe210 (commit) via f23d9cf9c311e552731dd144af75ac7dcaf92a27 (commit) via d76722cb4eb8feb47c6fa1b5f073b11f421a8194 (commit) via 073d3d953a4c0844363cd495462a7bef70c877b0 (commit) via e126d4ccdf50168c2439913eb47f746cc75b727c (commit) via 4e0645dc40c3b3f66df8ffb1445b47b80fad8a76 (commit) via 63aa7224f25656693c22d5f402f74b62c47728ee (commit) via 428990430d4af2b2f26b1dc6ae4ed3f2dd515c07 (commit) via a1b9977eb88d0b4608a7794031bf04c572f8f2e1 (commit) via 15b0083c5c39692271a1d9690f163598b399c655 (commit) via 71903ba675c551e3bd9073f706c4aaf961da00ce (commit) via fb074a9399bfe05e35a743437e0cd281c557db6e (commit) via f9e6be6b4b26d40873ff9cb309707f12c0ce64a5 (commit) via ab842943d315f2e78e9da8fd3ff79a381d73bc18 (commit) via 6e6e5b7d2ee1be09e8cc6978f41bf3c638028808 (commit) via 2038fc7a5be0586d14916be9980dbf1e897dc64a (commit) via c8e9fa84800ed8848e10366224fa26cdee00345d (commit) via a4af792177bc1187beb2eb1c55c5a2fa5e9a6f87 (commit) via 5440f59412f4158b3c1d73d5fbe77b935ff674ba (commit) via 03ae101e2638983b87f7d49f0cefbdc68e55dc94 (commit) via 512f054e50de04f6d163144a9c1f272dbd047078 (commit) via 0f9327c948c0cf9933a967499150f492fe63094f (commit) via f5190eace449936c1b96389dc249e5605c5abc74 (commit) via 38d31738f248e2aa8b91e4d6608851e1e9476e74 (commit) via d9fedc37413c7aeed75e85fb7c12e906f980aa5a (commit) via 42bc78f899ef2b8f2ea8100b7344c1ebe1ffc911 (commit) via f94a9b43d47fb921845f6ae5ca58cfb1ecd91062 (commit) via 40ff74388c63c2c13d24529249817f9f60d4a703 (commit) via 2e0e1ee3f937ed7de3144df16f00a0e71a70cfb7 (commit) via 2d20a625dd7aadf2e469e5e9837ff903fbbdf79f (commit) via 01ee98f52063896dac40a1e85687259b38429916 (commit) via d510e3e555ae4614d51d8d2fc692753e6cf8626b (commit) via 92124b54d54f4f85169698560e99c82387a66ce8 (commit) via 3e3486096f0f6ba002f6374dafc2fe2a69704493 (commit) via 873492a24aa0368a80567448e46dd05b25d438e0 (commit) via 0f1307f3571fb35b1782ae1f659b48aaeab842fe (commit) via 2e5cd0954a7b9383106589ae907f0271636e85bc (commit) via 6bfa9af7a48fb9674db992197a9a348c1175019f (commit) via cae77fdc1dbd50993c91117ee6e09e6e7c66377c (commit) via 76860ade539a188320cf749486d8d9a646eeead9 (commit) via 9dd6263a3e2212c4841d2de989de00382fa02185 (commit) via e0ecffb4c67d8b01e9ab1dbc6185647d55315663 (commit) via 69c0a1da93b5d8d9287a87b528679c36db331113 (commit) via dc704d34907ddbc7256ac48c4c27d01a258edf20 (commit) via 2aade6999e6deedf85c6b0201e502c1e51492bfb (commit) via ae7290b1239a974997e9caa8f99fef0d89fcca8e (commit) via a4ff06b6a32b65a7e12d8b79fe07fe15939e86ea (commit) via 50d2dc67f522262edccc662bddaaf6ba7fee417a (commit) via 1743cdc3a9ec1175eb556382c484858681c6cebd (commit) via c98d4ae07afc6e2eee02a95b0bdd6825f58ee6c3 (commit) via 7f55f7c8208591422b98ef0d8dbf73738b564ebd (commit) via 9ae11a0ca2f57fefd5c3e15a6c98ee7f11b22f1a (commit) via f382e4a24e8376645c7bf4aac2cfec4f933413c9 (commit) via 808c4e8be9333d74ac480ce7773c2c44af50abc3 (commit) via a32de0fdcfb1292f0eebd37857eeda829acb1bcc (commit) via e44073ea19332cde2bdd69ea5eb515d4cfc0e140 (commit) via fbe0b7f5ec449ab79dfad0b4d285a745f625e41e (commit) via 851beeb4d1256b38ff6d57b2c0f2944fd0479db2 (commit) via 77004f3748794e5990deca22ecbafb173fd44eef (commit) via 08a77f75484a3b12fcee2cf1f1970aefad936362 (commit) via 501c45e68c71fc00982b8b21a629d7b6757272cc (commit) via f9ac5d4d841e31df0aa208435d302202852a9a6b (commit) via c81c18f8fda28be370e9d8a01f2b1162db514c8d (commit) via 1c31ba76b4a505703f466e7d91eecc87437526a2 (commit) from c5e55142e34779d78be4944489e03949fa03551f (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- No new revisions were added by this update. ----------------------------------------------------------------------- Summary of changes: AUTHORS | 27 +- ChangeLog | 456 +++++ HACKING | 95 + INSTALL | 469 +++-- Makefile.am | 17 +- README | 223 ++- bootstrap | 122 +- build-aux/Makefile.am | 12 +- build-aux/build_unit_test.sh | 201 ++- build-aux/devtools.sh | 16 + build-aux/devtools_utils.sh | 16 + build-aux/extra-recursive-targets.mk | 23 +- build-aux/generate_dist_headers.sh | 17 + build-aux/make_report_utils.sh | 18 +- build-aux/regen-recursive.mk | 27 +- build-aux/tex.mk | 47 + build-aux/texi2dvi | 1959 +++++++++++++++++++ configure.ac | 443 ++++- external/Makefile.am | 3 - external/trimesh/ChangeLog | 21 +- external/trimesh/Makefile.am | 19 - external/trimesh/configure.ac | 3 - external/trimesh/gluit/Makefile.am | 19 - external/trimesh/gluit/gluit.mk | 2 +- external/trimesh/include/Makefile.am | 19 - external/trimesh/libsrc/Makefile.am | 19 - external/trimesh/utilsrc/Makefile.am | 19 - lrde-upload.sh | 116 +- m4/autotroll.m4 | 4 +- m4/boost.m4 | 1038 ++++++++++ m4/oln-with-lib.m4 | 20 +- m4/pkg.m4 | 155 ++ m4/with-swilena.m4 | 112 -- milena/ChangeLog | 1895 ++++++++++++++++++ milena/Makefile.am | 14 +- .../test-constrained-connectivity.in | 16 + milena/apps/graph-morpho/Makefile.am | 4 +- milena/apps/graph-morpho/convert.hh | 7 +- milena/apps/graph-morpho/morpho.hh | 31 +- milena/apps/mesh-segm-skel/Makefile.am | 17 +- milena/apps/mesh-segm-skel/io.hh | 2 + .../test-mesh-complex-max-curv-segm.in | 16 + .../mesh-segm-skel/test-mesh-complex-max-curv.in | 16 + .../apps/mesh-segm-skel/test-mesh-complex-segm.in | 16 + .../apps/mesh-segm-skel/test-mesh-complex-skel.in | 16 + milena/apps/mesh-segm-skel/test-mesh-max-curv.in | 16 + milena/apps/mesh-segm-skel/test-mesh-segm.in | 16 + milena/apps/papers/levillain.09.ismm/Makefile.am | 5 +- milena/doc/.gitignore | 45 +- milena/doc/Doxyfile.in | 50 +- milena/doc/Makefile.am | 915 +++++++--- milena/doc/doc.mk | 36 - milena/doc/examples-outputs.mk | 919 +++++++++ milena/doc/examples.mk | 85 + milena/doc/examples/Makefile.am | 274 --- ...nstanciation.cc => accu-right-instantiation.cc} | 0 ...tion.cc.raw => accu-wrong-instantiation.cc.raw} | 0 milena/doc/examples/examples.mk | 125 -- milena/doc/examples/fill-imageif-cfun.cc | 2 +- milena/doc/examples/ima-load.cc | 8 +- milena/doc/examples/ima-save.cc | 8 +- milena/doc/examples/ima2d-rot.cc | 7 +- milena/doc/examples/labeling-compute.cc | 3 +- ...-1.cc.raw => accu-right-instantiation-1.cc.raw} | 0 milena/doc/examples/split/ima-load-1.cc.raw | 2 +- milena/doc/examples/split/ima-save-1.cc.raw | 2 +- milena/doc/examples/split/ima2d-rot-1.cc.raw | 4 +- milena/doc/examples/tuto3/println.cc | 10 +- milena/doc/examples/tuto4/image.cc | 4 +- milena/doc/examples/tuto4/site_set_create.cc | 14 +- milena/doc/figures.mk | 188 ++ milena/doc/figures/figures.mk | 41 - milena/doc/figures/fill-subdomain-2.ppm | Bin 206 -> 206 bytes milena/doc/figures/fill-subdomain-3.ppm | Bin 206 -> 206 bytes milena/doc/{white_paper => }/figures/house.png | Bin 26653 -> 26653 bytes milena/doc/{white_paper => }/figures/house_rag.png | Bin 9454 -> 9454 bytes .../doc/{white_paper => }/figures/house_wshed.png | Bin 27668 -> 27668 bytes .../figures/house_wshed_mean_colors.png | Bin 6618 -> 6618 bytes milena/doc/figures/labeling-compute-2.ppm | Bin 206 -> 206 bytes .../figures => figures/technical}/file_layout.pdf | Bin 26680 -> 26680 bytes .../figures => figures/technical}/file_layout.png | Bin 117801 -> 117801 bytes milena/doc/figures/tuto3_colorize-2.ppm | Bin 191 -> 191 bytes .../figures/tuto4_genericity_and_algorithms-1.ppm | Bin 12406 -> 12406 bytes .../figures/tuto4_genericity_and_algorithms-5.ppm | Bin 12406 -> 12406 bytes .../figures/tuto4_genericity_and_algorithms-7.pgm | 6 - .../figures/tuto4_genericity_and_algorithms-7.ppm | Bin 24696 -> 0 bytes .../figures/tuto4_genericity_and_algorithms-8.pgm | 6 - .../figures/tuto4_genericity_and_algorithms-8.ppm | 6 - .../figures/tuto4_genericity_and_algorithms-9.pgm | 6 - .../figures/tuto4_genericity_and_algorithms-9.ppm | 6 - milena/doc/gen-examples-outputs-mk | 71 + milena/doc/gen-figures-mk | 192 ++ milena/doc/gen-make-variable | 52 + milena/doc/gen-split-examples-mk | 136 ++ milena/doc/gen-split-outputs-mk | 140 ++ milena/doc/graphicx.hva | 19 + milena/doc/img/small.pbm | 1 + milena/doc/outputs.mk | 54 + ...tanciation.txt => accu-right-instantiation.txt} | 0 .../doc/outputs/{ima2d-decl-2.txt => ima-load.txt} | 0 milena/doc/outputs/outputs.mk | 69 - .../tuto3_first_routine.txt} | 0 ...ccu-right-instanciation.txt => tuto4_image.txt} | 0 milena/doc/programs-examples.mk | 147 ++ milena/doc/ref-guide.tex | 2024 ++++++++++++++++++++ milena/doc/ref_guide/Makefile.am | 112 -- milena/doc/ref_guide/ref_guide.tex | 2024 -------------------- milena/doc/split-examples.mk | 916 +++++++++ milena/doc/split-outputs.mk | 60 + .../designs/properties/values.txt | 0 .../designs/site_psite_piter/README | 0 milena/doc/technical.tex | 234 +++ milena/doc/technical/Makefile.am | 112 -- milena/doc/technical/technical.tex | 234 --- milena/doc/tools/clearbanner.sh | 16 + milena/doc/tools/data.hh.in | 37 + milena/doc/tools/sample_utils.hh | 13 +- milena/doc/tools/split_sample.sh | 21 +- milena/doc/tools/todoxygen.sh | 50 +- .../doc/{tutorial => tutorial.old}/design/Makefile | 0 .../{tutorial => tutorial.old}/design/design.tex | 0 .../design/include/imagetours.tex | 0 .../design/include/properties.tex | 0 .../{tutorial => tutorial.old}/doxyfile_tuto.local | 0 .../doc/{tutorial => tutorial.old}/image_types.txt | 0 .../{tutorial => tutorial.old}/image_values.txt | 0 .../doc/{tutorial => tutorial.old}/images_tour.txt | 0 milena/doc/{tutorial => tutorial.old}/slides.tex | 0 milena/doc/{tutorial => }/tutorial.tex | 0 milena/doc/tutorial/Makefile.am | 111 -- .../white_paper.tex => white-paper.tex} | 0 milena/doc/white_paper/Makefile.am | 115 -- milena/headers.mk | 32 +- milena/img/BUG_lean_ascii.pgm.gz | Bin 75726 -> 0 bytes milena/mesh/Makefile.am | 5 +- milena/mln/accu/compute.hh | 6 +- milena/mln/accu/count_value.hh | 26 +- milena/mln/accu/internal/base.hh | 4 +- milena/mln/accu/math/sum.hh | 3 +- milena/mln/accu/tuple.hh | 13 +- milena/mln/canvas/labeling/video.hh | 8 +- milena/mln/convert/from_to.hxx | 14 + 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 | 56 +- milena/mln/convert/to_qimage_nocopy.hh | 6 +- milena/mln/core/alias/window2d.hh | 3 +- milena/mln/core/concept/gpoint.hh | 2 +- milena/mln/core/concept/object.hh | 4 +- milena/mln/core/image/edge_image.hh | 8 +- milena/mln/core/image/image1d.hh | 6 +- milena/mln/core/image/imorph/labeled_image.hh | 4 +- milena/mln/core/image/vertex_image.hh | 8 +- milena/mln/core/point.hh | 189 ++- milena/mln/data/paste_without_localization.hh | 1 + milena/mln/draw/dashed_line.hh | 2 +- milena/mln/fun/n2v/white_gaussian.hh | 4 +- milena/mln/fun/v2v/rgb_to_int_u.hh | 7 +- milena/mln/fun/v2v/saturate.hh | 9 +- 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/rotate.hh | 93 +- milena/mln/io/dicom/get_header.hh | 7 + milena/mln/io/dump/get_header.hh | 1 + milena/mln/io/fld/load.hh | 13 +- milena/mln/io/fld/max_components.hh | 32 +- milena/mln/io/fld/save.hh | 10 +- milena/mln/io/fld/write_header.hh | 16 +- milena/mln/io/magick/load.hh | 42 +- milena/mln/io/magick/save.hh | 33 +- milena/mln/io/raw/get_header.hh | 1 + milena/mln/labeling/blobs_and_compute.hh | 3 + milena/mln/labeling/flat_zones.hh | 34 +- milena/mln/labeling/value.hh | 16 +- milena/mln/labeling/value_and_compute.hh | 241 +++ milena/mln/linear/ch_convolve.hh | 9 +- milena/mln/make/edge_image.hh | 27 +- milena/mln/subsampling/antialiased.hh | 3 +- .../mln/topo/internal/complex_set_iterator_base.hh | 14 +- milena/mln/util/edge.hh | 30 +- milena/mln/util/graph.hh | 25 +- milena/mln/util/line_graph.hh | 20 +- milena/mln/util/vertex.hh | 26 +- milena/mln/value/qt/rgb32.hh | 3 +- milena/mln/value/rgb.hh | 56 +- milena/sandbox/ChangeLog | 578 ++++++ milena/sandbox/bench/fastest.cc | 351 ++++ .../green/bench/transform/distance/Makefile.am | 150 ++ .../green/bench/transform/distance/distance.cc | 775 ++++++++ .../sandbox/green/demo/annotating/bic/Makefile.am | 150 ++ milena/sandbox/green/demo/annotating/bic/bic.cc | 87 + .../sandbox/green/demo/annotating/hsv/Makefile.am | 152 ++ milena/sandbox/green/demo/annotating/hsv/hsv.cc | 607 ++++++ .../sandbox/green/demo/annotating/lep/Makefile.am | 150 ++ milena/sandbox/green/demo/annotating/lep/lep.cc | 92 + .../green/demo/annotating/nb_color/Makefile.am | 150 ++ .../green/demo/annotating/nb_color/nb_color.cc | 101 + .../green/demo/annotating/project/Makefile.am | 150 ++ .../green/demo/annotating/project/project.cc | 210 ++ .../green/demo/annotating/rgb_64/Makefile.am | 150 ++ .../sandbox/green/demo/annotating/rgb_64/rgb_64.cc | 47 + .../green/demo/annotating/rgb_64_9/Makefile.am | 150 ++ .../green/demo/annotating/rgb_64_9/rgb_64_9.cc | 97 + .../green/demo/annotating/stddev_color/Makefile.am | 150 ++ .../demo/annotating/stddev_color/stddev_color.cc | 124 ++ .../demo/annotating/stddev_color_16/Makefile.am | 150 ++ .../annotating/stddev_color_16/stddev_color_16.cc | 178 ++ .../histo2d => clustering/kmean_rgb}/Makefile.am | 0 .../green/demo/clustering/kmean_rgb/kmean_rgb.cc | 91 + .../demo/labeling/regional_maxima/Makefile.am | 2 + .../labeling/regional_maxima/regional_maxima.cc | 906 +++++++-- .../demo/labeling/regional_maxima/thresholds.txt | 42 + milena/sandbox/green/doc/annotating/class.txt | 42 + .../green/doc/annotating/syntheseMillet2008.txt | 283 +++ milena/sandbox/green/doc/annotating/testMillet2008 | 69 + .../doc/regional_maxima/cmp_method/h0_input.pgm.gz | Bin 0 -> 18078 bytes .../doc/regional_maxima/cmp_method/h2_mean.pgm.gz | Bin 0 -> 374 bytes .../doc/regional_maxima/cmp_method/h2_merge.pgm.gz | Bin 0 -> 4491 bytes .../doc/regional_maxima/cmp_method/h3_mean.pgm.gz | Bin 0 -> 391 bytes .../doc/regional_maxima/cmp_method/h3_merge.pgm.gz | Bin 0 -> 10188 bytes .../doc/regional_maxima/cmp_method/h4_mean.pgm.gz | Bin 0 -> 367 bytes .../doc/regional_maxima/cmp_method/h4_merge.pgm.gz | Bin 0 -> 18078 bytes .../doc/regional_maxima/cmp_method/h5_mean.pgm.gz | Bin 0 -> 372 bytes .../doc/regional_maxima/cmp_method/h5_merge.pgm.gz | Bin 0 -> 12777 bytes .../doc/regional_maxima/cmp_method/i2_mean.ppm.gz | Bin 0 -> 566650 bytes .../doc/regional_maxima/cmp_method/i2_merge.ppm.gz | Bin 0 -> 1586150 bytes .../doc/regional_maxima/cmp_method/i3_mean.ppm.gz | Bin 0 -> 573407 bytes .../doc/regional_maxima/cmp_method/i3_merge.ppm.gz | Bin 0 -> 3050979 bytes .../doc/regional_maxima/cmp_method/i4_mean.ppm.gz | Bin 0 -> 663621 bytes .../doc/regional_maxima/cmp_method/i4_merge.ppm.gz | Bin 0 -> 3387044 bytes .../doc/regional_maxima/cmp_method/i5_mean.ppm.gz | Bin 0 -> 653140 bytes .../doc/regional_maxima/cmp_method/i5_merge.ppm.gz | Bin 0 -> 3217839 bytes .../doc/regional_maxima/cmp_method/l2_input.pgm.gz | Bin 0 -> 423612 bytes .../doc/regional_maxima/cmp_method/l3_input.pgm.gz | Bin 0 -> 420801 bytes .../doc/regional_maxima/cmp_method/l4_input.pgm.gz | Bin 0 -> 486206 bytes .../doc/regional_maxima/cmp_method/l5_input.pgm.gz | Bin 0 -> 479055 bytes .../regional_maxima/cmp_method/reponse_theo.eml | 106 + .../doc/regional_maxima/cmp_method/s2_histo.txt | 31 + .../doc/regional_maxima/cmp_method/s3_histo.txt | 31 + .../doc/regional_maxima/cmp_method/s4_histo.txt | 31 + .../doc/regional_maxima/cmp_method/s5_histo.txt | 31 + .../doc/regional_maxima/cmp_method/synthese.txt | 223 +++ .../doc/regional_maxima/cmp_quant/h0_input.pgm.gz | Bin 0 -> 18078 bytes .../regional_maxima/cmp_quant/h5_mean_q2.pgm.gz | Bin 0 -> 247 bytes .../regional_maxima/cmp_quant/h5_mean_q3.pgm.gz | Bin 0 -> 280 bytes .../regional_maxima/cmp_quant/h5_mean_q4.pgm.gz | Bin 0 -> 319 bytes .../regional_maxima/cmp_quant/h5_mean_q5.pgm.gz | Bin 0 -> 375 bytes .../regional_maxima/cmp_quant/h5_mean_q6.pgm.gz | Bin 0 -> 392 bytes .../regional_maxima/cmp_quant/h5_mean_q7.pgm.gz | Bin 0 -> 383 bytes .../regional_maxima/cmp_quant/h5_mean_q8.pgm.gz | Bin 0 -> 470 bytes .../regional_maxima/cmp_quant/h5_merge_q2.pgm.gz | Bin 0 -> 18081 bytes .../regional_maxima/cmp_quant/h5_merge_q3.pgm.gz | Bin 0 -> 18081 bytes .../regional_maxima/cmp_quant/h5_merge_q4.pgm.gz | Bin 0 -> 16358 bytes .../regional_maxima/cmp_quant/h5_merge_q5.pgm.gz | Bin 0 -> 12780 bytes .../regional_maxima/cmp_quant/h5_merge_q6.pgm.gz | Bin 0 -> 9694 bytes .../regional_maxima/cmp_quant/h5_merge_q7.pgm.gz | Bin 0 -> 6211 bytes .../regional_maxima/cmp_quant/h5_merge_q8.pgm.gz | Bin 0 -> 1564 bytes .../regional_maxima/cmp_quant/i5_mean_q2.ppm.gz | Bin 0 -> 112779 bytes .../regional_maxima/cmp_quant/i5_mean_q3.ppm.gz | Bin 0 -> 191264 bytes .../regional_maxima/cmp_quant/i5_mean_q4.ppm.gz | Bin 0 -> 298062 bytes .../regional_maxima/cmp_quant/i5_mean_q5.ppm.gz | Bin 0 -> 653143 bytes .../regional_maxima/cmp_quant/i5_mean_q6.ppm.gz | Bin 0 -> 807617 bytes .../regional_maxima/cmp_quant/i5_mean_q7.ppm.gz | Bin 0 -> 813222 bytes .../regional_maxima/cmp_quant/i5_mean_q8.ppm.gz | Bin 0 -> 861711 bytes .../regional_maxima/cmp_quant/i5_merge_q2.ppm.gz | Bin 0 -> 3387047 bytes .../regional_maxima/cmp_quant/i5_merge_q3.ppm.gz | Bin 0 -> 3387047 bytes .../regional_maxima/cmp_quant/i5_merge_q4.ppm.gz | Bin 0 -> 3355365 bytes .../regional_maxima/cmp_quant/i5_merge_q5.ppm.gz | Bin 0 -> 3217842 bytes .../regional_maxima/cmp_quant/i5_merge_q6.ppm.gz | Bin 0 -> 3033730 bytes .../regional_maxima/cmp_quant/i5_merge_q7.ppm.gz | Bin 0 -> 2295150 bytes .../regional_maxima/cmp_quant/i5_merge_q8.ppm.gz | Bin 0 -> 1319396 bytes .../regional_maxima/cmp_quant/l5_input_q2.pgm.gz | Bin 0 -> 83951 bytes .../regional_maxima/cmp_quant/l5_input_q3.pgm.gz | Bin 0 -> 143817 bytes .../regional_maxima/cmp_quant/l5_input_q4.pgm.gz | Bin 0 -> 220346 bytes .../regional_maxima/cmp_quant/l5_input_q5.pgm.gz | Bin 0 -> 479058 bytes .../regional_maxima/cmp_quant/l5_input_q6.pgm.gz | Bin 0 -> 593359 bytes .../regional_maxima/cmp_quant/l5_input_q7.pgm.gz | Bin 0 -> 600121 bytes .../regional_maxima/cmp_quant/l5_input_q8.pgm.gz | Bin 0 -> 630760 bytes .../doc/regional_maxima/cmp_quant/s5_histo_q2.txt | 3 + .../doc/regional_maxima/cmp_quant/s5_histo_q3.txt | 8 + .../doc/regional_maxima/cmp_quant/s5_histo_q4.txt | 18 + .../doc/regional_maxima/cmp_quant/s5_histo_q5.txt | 33 + .../doc/regional_maxima/cmp_quant/s5_histo_q6.txt | 33 + .../doc/regional_maxima/cmp_quant/s5_histo_q7.txt | 32 + .../doc/regional_maxima/cmp_quant/s5_histo_q8.txt | 75 + .../doc/regional_maxima/cmp_quant/synthese.txt | 205 ++ .../mp00411c/colormap_all_q4.txt.gz | Bin 0 -> 187 bytes .../mp00411c/colormap_all_q5.txt.gz | Bin 0 -> 420 bytes .../mp00411c/colormap_thick_q4.txt.gz | Bin 0 -> 159 bytes .../mp00411c/colormap_thick_q5.txt.gz | Bin 0 -> 352 bytes .../mp00411c/colormap_thin_q4.txt.gz | Bin 0 -> 173 bytes .../mp00411c/colormap_thin_q5.txt.gz | Bin 0 -> 366 bytes .../regional_maxima/mp00411c/histo_all_q4.dump.gz | Bin 0 -> 1233 bytes .../regional_maxima/mp00411c/histo_all_q5.dump.gz | Bin 0 -> 4779 bytes .../mp00411c/histo_thick_q4.dump.gz | Bin 0 -> 781 bytes .../mp00411c/histo_thick_q5.dump.gz | Bin 0 -> 2532 bytes .../regional_maxima/mp00411c/histo_thin_q4.dump.gz | Bin 0 -> 901 bytes .../regional_maxima/mp00411c/histo_thin_q5.dump.gz | Bin 0 -> 2976 bytes .../doc/regional_maxima/mp00411c/iz_all_q4.dump.gz | Bin 0 -> 659040 bytes .../doc/regional_maxima/mp00411c/iz_all_q5.dump.gz | Bin 0 -> 1505619 bytes .../regional_maxima/mp00411c/iz_thick_q4.dump.gz | Bin 0 -> 482831 bytes .../regional_maxima/mp00411c/iz_thick_q5.dump.gz | Bin 0 -> 1414258 bytes .../regional_maxima/mp00411c/iz_thin_q4.dump.gz | Bin 0 -> 647722 bytes .../regional_maxima/mp00411c/iz_thin_q5.dump.gz | Bin 0 -> 1458415 bytes .../mp00411c/labeled_all_q4.dump.gz | Bin 0 -> 149 bytes .../mp00411c/labeled_all_q5.dump.gz | Bin 0 -> 343 bytes .../mp00411c/labeled_thick_q4.dump.gz | Bin 0 -> 149 bytes .../mp00411c/labeled_thick_q5.dump.gz | Bin 0 -> 309 bytes .../mp00411c/labeled_thin_q4.dump.gz | Bin 0 -> 149 bytes .../mp00411c/labeled_thin_q5.dump.gz | Bin 0 -> 308 bytes .../regional_maxima/mp00411c/mean3_all_q4.ppm.gz | Bin 0 -> 985276 bytes .../regional_maxima/mp00411c/mean3_all_q5.ppm.gz | Bin 0 -> 1961577 bytes .../regional_maxima/mp00411c/mean3_thick_q4.ppm.gz | Bin 0 -> 865034 bytes .../regional_maxima/mp00411c/mean3_thick_q5.ppm.gz | Bin 0 -> 1831699 bytes .../regional_maxima/mp00411c/mean3_thin_q4.ppm.gz | Bin 0 -> 958289 bytes .../regional_maxima/mp00411c/mean3_thin_q5.ppm.gz | Bin 0 -> 1872271 bytes .../regional_maxima/mp00411c/mean4_all_q4.ppm.gz | Bin 0 -> 772605 bytes .../regional_maxima/mp00411c/mean4_all_q5.ppm.gz | Bin 0 -> 1852455 bytes .../regional_maxima/mp00411c/mean4_thick_q4.ppm.gz | Bin 0 -> 559850 bytes .../regional_maxima/mp00411c/mean4_thick_q5.ppm.gz | Bin 0 -> 1727247 bytes .../regional_maxima/mp00411c/mean4_thin_q4.ppm.gz | Bin 0 -> 760428 bytes .../regional_maxima/mp00411c/mean4_thin_q5.ppm.gz | Bin 0 -> 1781495 bytes .../doc/regional_maxima/mp00411c/mp00411c.ppm.gz | Bin 0 -> 5316204 bytes .../doc/regional_maxima/mp00411c/mp00411c.sh.gz | Bin 0 -> 636 bytes .../regional_maxima/mp00411c/mp00411c_thick.pbm.gz | Bin 0 -> 190478 bytes .../regional_maxima/mp00411c/mp00411c_thin.pbm.gz | Bin 0 -> 248730 bytes .../regional_maxima/mp00411c/opened_all_q4.dump.gz | Bin 0 -> 1159 bytes .../regional_maxima/mp00411c/opened_all_q5.dump.gz | Bin 0 -> 4531 bytes .../mp00411c/opened_thick_q4.dump.gz | Bin 0 -> 747 bytes .../mp00411c/opened_thick_q5.dump.gz | Bin 0 -> 2351 bytes .../mp00411c/opened_thin_q4.dump.gz | Bin 0 -> 848 bytes .../mp00411c/opened_thin_q5.dump.gz | Bin 0 -> 2772 bytes .../regional_maxima/mp00411c/proj1_all_q4.pgm.gz | Bin 0 -> 343 bytes .../regional_maxima/mp00411c/proj1_all_q5.pgm.gz | Bin 0 -> 779 bytes .../regional_maxima/mp00411c/proj1_thick_q4.pgm.gz | Bin 0 -> 312 bytes .../regional_maxima/mp00411c/proj1_thick_q5.pgm.gz | Bin 0 -> 612 bytes .../regional_maxima/mp00411c/proj1_thin_q4.pgm.gz | Bin 0 -> 339 bytes .../regional_maxima/mp00411c/proj1_thin_q5.pgm.gz | Bin 0 -> 718 bytes .../regional_maxima/mp00411c/proj2_all_q4.pgm.gz | Bin 0 -> 338 bytes .../regional_maxima/mp00411c/proj2_all_q5.pgm.gz | Bin 0 -> 750 bytes .../regional_maxima/mp00411c/proj2_thick_q4.pgm.gz | Bin 0 -> 315 bytes .../regional_maxima/mp00411c/proj2_thick_q5.pgm.gz | Bin 0 -> 606 bytes .../regional_maxima/mp00411c/proj2_thin_q4.pgm.gz | Bin 0 -> 331 bytes .../regional_maxima/mp00411c/proj2_thin_q5.pgm.gz | Bin 0 -> 693 bytes .../regional_maxima/mp00411c/proj3_all_q4.ppm.gz | Bin 0 -> 230 bytes .../regional_maxima/mp00411c/proj3_all_q5.ppm.gz | Bin 0 -> 401 bytes .../regional_maxima/mp00411c/proj3_thick_q4.ppm.gz | Bin 0 -> 224 bytes .../regional_maxima/mp00411c/proj3_thick_q5.ppm.gz | Bin 0 -> 343 bytes .../regional_maxima/mp00411c/proj3_thin_q4.ppm.gz | Bin 0 -> 229 bytes .../regional_maxima/mp00411c/proj3_thin_q5.ppm.gz | Bin 0 -> 359 bytes .../regional_maxima/mp00411c/proj4_all_q4.ppm.gz | Bin 0 -> 252 bytes .../regional_maxima/mp00411c/proj4_all_q5.ppm.gz | Bin 0 -> 447 bytes .../regional_maxima/mp00411c/proj4_thick_q4.ppm.gz | Bin 0 -> 221 bytes .../regional_maxima/mp00411c/proj4_thick_q5.ppm.gz | Bin 0 -> 369 bytes .../regional_maxima/mp00411c/proj4_thin_q4.ppm.gz | Bin 0 -> 234 bytes .../regional_maxima/mp00411c/proj4_thin_q5.ppm.gz | Bin 0 -> 415 bytes .../doc/regional_maxima/mp00411c/quant_q4.ppm.gz | Bin 0 -> 2590062 bytes .../doc/regional_maxima/mp00411c/quant_q5.ppm.gz | Bin 0 -> 3775184 bytes .../regional_maxima/mp00411c/stats3_all_q4.txt.gz | Bin 0 -> 292 bytes .../regional_maxima/mp00411c/stats3_all_q5.txt.gz | Bin 0 -> 701 bytes .../mp00411c/stats3_thick_q4.txt.gz | Bin 0 -> 244 bytes .../mp00411c/stats3_thick_q5.txt.gz | Bin 0 -> 584 bytes .../regional_maxima/mp00411c/stats3_thin_q4.txt.gz | Bin 0 -> 262 bytes .../regional_maxima/mp00411c/stats3_thin_q5.txt.gz | Bin 0 -> 606 bytes .../regional_maxima/mp00411c/stats4_all_q4.txt.gz | Bin 0 -> 284 bytes .../regional_maxima/mp00411c/stats4_all_q5.txt.gz | Bin 0 -> 704 bytes .../mp00411c/stats4_thick_q4.txt.gz | Bin 0 -> 234 bytes .../mp00411c/stats4_thick_q5.txt.gz | Bin 0 -> 580 bytes .../regional_maxima/mp00411c/stats4_thin_q4.txt.gz | Bin 0 -> 255 bytes .../regional_maxima/mp00411c/stats4_thin_q5.txt.gz | Bin 0 -> 591 bytes .../doc/regional_maxima/mp00411c/synthese.txt.gz | Bin 0 -> 4062 bytes .../green/exp/annotating/achromastism/Makefile.am | 153 ++ .../exp/annotating/achromastism/achromastism.cc | 113 ++ .../exp/annotating/achromastism/text-color.txt | 15 + .../green/exp/annotating/achromastism/text-img.txt | 40 + .../exp/annotating/achromastism/text-only.txt | 8 + .../sandbox/green/exp/annotating/bench/Makefile.am | 153 ++ milena/sandbox/green/exp/annotating/bench/bench.cc | 1213 ++++++++++++ .../sandbox/green/exp/annotating/error/Makefile.am | 153 ++ milena/sandbox/green/exp/annotating/error/error.cc | 700 +++++++ .../sandbox/green/exp/annotating/histo/Makefile.am | 153 ++ milena/sandbox/green/exp/annotating/histo/histo.cc | 306 +++ .../sandbox/green/exp/annotating/hsv/Makefile.am | 153 ++ milena/sandbox/green/exp/annotating/hsv/hsv.cc | 652 +++++++ .../sandbox/green/exp/annotating/hue/Makefile.am | 153 ++ milena/sandbox/green/exp/annotating/hue/hue.cc | 291 +++ .../green/exp/annotating/hue/text-color.txt | 15 + .../sandbox/green/exp/annotating/hue/text-img.txt | 40 + .../sandbox/green/exp/annotating/hue/text-only.txt | 8 + .../green/exp/annotating/nb_color/Makefile.am | 151 ++ .../green/exp/annotating/nb_color/nb_color.cc | 131 ++ .../green/exp/annotating/saturation/Makefile.am | 153 ++ .../green/exp/annotating/saturation/saturation.cc | 119 ++ .../green/exp/annotating/saturation/text-color.txt | 15 + .../green/exp/annotating/saturation/text-img.txt | 40 + .../green/exp/annotating/saturation/text-only.txt | 8 + .../green/exp/annotating/stddev_color/Makefile.am | 151 ++ .../exp/annotating/stddev_color/stddev_color.cc | 153 ++ .../exp/annotating/stddev_color_16/Makefile.am | 151 ++ .../annotating/stddev_color_16/stddev_color_16.cc | 195 ++ .../sandbox/green/exp/annotating/value/Makefile.am | 153 ++ .../green/exp/annotating/value/text-color.txt | 15 + .../green/exp/annotating/value/text-img.txt | 40 + .../green/exp/annotating/value/text-only.txt | 8 + milena/sandbox/green/exp/annotating/value/value.cc | 316 +++ .../green/exp/labeling/regional_maxima/Makefile.am | 151 ++ .../labeling/regional_maxima/regional_maxima.cc | 156 ++ milena/sandbox/green/mln/accu/stat/histo1d.hh | 66 +- milena/sandbox/green/mln/clustering/kmean_rgb.hh | 973 ++++++++++ milena/sandbox/green/mln/display/display_histo.hh | 98 +- milena/sandbox/green/mln/display/project_histo.hh | 443 +++++- milena/sandbox/green/mln/fun/p2b/achromatic.hh | 112 ++ .../sandbox/green/mln/fun/p2b/component_equals.hh | 99 + milena/sandbox/green/mln/fun/v2v/achromatism.hh | 64 + .../sandbox/green/mln/fun/v2v/hue_concentration.hh | 100 + milena/sandbox/green/mln/fun/v2v/rgb8_to_int_u8.hh | 71 + .../green/mln/fun/v2v/rgb_to_achromatism_map.hh | 77 + milena/sandbox/green/mln/fun/v2v/rgb_to_hsv.hh | 149 ++ milena/sandbox/green/mln/fun/v2v/rgb_to_hue_map.hh | 96 + .../green/mln/fun/v2v/rgb_to_saturation_map.hh | 83 + .../sandbox/green/mln/fun/v2v/rgb_to_value_map.hh | 75 + milena/sandbox/green/mln/img_path.hh | 221 ++- milena/sandbox/green/mln/math/ceil.hh | 64 + milena/sandbox/green/mln/math/floor.hh | 64 + milena/sandbox/green/mln/value/hsv.hh | 424 ++++ .../green/tools/annotating/histo/Makefile.am | 150 ++ .../sandbox/green/tools/annotating/histo/histo.cc | 143 ++ .../sandbox/green/tools/annotating/iz/Makefile.am | 150 ++ milena/sandbox/green/tools/annotating/iz/iz.cc | 373 ++++ .../green/tools/annotating/opening/Makefile.am | 150 ++ .../green/tools/annotating/opening/opening.cc | 111 ++ .../green/tools/annotating/regmax/Makefile.am | 150 ++ .../green/tools/annotating/regmax/regmax.cc | 328 ++++ milena/tests/Makefile.am | 3 - milena/tests/accu/Makefile.am | 19 +- milena/tests/accu/image/Makefile.am | 3 - milena/tests/accu/math/Makefile.am | 3 - milena/tests/accu/shape/Makefile.am | 3 - milena/tests/accu/site_set/Makefile.am | 3 - milena/tests/accu/stat/Makefile.am | 3 - milena/tests/algebra/Makefile.am | 3 - milena/tests/arith/Makefile.am | 6 +- milena/tests/binarization/Makefile.am | 15 +- milena/tests/binarization/threshold.cc | 7 +- milena/tests/border/Makefile.am | 6 +- milena/tests/canvas/Makefile.am | 7 +- milena/tests/canvas/browsing/Makefile.am | 6 +- milena/tests/canvas/morpho/Makefile.am | 3 - milena/tests/convert/Makefile.am | 28 +- milena/tests/convert/impl/Makefile.am | 3 - milena/tests/convert/to_qimage.cc | 76 + milena/tests/convert/to_qimage_nocopy.cc | 56 + milena/tests/core/Makefile.am | 6 +- milena/tests/core/alias/Makefile.am | 3 - milena/tests/core/image/Makefile.am | 3 - milena/tests/core/image/dmorph/Makefile.am | 3 - milena/tests/core/image/imorph/Makefile.am | 3 - milena/tests/core/image/vmorph/Makefile.am | 3 - milena/tests/core/other/Makefile.am | 3 - milena/tests/core/other/box_runend_piter.cc | 2 +- milena/tests/core/other/box_runstart_piter.cc | 5 +- milena/tests/core/routine/Makefile.am | 3 - milena/tests/core/site_set/Makefile.am | 3 - milena/tests/data/Makefile.am | 16 +- milena/tests/data/approx/Makefile.am | 12 +- milena/tests/data/approx/median.cc | 7 +- milena/tests/data/median.cc | 7 +- milena/tests/data/median_fast.cc | 5 +- milena/tests/data/naive/Makefile.am | 9 +- milena/tests/data/naive/median.cc | 5 +- milena/tests/debug/Makefile.am | 3 - milena/tests/display/Makefile.am | 6 +- milena/tests/draw/Makefile.am | 6 +- milena/tests/estim/Makefile.am | 6 +- milena/tests/extension/Makefile.am | 3 - milena/tests/extract/Makefile.am | 3 - milena/tests/fun/Makefile.am | 3 - milena/tests/fun/i2v/Makefile.am | 3 - milena/tests/fun/p2b/Makefile.am | 3 - milena/tests/fun/p2p/Makefile.am | 3 - milena/tests/fun/p2v/Makefile.am | 3 - milena/tests/fun/stat/Makefile.am | 3 - milena/tests/fun/v2i/Makefile.am | 3 - milena/tests/fun/v2v/Makefile.am | 3 - milena/tests/fun/vv2v/Makefile.am | 3 - milena/tests/fun/x2x/Makefile.am | 6 +- milena/tests/geom/Makefile.am | 3 - milena/tests/geom/rotate.cc | 16 +- milena/tests/geom/translate.cc | 5 +- milena/tests/graph/Makefile.am | 3 - milena/tests/graph/attribute/Makefile.am | 3 - milena/tests/histo/Makefile.am | 6 +- milena/tests/io/Makefile.am | 6 +- milena/tests/io/dicom/Makefile.am | 3 - milena/tests/io/dump/Makefile.am | 15 +- milena/tests/io/dump/dump.cc | 24 +- milena/tests/io/fits/Makefile.am | 16 +- milena/tests/io/fits/fits.cc | 11 +- milena/tests/io/fld/Makefile.am | 5 +- milena/tests/io/magick/Makefile.am | 15 +- milena/tests/io/magick/save.cc | 14 +- milena/tests/io/off/Makefile.am | 13 +- milena/tests/io/off/load_save_bin.cc | 5 +- milena/tests/io/pbm/Makefile.am | 17 +- milena/tests/io/pbm/pbm.cc | 7 +- milena/tests/io/pbm/pbm_ascii.cc | 6 +- milena/tests/io/pbms/Makefile.am | 9 +- milena/tests/io/pbms/load.cc | 4 +- milena/tests/io/pfm/Makefile.am | 3 - milena/tests/io/pgm/Makefile.am | 36 +- milena/tests/io/pgm/pgm.cc | 11 +- milena/tests/io/pgm/pgm16.cc | 13 +- milena/tests/io/pgm/pgm19.cc | 9 +- milena/tests/io/pgm/pgm27.cc | 9 +- milena/tests/io/pgm/pgm_ascii.cc | 10 +- milena/tests/io/pgms/Makefile.am | 10 +- milena/tests/io/pgms/load.cc | 4 +- milena/tests/io/pnm/Makefile.am | 3 - milena/tests/io/ppm/Makefile.am | 27 +- milena/tests/io/ppm/ppm.cc | 7 +- milena/tests/io/ppm/ppm16.cc | 11 +- milena/tests/io/ppm/ppm23.cc | 11 +- milena/tests/io/ppms/Makefile.am | 10 +- milena/tests/io/ppms/load.cc | 6 +- milena/tests/io/tiff/Makefile.am | 3 - milena/tests/labeling/Makefile.am | 6 +- 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/linear/Makefile.am | 16 +- milena/tests/linear/convolve.cc | 5 +- milena/tests/linear/convolve_2x1d.cc | 5 +- milena/tests/linear/convolve_directional.cc | 5 +- milena/tests/linear/gaussian.cc | 5 +- milena/tests/linear/gaussian/Makefile.am | 7 +- milena/tests/linear/gaussian/filter.cc | 5 +- milena/tests/linear/lap.cc | 5 +- milena/tests/linear/local/Makefile.am | 6 +- milena/tests/linear/log.cc | 5 +- milena/tests/linear/sobel_2d.cc | 5 +- milena/tests/literal/Makefile.am | 6 +- milena/tests/logical/Makefile.am | 6 +- milena/tests/make/Makefile.am | 6 +- milena/tests/math/Makefile.am | 3 - milena/tests/metal/Makefile.am | 6 +- milena/tests/metal/make/Makefile.am | 3 - milena/tests/metal/math/Makefile.am | 6 +- milena/tests/morpho/Makefile.am | 36 +- milena/tests/morpho/approx/Makefile.am | 17 +- milena/tests/morpho/approx/dilation.cc | 6 +- milena/tests/morpho/approx/erosion.cc | 6 +- .../morpho/artificial_line_graph_image_wst.cc | 5 +- milena/tests/morpho/attribute/Makefile.am | 3 - milena/tests/morpho/closing/Makefile.am | 41 +- milena/tests/morpho/closing/algebraic.cc | 6 +- milena/tests/morpho/closing/approx/Makefile.am | 14 +- milena/tests/morpho/closing/approx/structural.cc | 6 +- milena/tests/morpho/closing/height.cc | 5 +- milena/tests/morpho/closing/leveling.cc | 6 +- milena/tests/morpho/closing/structural.cc | 4 +- milena/tests/morpho/closing/sum.cc | 5 +- milena/tests/morpho/closing/volume.cc | 7 +- milena/tests/morpho/complex_image_wst.cc | 5 +- milena/tests/morpho/contrast.cc | 5 +- milena/tests/morpho/dilation.cc | 13 +- milena/tests/morpho/elementary/Makefile.am | 3 - milena/tests/morpho/general.cc | 5 +- milena/tests/morpho/gradient.cc | 7 +- milena/tests/morpho/hit_or_miss.cc | 10 +- milena/tests/morpho/laplacian.cc | 7 +- milena/tests/morpho/lena_line_graph_image_wst1.cc | 5 +- milena/tests/morpho/lena_line_graph_image_wst2.cc | 5 +- milena/tests/morpho/line_graph_image_morpho.cc | 4 +- milena/tests/morpho/meyer_wst.cc | 5 +- milena/tests/morpho/meyer_wst_long.cc | 6 +- milena/tests/morpho/opening/Makefile.am | 40 +- milena/tests/morpho/opening/algebraic.cc | 6 +- milena/tests/morpho/opening/approx/Makefile.am | 9 +- milena/tests/morpho/opening/approx/structural.cc | 6 +- milena/tests/morpho/opening/area.cc | 5 +- milena/tests/morpho/opening/height.cc | 5 +- milena/tests/morpho/opening/leveling.cc | 6 +- milena/tests/morpho/opening/structural.cc | 4 +- milena/tests/morpho/opening/sum.cc | 5 +- milena/tests/morpho/opening/volume.cc | 5 +- milena/tests/morpho/rank_filter.cc | 5 +- milena/tests/morpho/reconstruction/Makefile.am | 5 - .../morpho/reconstruction/by_dilation/Makefile.am | 5 - .../morpho/reconstruction/by_erosion/Makefile.am | 5 - milena/tests/morpho/skeleton_constrained.cc | 83 +- milena/tests/morpho/thinning.cc | 7 +- milena/tests/morpho/tree/Makefile.am | 5 +- milena/tests/morpho/tree/filter/Makefile.am | 3 - milena/tests/morpho/watershed/Makefile.am | 16 +- milena/tests/morpho/watershed/flooding.cc | 13 +- milena/tests/morpho/watershed/topological.cc | 5 +- milena/tests/norm/Makefile.am | 3 - milena/tests/opt/Makefile.am | 3 - milena/tests/pw/Makefile.am | 6 +- milena/tests/registration/Makefile.am | 3 - milena/tests/set/Makefile.am | 6 +- milena/tests/subsampling/Makefile.am | 15 +- milena/tests/subsampling/antialiased.cc | 74 + milena/tests/tag/Makefile.am | 3 - milena/tests/test/Makefile.am | 3 - milena/tests/tests-recursive.mk | 36 +- milena/tests/tests.mk | 36 +- milena/tests/topo/Makefile.am | 3 - milena/tests/topo/skeleton/Makefile.am | 3 - milena/tests/topo/skeleton/crest.cc | 10 +- milena/tests/trace/Makefile.am | 3 - milena/tests/trait/Makefile.am | 6 +- milena/tests/trait/image/Makefile.am | 6 +- milena/tests/trait/op/Makefile.am | 6 +- milena/tests/trait/value/Makefile.am | 6 +- milena/tests/transform/Makefile.am | 5 - milena/tests/unit_test/Makefile.am | 24 +- .../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 | 156 ++- milena/tests/upscaling/Makefile.am | 4 - milena/tests/upscaling/art/Makefile.am | 3 - milena/tests/util/Makefile.am | 9 +- milena/tests/util/ord.cc | 42 + milena/tests/value/Makefile.am | 3 - milena/tests/value/builtin/Makefile.am | 6 +- milena/tests/value/concept/Makefile.am | 3 - milena/tests/win/Makefile.am | 6 +- milena/tests/world/Makefile.am | 3 - milena/tests/world/binary_2d/Makefile.am | 3 - milena/tests/world/inter_pixel/Makefile.am | 3 - milena/tests/world/inter_pixel/dim2/Makefile.am | 3 - milena/tools/Makefile.am | 3 - scribo/ChangeLog | 1753 +++++++++++++++++ scribo/Doxyfile | 16 + scribo/Doxyfile_tex | 16 + scribo/Makefile.am | 11 +- scribo/README | 52 + scribo/all.hh | 51 - scribo/binarization/internal/first_pass_functor.hh | 151 -- scribo/binarization/local_threshold.hh | 221 --- scribo/binarization/sauvola.hh | 195 -- scribo/binarization/sauvola_ms.hh | 1017 ---------- scribo/binarization/sauvola_ms_split.hh | 148 -- scribo/binarization/sauvola_threshold_image.hh | 490 ----- scribo/canvas/integral_browsing.hh | 435 ----- scribo/core/all.hh | 49 - scribo/core/component_info.hh | 203 -- scribo/core/component_set.hh | 560 ------ scribo/core/erase_objects.hh | 87 - scribo/core/internal/link_functor_base.hh | 119 -- scribo/core/line_info.hh | 903 --------- scribo/core/line_set.hh | 418 ---- scribo/core/macros.hh | 58 - scribo/core/object_groups.hh | 250 --- scribo/core/object_links.hh | 211 -- scribo/core/tag/component.hh | 118 -- scribo/core/tag/line.hh | 213 -- scribo/debug/bboxes_enlarged_image.hh | 136 -- scribo/debug/decision_image.hh | 176 -- scribo/debug/links_decision_image.hh | 149 -- scribo/debug/looks_like_a_text_line_image.hh | 130 -- scribo/debug/mean_and_base_lines_image.hh | 147 -- scribo/debug/save_bboxes_image.hh | 139 -- scribo/debug/save_linked_bboxes_image.hh | 291 --- scribo/debug/save_object_diff.hh | 98 - scribo/debug/several_links_decision_image.hh | 185 -- scribo/debug/usage.hh | 83 - scribo/demo/Makefile.am | 23 + scribo/demo/demat/demat.pro | 42 + scribo/demo/demat/demat.qrc | 4 + scribo/demo/{wizard => demat}/src/doc_type.hh | 0 scribo/demo/demat/src/main.cc | 31 + scribo/demo/demat/src/main_window.cc | 266 +++ scribo/demo/demat/src/main_window.hh | 96 + scribo/demo/demat/src/mln_widgets.cc | 11 + scribo/demo/demat/src/preprocessing_task.hh | 62 + scribo/demo/demat/src/process_args.hh | 47 + scribo/demo/demat/src/runner.cc | 327 ++++ scribo/demo/demat/src/runner.hh | 94 + scribo/demo/demat/ui/main_window.ui | 381 ++++ scribo/demo/review/src/main.cc | 13 +- scribo/demo/review/src/mainwindow.cc | 58 +- scribo/demo/review/src/mainwindow.hh | 2 +- scribo/demo/shared/src/crop_item.cc | 129 +- scribo/demo/shared/src/crop_item.hh | 20 +- scribo/demo/shared/src/image_viewer.cc | 116 +- scribo/demo/shared/src/image_viewer.hh | 19 +- scribo/demo/shared/src/image_viewer.hxx | 31 + .../demo/shared/src/internal/interactive_scene.cc | 11 +- .../demo/shared/src/internal/interactive_scene.hh | 1 + scribo/demo/shared/ui/image_viewer.ui | 20 +- scribo/demo/tip/gui.pro | 19 + scribo/demo/tip/gui.qrc | 9 + scribo/demo/tip/icons/next.png | Bin 0 -> 3337 bytes scribo/demo/tip/icons/ok.png | Bin 0 -> 3953 bytes scribo/demo/tip/icons/photos.png | Bin 0 -> 3750 bytes scribo/demo/tip/icons/prev.png | Bin 0 -> 3334 bytes .../icons/remove.png} | Bin 3704 -> 3704 bytes scribo/demo/tip/src/custom_delegate.cc | 105 + scribo/demo/tip/src/custom_delegate.hh | 81 + scribo/demo/tip/src/launch_dialog.cc | 94 + scribo/demo/tip/src/launch_dialog.hh | 63 + scribo/demo/tip/src/main.cc | 46 + scribo/demo/tip/src/main_window.cc | 526 +++++ scribo/demo/tip/src/main_window.hh | 119 ++ scribo/demo/tip/ui/launch_dialog.ui | 117 ++ scribo/demo/tip/ui/main_window.ui | 656 +++++++ scribo/demo/viewer/Makefile.am | 70 + scribo/demo/viewer/README | 33 + scribo/demo/viewer/browser_widget.cc | 78 + scribo/demo/viewer/browser_widget.hh | 42 + scribo/demo/viewer/common.hh | 38 + scribo/demo/viewer/domitem.cc | 98 + scribo/demo/viewer/domitem.hh | 75 + scribo/demo/viewer/dommodel.cc | 198 ++ scribo/demo/viewer/dommodel.hh | 85 + scribo/demo/viewer/help_dialog.cc | 55 + scribo/demo/viewer/help_dialog.hh | 32 + scribo/demo/viewer/image_region.cc | 139 ++ scribo/demo/viewer/image_region.hh | 76 + scribo/demo/viewer/image_region.hxx | 100 + scribo/demo/viewer/image_scene.cc | 90 + scribo/demo/viewer/image_scene.hh | 44 + scribo/demo/viewer/image_view.cc | 78 + scribo/demo/viewer/image_view.hh | 40 + scribo/demo/viewer/image_widget.cc | 48 + scribo/demo/viewer/image_widget.hh | 41 + scribo/demo/viewer/key_widget.cc | 90 + scribo/demo/viewer/key_widget.hh | 45 + scribo/demo/viewer/main.cc | 37 + scribo/demo/viewer/property_widget.cc | 73 + scribo/demo/viewer/property_widget.hh | 41 + scribo/demo/viewer/step_widget.cc | 122 ++ scribo/demo/viewer/step_widget.hh | 57 + scribo/demo/viewer/viewer.cc | 504 +++++ scribo/demo/viewer/viewer.hh | 88 + scribo/demo/viewer/viewer.hxx | 31 + scribo/demo/viewer/xml_widget.cc | 53 + scribo/demo/viewer/xml_widget.hh | 41 + scribo/demo/wizard/src/crop_widget.cc | 2 +- scribo/demo/wizard/src/load_page.cc | 1 + scribo/demo/wizard/src/main.cc | 13 + scribo/demo/wizard/src/main_window.cc | 31 +- scribo/demo/wizard/src/main_window.hh | 2 + scribo/demo/wizard/src/preprocessing_widget.cc | 10 +- scribo/demo/wizard/src/process_page.cc | 5 - scribo/demo/wizard/src/result_page.cc | 43 + scribo/demo/wizard/src/result_page.hh | 60 + scribo/demo/wizard/src/result_widget.cc | 43 + scribo/demo/wizard/src/result_widget.hh | 58 + scribo/demo/wizard/src/runner.cc | 59 +- scribo/demo/wizard/ui/preprocessing_widget.ui | 4 +- scribo/demo/wizard/wizard.pro | 50 +- scribo/draw/bounding_box_links.hh | 404 ---- scribo/draw/bounding_boxes.hh | 116 -- scribo/filter/all.hh | 53 - scribo/filter/internal/compute.hh | 147 -- scribo/filter/object_groups_size_ratio.hh | 105 - scribo/filter/object_groups_small.hh | 99 - scribo/filter/object_groups_v_thickness.hh | 98 - scribo/filter/object_groups_with_holes.hh | 328 ---- scribo/filter/object_links_bbox_ratio.hh | 111 -- scribo/filter/object_links_bbox_w_ratio.hh | 97 - scribo/filter/object_links_bottom_aligned.hh | 115 -- scribo/filter/object_links_center_aligned.hh | 113 -- scribo/filter/object_links_left_aligned.hh | 122 -- scribo/filter/object_links_non_aligned.hh | 138 -- scribo/filter/object_links_non_aligned_simple.hh | 223 --- scribo/filter/object_links_non_h_aligned.hh | 109 -- scribo/filter/object_links_non_v_aligned.hh | 122 -- scribo/filter/object_links_right_aligned.hh | 121 -- scribo/filter/object_links_top_aligned.hh | 114 -- 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 | 190 -- scribo/filter/objects_v_thick.hh | 196 -- scribo/filter/objects_v_thin.hh | 193 -- scribo/filter/objects_with_holes.hh | 580 ------ scribo/headers.mk | 308 ++-- scribo/io/xml/save_text_lines.hh | 154 -- scribo/make/all.hh | 49 - scribo/make/text.hh | 180 -- scribo/preprocessing/all.hh | 46 - scribo/preprocessing/denoise_bg.hh | 156 -- scribo/preprocessing/denoise_fg.hh | 131 -- scribo/preprocessing/rotate_90.hh | 159 -- scribo/preprocessing/split_bg_fg.hh | 340 ---- scribo/preprocessing/unskew.hh | 115 -- scribo/primitive/extract/all.hh | 67 - scribo/primitive/extract/components.hh | 145 -- 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 | 142 -- 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/group/all.hh | 57 - scribo/primitive/group/apply.hh | 138 -- scribo/primitive/group/from_double_link.hh | 129 -- scribo/primitive/group/from_graph.hh | 180 -- scribo/primitive/group/from_single_link.hh | 105 - scribo/primitive/internal/all.hh | 60 - scribo/primitive/internal/find_graph_link.hh | 111 -- scribo/primitive/internal/find_root.hh | 73 - scribo/primitive/internal/init_link_array.hh | 78 - scribo/primitive/internal/is_link_valid.hh | 81 - scribo/primitive/internal/rd.hh | 192 -- scribo/primitive/internal/update_link_array.hh | 105 - scribo/primitive/link/all.hh | 60 - scribo/primitive/link/compute_several.hh | 117 -- scribo/primitive/link/internal/compute_anchor.hh | 249 --- .../primitive/link/internal/find_several_links.hh | 137 -- .../primitive/link/internal/link_functor_base.hh | 536 ------ .../primitive/link/internal/link_ms_dmax_base.hh | 164 -- .../link/internal/link_ms_dmax_ratio_base.hh | 170 -- .../link/internal/link_several_dmax_base.hh | 265 --- .../link/internal/link_single_dmax_ratio_base.hh | 172 -- scribo/primitive/link/merge_double_link.hh | 126 -- 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 -- scribo/primitive/link/with_single_down_link.hh | 183 -- .../link/with_single_left_link_dmax_ratio.hh | 167 -- .../link/with_single_right_link_dmax_ratio.hh | 191 -- scribo/primitive/link/with_single_up_link.hh | 183 -- scribo/primitive/regroup/from_single_left_link.hh | 140 -- 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 +++ .../histo1d => scribo/sandbox/green}/gaussian.sh | 0 .../histo2d => scribo/sandbox/green}/gaussian2d.sh | 0 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 | 0 .../sandbox/green/mln/fun/v2v/log.hh | 0 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 ++++ .../sandbox/green/ok/mln/accu/histo}/histo2d.hh | 0 .../sandbox/green/ok/mln/accu/histo/histo3d.hh | 0 scribo/sandbox/green/ok/mln/img_path.hh | 239 +++ .../sandbox/green/ok/test/accu/histo}/gaussian.sh | 0 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 | 0 .../green/tests/clustering/kmean1d/kmean1d.cc | 0 .../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 | 13 +- scribo/scribo/all.hh | 53 + scribo/scribo/binarization/all.hh | 55 + .../{ => scribo}/binarization/global_threshold.hh | 0 .../binarization/global_threshold_auto.hh | 0 .../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 | 0 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 | 0 scribo/scribo/core/def/lbl_type.hh | 48 + scribo/scribo/core/erase_objects.hh | 86 + scribo/{ => scribo}/core/init_integral_image.hh | 0 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 | 0 scribo/scribo/core/tag/component.hh | 121 ++ scribo/scribo/core/tag/line.hh | 216 +++ .../{ => scribo}/debug/alignment_decision_image.hh | 0 scribo/{ => scribo}/debug/all.hh | 0 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 | 0 scribo/scribo/debug/save_linked_bboxes_image.hh | 277 +++ scribo/{ => scribo}/debug/save_table_image.hh | 0 .../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 | 0 scribo/scribo/draw/bounding_box_links.hh | 340 ++++ scribo/scribo/draw/bounding_boxes.hh | 117 ++ scribo/{ => scribo}/draw/groups_bboxes.hh | 0 .../estim/object_groups_v_thickness.hh | 0 scribo/scribo/filter/all.hh | 50 + scribo/{ => scribo}/filter/common/objects_photo.hh | 0 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 ++++ .../filter/object_links_bbox_h_ratio.hh | 0 .../filter/object_links_bbox_overlap.hh | 0 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 | 0 scribo/scribo/fun/v2b/objects_large_filter.hh | 128 ++ .../{ => scribo}/fun/v2b/objects_small_filter.hh | 0 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 | 0 scribo/{ => scribo}/make/influence_zone_graph.hh | 0 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 | 0 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 ++ .../preprocessing/homogeneous_contrast.hh | 0 scribo/scribo/preprocessing/rotate_90.hh | 163 ++ scribo/scribo/preprocessing/split_bg_fg.hh | 341 ++++ scribo/{ => scribo}/primitive/all.hh | 0 scribo/scribo/primitive/extract/all.hh | 68 + scribo/{ => scribo}/primitive/extract/canvas.hh | 0 scribo/{ => scribo}/primitive/extract/cells.hh | 0 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 + .../primitive/internal/have_link_valid.hh | 0 scribo/scribo/primitive/internal/is_link_valid.hh | 81 + scribo/scribo/primitive/internal/rd.hh | 192 ++ .../primitive/internal/update_graph_link.hh | 0 scribo/scribo/primitive/link/all.hh | 61 + scribo/{ => scribo}/primitive/link/compute.hh | 0 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 + .../primitive/link/internal/find_link.hh | 0 .../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 | 0 .../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 | 0 .../scribo/primitive/link/with_single_down_link.hh | 181 ++ .../primitive/link/with_single_left_link.hh | 0 .../link/with_single_left_link_dmax_ratio.hh | 221 +++ .../primitive/link/with_single_right_link.hh | 0 .../link/with_single_right_link_bottom.hh | 0 .../link/with_single_right_link_dmax_ratio.hh | 215 +++ .../primitive/link/with_single_right_link_top.hh | 0 .../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 | 0 scribo/scribo/subsampling/integral_single_image.hh | 460 +++++ scribo/scribo/table/align_lines_horizontaly.hh | 106 + scribo/{ => scribo}/table/align_lines_verticaly.hh | 0 scribo/{ => scribo}/table/all.hh | 0 .../{ => scribo}/table/connect_horizontal_lines.hh | 0 .../{ => scribo}/table/connect_vertical_lines.hh | 0 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 | 0 scribo/scribo/table/internal/connect_lines.hh | 125 ++ scribo/scribo/table/internal/repair_lines.hh | 197 ++ scribo/scribo/table/rebuild.hh | 158 ++ .../{ => scribo}/table/repair_horizontal_lines.hh | 0 scribo/{ => scribo}/table/repair_vertical_lines.hh | 0 scribo/{ => scribo}/text/all.hh | 0 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 | 107 +- scribo/src/README | 39 + scribo/src/afp/components.hh | 69 +- scribo/src/afp/link.hh | 62 +- scribo/src/afp/regroup.hh | 37 +- scribo/src/binarization/Makefile.am | 16 +- scribo/src/binarization/fg_sauvola_ms.cc | 108 ++ .../src/binarization/pgm_global_threshold_auto.cc | 3 +- scribo/src/binarization/pgm_sauvola.cc | 28 +- scribo/src/binarization/pgm_sauvola_ms.cc | 54 +- scribo/src/binarization/ppm_fg_sauvola_ms.cc | 64 +- scribo/src/binarization/ppm_sauvola.cc | 38 +- scribo/src/binarization/ppm_sauvola_ms.cc | 66 +- scribo/src/binarization/ppm_sauvola_ms_split.cc | 65 +- scribo/src/binarization/sauvola.cc | 79 + scribo/src/binarization/sauvola_debug.cc | 116 ++ scribo/src/binarization/sauvola_ms.cc | 116 ++ scribo/src/binarization/sauvola_ms_debug.cc | 147 ++ scribo/src/binarization/sauvola_ms_split.cc | 123 ++ scribo/src/contest/Makefile.am | 23 + scribo/src/contest/hdibco-2010/Makefile.am | 25 + .../src/contest/hdibco-2010/sauvola_ms_hdibco.cc | 85 + scribo/src/debug/Makefile.am | 17 +- scribo/src/debug/highlight_text_area.cc | 97 + .../src/debug/show_info_median_inter_characters.cc | 194 +-- scribo/src/debug/show_info_x_height.cc | 224 +-- scribo/src/debug/show_links_bbox_h_ratio.cc | 26 +- scribo/src/debug/show_links_bbox_overlap.cc | 19 +- scribo/src/debug/show_links_bottom_aligned.cc | 6 +- scribo/src/debug/show_links_center_aligned.cc | 19 +- .../show_links_left_right_links_validation.cc | 35 +- 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 | 38 +- scribo/src/debug/show_links_single_down.cc | 33 +- .../debug/show_links_single_down_left_aligned.cc | 26 +- .../debug/show_links_single_down_right_aligned.cc | 29 +- scribo/src/debug/show_links_single_left.cc | 36 +- .../src/debug/show_links_single_left_dmax_ratio.cc | 44 +- scribo/src/debug/show_links_single_right.cc | 37 +- .../debug/show_links_single_right_dmax_ratio.cc | 36 +- scribo/src/debug/show_links_single_up.cc | 37 +- .../src/debug/show_links_single_up_left_aligned.cc | 29 +- .../debug/show_links_single_up_right_aligned.cc | 29 +- scribo/src/debug/show_links_top_aligned.cc | 12 +- 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 | 3 - 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 | 27 +- scribo/src/filter/objects_with_holes_pgm.cc | 23 +- scribo/src/misc/Makefile.am | 4 - scribo/src/misc/negate.cc | 5 +- scribo/src/misc/superpose.cc | 7 +- scribo/src/multi_scale/Makefile.am | 26 - scribo/src/multi_scale/find_lines.cc | 180 -- scribo/src/pbm_lines_in_doc.cc | 299 --- 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 | 62 +- scribo/src/preprocessing/denoise.cc | 69 - scribo/src/preprocessing/denoise_bg.cc | 67 + scribo/src/preprocessing/denoise_fg.cc | 66 + 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 | 14 +- scribo/src/preprocessing/subsample.cc | 16 +- scribo/src/preprocessing/to_pgm.cc | 46 + scribo/src/preprocessing/unskew.cc | 22 +- scribo/src/primitive/Makefile.am | 3 - scribo/src/primitive/extract/Makefile.am | 4 - .../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 +- scribo/src/primitive/find/Makefile.am | 5 - .../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 | 21 +- .../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/Makefile.am | 3 - scribo/src/table/erase.cc | 15 +- scribo/src/table/extract.cc | 7 +- scribo/src/text/Makefile.am | 21 +- scribo/src/text/cleantxt.cc | 45 +- scribo/src/text/pbm_lines_recognition.cc | 107 + scribo/src/text/pbm_recognition.cc | 20 +- scribo/src/text/recognition.cc | 101 - scribo/src/text_in_article.cc | 331 ---- scribo/src/text_in_doc.cc | 304 --- scribo/src/text_in_doc_ppm.cc | 322 ---- scribo/src/text_in_doc_preprocess.cc | 103 + scribo/src/text_in_photo.cc | 250 --- scribo/src/text_in_photo_invert.cc | 245 --- scribo/src/text_in_photo_pbm_fast.cc | 441 ----- scribo/src/text_in_photo_ppm.cc | 532 ----- scribo/src/text_in_photo_ppm_fast.cc | 635 ------ scribo/src/text_in_picture.cc | 631 ++++++ scribo/src/text_recognition_in_picture.cc | 378 ++++ scribo/subsampling/integral_single_image.hh | 459 ----- scribo/table/align_lines_horizontaly.hh | 101 - scribo/table/erase.hh | 99 - scribo/table/extract.hh | 117 -- scribo/table/internal/align_lines.hh | 196 -- scribo/table/internal/connect_lines.hh | 126 -- scribo/table/internal/repair_lines.hh | 197 -- scribo/table/rebuild.hh | 157 -- scribo/test.cc | 44 - scribo/tests/Makefile.am | 8 +- scribo/tests/core/Makefile.am | 8 +- scribo/tests/core/object_image.cc | 72 - scribo/tests/filter/Makefile.am | 3 - scribo/tests/filter/objects_with_holes.cc | 67 +- 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 | 17 +- scribo/tests/preprocessing/crop.cc | 52 + .../preprocessing/crop_without_localization.cc | 56 + scribo/tests/preprocessing/deskew.cc | 52 + scribo/tests/preprocessing/rotate_90.cc | 2 +- scribo/tests/preprocessing/unskew.cc | 44 - scribo/tests/table/Makefile.am | 3 - scribo/tests/table/extract_lines_with_rank.cc | 5 +- scribo/tests/table/repair_lines.cc | 5 +- scribo/tests/tests.mk | 26 +- scribo/tests/text/Makefile.am | 3 - 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 | 32 +- scribo/tests/unit_test/build_unit_test.sh | 67 - 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 | 4 + scribo/tests/unit_test/unit-tests.mk | 260 +++- scribo/text/clean.hh | 154 -- scribo/text/extract_lines.hh | 152 -- scribo/text/merging.hh | 933 --------- scribo/text/recognition.hh | 263 --- scribo/util/all.hh | 46 - scribo/util/text.hh | 278 --- swilena/ChangeLog | 18 + swilena/Makefile.am | 3 - swilena/python/Makefile.am | 29 +- swilena/python/morpho-fun.py | 23 +- swilena/python/morpho-segm.py | 7 +- 1315 files changed, 99306 insertions(+), 35642 deletions(-) create mode 100644 HACKING create mode 100644 build-aux/tex.mk create mode 100755 build-aux/texi2dvi create mode 100644 m4/boost.m4 create mode 100644 m4/pkg.m4 delete mode 100644 m4/with-swilena.m4 delete mode 100644 milena/doc/doc.mk create mode 100644 milena/doc/examples-outputs.mk create mode 100644 milena/doc/examples.mk delete mode 100644 milena/doc/examples/Makefile.am rename milena/doc/examples/{accu-right-instanciation.cc => accu-right-instantiation.cc} (100%) rename milena/doc/examples/{accu-wrong-instanciation.cc.raw => accu-wrong-instantiation.cc.raw} (100%) delete mode 100644 milena/doc/examples/examples.mk rename milena/doc/examples/split/{accu-right-instanciation-1.cc.raw => accu-right-instantiation-1.cc.raw} (100%) create mode 100644 milena/doc/figures.mk delete mode 100644 milena/doc/figures/figures.mk rename milena/doc/{white_paper => }/figures/house.png (100%) rename milena/doc/{white_paper => }/figures/house_rag.png (100%) rename milena/doc/{white_paper => }/figures/house_wshed.png (100%) rename milena/doc/{white_paper => }/figures/house_wshed_mean_colors.png (100%) rename milena/doc/{technical/figures => figures/technical}/file_layout.pdf (100%) rename milena/doc/{technical/figures => figures/technical}/file_layout.png (100%) delete mode 100644 milena/doc/figures/tuto4_genericity_and_algorithms-7.pgm delete mode 100644 milena/doc/figures/tuto4_genericity_and_algorithms-7.ppm delete mode 100644 milena/doc/figures/tuto4_genericity_and_algorithms-8.pgm delete mode 100644 milena/doc/figures/tuto4_genericity_and_algorithms-8.ppm delete mode 100644 milena/doc/figures/tuto4_genericity_and_algorithms-9.pgm delete mode 100644 milena/doc/figures/tuto4_genericity_and_algorithms-9.ppm create mode 100755 milena/doc/gen-examples-outputs-mk create mode 100755 milena/doc/gen-figures-mk create mode 100755 milena/doc/gen-make-variable create mode 100755 milena/doc/gen-split-examples-mk create mode 100755 milena/doc/gen-split-outputs-mk create mode 100644 milena/doc/graphicx.hva create mode 120000 milena/doc/img/small.pbm create mode 100644 milena/doc/outputs.mk copy milena/doc/outputs/{accu-right-instanciation.txt => accu-right-instantiation.txt} (100%) rename milena/doc/outputs/{ima2d-decl-2.txt => ima-load.txt} (100%) delete mode 100644 milena/doc/outputs/outputs.mk rename milena/doc/{tutorial/headers.stamp => outputs/tuto3_first_routine.txt} (100%) rename milena/doc/outputs/{accu-right-instanciation.txt => tuto4_image.txt} (100%) create mode 100644 milena/doc/programs-examples.mk create mode 100644 milena/doc/ref-guide.tex delete mode 100644 milena/doc/ref_guide/Makefile.am delete mode 100644 milena/doc/ref_guide/ref_guide.tex create mode 100644 milena/doc/split-examples.mk create mode 100644 milena/doc/split-outputs.mk rename milena/doc/{technical => technical.old}/designs/properties/values.txt (100%) rename milena/doc/{technical => technical.old}/designs/site_psite_piter/README (100%) create mode 100644 milena/doc/technical.tex delete mode 100644 milena/doc/technical/Makefile.am delete mode 100644 milena/doc/technical/technical.tex create mode 100644 milena/doc/tools/data.hh.in rename milena/doc/{tutorial => tutorial.old}/design/Makefile (100%) rename milena/doc/{tutorial => tutorial.old}/design/design.tex (100%) rename milena/doc/{tutorial => tutorial.old}/design/include/imagetours.tex (100%) rename milena/doc/{tutorial => tutorial.old}/design/include/properties.tex (100%) rename milena/doc/{tutorial => tutorial.old}/doxyfile_tuto.local (100%) rename milena/doc/{tutorial => tutorial.old}/image_types.txt (100%) rename milena/doc/{tutorial => tutorial.old}/image_values.txt (100%) rename milena/doc/{tutorial => tutorial.old}/images_tour.txt (100%) rename milena/doc/{tutorial => tutorial.old}/slides.tex (100%) rename milena/doc/{tutorial => }/tutorial.tex (100%) delete mode 100644 milena/doc/tutorial/Makefile.am rename milena/doc/{white_paper/white_paper.tex => white-paper.tex} (100%) delete mode 100644 milena/doc/white_paper/Makefile.am delete mode 100644 milena/img/BUG_lean_ascii.pgm.gz create mode 100644 milena/mln/labeling/value_and_compute.hh create mode 100644 milena/sandbox/bench/fastest.cc create mode 100644 milena/sandbox/green/bench/transform/distance/Makefile.am create mode 100644 milena/sandbox/green/bench/transform/distance/distance.cc create mode 100644 milena/sandbox/green/demo/annotating/bic/Makefile.am create mode 100644 milena/sandbox/green/demo/annotating/bic/bic.cc create mode 100644 milena/sandbox/green/demo/annotating/hsv/Makefile.am create mode 100644 milena/sandbox/green/demo/annotating/hsv/hsv.cc create mode 100644 milena/sandbox/green/demo/annotating/lep/Makefile.am create mode 100644 milena/sandbox/green/demo/annotating/lep/lep.cc create mode 100644 milena/sandbox/green/demo/annotating/nb_color/Makefile.am create mode 100644 milena/sandbox/green/demo/annotating/nb_color/nb_color.cc create mode 100644 milena/sandbox/green/demo/annotating/project/Makefile.am create mode 100644 milena/sandbox/green/demo/annotating/project/project.cc create mode 100644 milena/sandbox/green/demo/annotating/rgb_64/Makefile.am create mode 100644 milena/sandbox/green/demo/annotating/rgb_64/rgb_64.cc create mode 100644 milena/sandbox/green/demo/annotating/rgb_64_9/Makefile.am create mode 100644 milena/sandbox/green/demo/annotating/rgb_64_9/rgb_64_9.cc create mode 100644 milena/sandbox/green/demo/annotating/stddev_color/Makefile.am create mode 100644 milena/sandbox/green/demo/annotating/stddev_color/stddev_color.cc create mode 100644 milena/sandbox/green/demo/annotating/stddev_color_16/Makefile.am create mode 100644 milena/sandbox/green/demo/annotating/stddev_color_16/stddev_color_16.cc copy milena/sandbox/green/demo/{accu/stat/histo2d => clustering/kmean_rgb}/Makefile.am (100%) create mode 100644 milena/sandbox/green/demo/clustering/kmean_rgb/kmean_rgb.cc create mode 100644 milena/sandbox/green/demo/labeling/regional_maxima/thresholds.txt create mode 100644 milena/sandbox/green/doc/annotating/class.txt create mode 100644 milena/sandbox/green/doc/annotating/syntheseMillet2008.txt create mode 100644 milena/sandbox/green/doc/annotating/testMillet2008 create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_method/h0_input.pgm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_method/h2_mean.pgm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_method/h2_merge.pgm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_method/h3_mean.pgm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_method/h3_merge.pgm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_method/h4_mean.pgm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_method/h4_merge.pgm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_method/h5_mean.pgm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_method/h5_merge.pgm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_method/i2_mean.ppm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_method/i2_merge.ppm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_method/i3_mean.ppm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_method/i3_merge.ppm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_method/i4_mean.ppm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_method/i4_merge.ppm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_method/i5_mean.ppm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_method/i5_merge.ppm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_method/l2_input.pgm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_method/l3_input.pgm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_method/l4_input.pgm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_method/l5_input.pgm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_method/reponse_theo.eml create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_method/s2_histo.txt create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_method/s3_histo.txt create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_method/s4_histo.txt create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_method/s5_histo.txt create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_method/synthese.txt create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_quant/h0_input.pgm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_quant/h5_mean_q2.pgm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_quant/h5_mean_q3.pgm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_quant/h5_mean_q4.pgm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_quant/h5_mean_q5.pgm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_quant/h5_mean_q6.pgm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_quant/h5_mean_q7.pgm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_quant/h5_mean_q8.pgm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_quant/h5_merge_q2.pgm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_quant/h5_merge_q3.pgm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_quant/h5_merge_q4.pgm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_quant/h5_merge_q5.pgm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_quant/h5_merge_q6.pgm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_quant/h5_merge_q7.pgm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_quant/h5_merge_q8.pgm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_quant/i5_mean_q2.ppm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_quant/i5_mean_q3.ppm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_quant/i5_mean_q4.ppm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_quant/i5_mean_q5.ppm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_quant/i5_mean_q6.ppm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_quant/i5_mean_q7.ppm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_quant/i5_mean_q8.ppm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_quant/i5_merge_q2.ppm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_quant/i5_merge_q3.ppm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_quant/i5_merge_q4.ppm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_quant/i5_merge_q5.ppm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_quant/i5_merge_q6.ppm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_quant/i5_merge_q7.ppm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_quant/i5_merge_q8.ppm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_quant/l5_input_q2.pgm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_quant/l5_input_q3.pgm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_quant/l5_input_q4.pgm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_quant/l5_input_q5.pgm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_quant/l5_input_q6.pgm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_quant/l5_input_q7.pgm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_quant/l5_input_q8.pgm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_quant/s5_histo_q2.txt create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_quant/s5_histo_q3.txt create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_quant/s5_histo_q4.txt create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_quant/s5_histo_q5.txt create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_quant/s5_histo_q6.txt create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_quant/s5_histo_q7.txt create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_quant/s5_histo_q8.txt create mode 100644 milena/sandbox/green/doc/regional_maxima/cmp_quant/synthese.txt create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/colormap_all_q4.txt.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/colormap_all_q5.txt.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/colormap_thick_q4.txt.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/colormap_thick_q5.txt.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/colormap_thin_q4.txt.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/colormap_thin_q5.txt.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/histo_all_q4.dump.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/histo_all_q5.dump.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/histo_thick_q4.dump.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/histo_thick_q5.dump.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/histo_thin_q4.dump.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/histo_thin_q5.dump.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/iz_all_q4.dump.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/iz_all_q5.dump.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/iz_thick_q4.dump.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/iz_thick_q5.dump.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/iz_thin_q4.dump.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/iz_thin_q5.dump.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/labeled_all_q4.dump.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/labeled_all_q5.dump.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/labeled_thick_q4.dump.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/labeled_thick_q5.dump.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/labeled_thin_q4.dump.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/labeled_thin_q5.dump.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/mean3_all_q4.ppm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/mean3_all_q5.ppm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/mean3_thick_q4.ppm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/mean3_thick_q5.ppm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/mean3_thin_q4.ppm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/mean3_thin_q5.ppm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/mean4_all_q4.ppm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/mean4_all_q5.ppm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/mean4_thick_q4.ppm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/mean4_thick_q5.ppm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/mean4_thin_q4.ppm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/mean4_thin_q5.ppm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/mp00411c.ppm.gz create mode 100755 milena/sandbox/green/doc/regional_maxima/mp00411c/mp00411c.sh.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/mp00411c_thick.pbm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/mp00411c_thin.pbm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/opened_all_q4.dump.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/opened_all_q5.dump.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/opened_thick_q4.dump.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/opened_thick_q5.dump.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/opened_thin_q4.dump.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/opened_thin_q5.dump.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/proj1_all_q4.pgm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/proj1_all_q5.pgm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/proj1_thick_q4.pgm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/proj1_thick_q5.pgm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/proj1_thin_q4.pgm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/proj1_thin_q5.pgm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/proj2_all_q4.pgm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/proj2_all_q5.pgm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/proj2_thick_q4.pgm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/proj2_thick_q5.pgm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/proj2_thin_q4.pgm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/proj2_thin_q5.pgm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/proj3_all_q4.ppm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/proj3_all_q5.ppm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/proj3_thick_q4.ppm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/proj3_thick_q5.ppm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/proj3_thin_q4.ppm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/proj3_thin_q5.ppm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/proj4_all_q4.ppm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/proj4_all_q5.ppm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/proj4_thick_q4.ppm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/proj4_thick_q5.ppm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/proj4_thin_q4.ppm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/proj4_thin_q5.ppm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/quant_q4.ppm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/quant_q5.ppm.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/stats3_all_q4.txt.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/stats3_all_q5.txt.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/stats3_thick_q4.txt.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/stats3_thick_q5.txt.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/stats3_thin_q4.txt.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/stats3_thin_q5.txt.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/stats4_all_q4.txt.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/stats4_all_q5.txt.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/stats4_thick_q4.txt.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/stats4_thick_q5.txt.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/stats4_thin_q4.txt.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/stats4_thin_q5.txt.gz create mode 100644 milena/sandbox/green/doc/regional_maxima/mp00411c/synthese.txt.gz create mode 100644 milena/sandbox/green/exp/annotating/achromastism/Makefile.am create mode 100644 milena/sandbox/green/exp/annotating/achromastism/achromastism.cc create mode 100644 milena/sandbox/green/exp/annotating/achromastism/text-color.txt create mode 100644 milena/sandbox/green/exp/annotating/achromastism/text-img.txt create mode 100644 milena/sandbox/green/exp/annotating/achromastism/text-only.txt create mode 100644 milena/sandbox/green/exp/annotating/bench/Makefile.am create mode 100644 milena/sandbox/green/exp/annotating/bench/bench.cc create mode 100644 milena/sandbox/green/exp/annotating/error/Makefile.am create mode 100644 milena/sandbox/green/exp/annotating/error/error.cc create mode 100644 milena/sandbox/green/exp/annotating/histo/Makefile.am create mode 100644 milena/sandbox/green/exp/annotating/histo/histo.cc create mode 100644 milena/sandbox/green/exp/annotating/hsv/Makefile.am create mode 100644 milena/sandbox/green/exp/annotating/hsv/hsv.cc create mode 100644 milena/sandbox/green/exp/annotating/hue/Makefile.am create mode 100644 milena/sandbox/green/exp/annotating/hue/hue.cc create mode 100644 milena/sandbox/green/exp/annotating/hue/text-color.txt create mode 100644 milena/sandbox/green/exp/annotating/hue/text-img.txt create mode 100644 milena/sandbox/green/exp/annotating/hue/text-only.txt create mode 100644 milena/sandbox/green/exp/annotating/nb_color/Makefile.am create mode 100644 milena/sandbox/green/exp/annotating/nb_color/nb_color.cc create mode 100644 milena/sandbox/green/exp/annotating/saturation/Makefile.am create mode 100644 milena/sandbox/green/exp/annotating/saturation/saturation.cc create mode 100644 milena/sandbox/green/exp/annotating/saturation/text-color.txt create mode 100644 milena/sandbox/green/exp/annotating/saturation/text-img.txt create mode 100644 milena/sandbox/green/exp/annotating/saturation/text-only.txt create mode 100644 milena/sandbox/green/exp/annotating/stddev_color/Makefile.am create mode 100644 milena/sandbox/green/exp/annotating/stddev_color/stddev_color.cc create mode 100644 milena/sandbox/green/exp/annotating/stddev_color_16/Makefile.am create mode 100644 milena/sandbox/green/exp/annotating/stddev_color_16/stddev_color_16.cc create mode 100644 milena/sandbox/green/exp/annotating/value/Makefile.am create mode 100644 milena/sandbox/green/exp/annotating/value/text-color.txt create mode 100644 milena/sandbox/green/exp/annotating/value/text-img.txt create mode 100644 milena/sandbox/green/exp/annotating/value/text-only.txt create mode 100644 milena/sandbox/green/exp/annotating/value/value.cc create mode 100644 milena/sandbox/green/exp/labeling/regional_maxima/Makefile.am create mode 100644 milena/sandbox/green/exp/labeling/regional_maxima/regional_maxima.cc create mode 100644 milena/sandbox/green/mln/clustering/kmean_rgb.hh create mode 100644 milena/sandbox/green/mln/fun/p2b/achromatic.hh create mode 100644 milena/sandbox/green/mln/fun/p2b/component_equals.hh create mode 100644 milena/sandbox/green/mln/fun/v2v/achromatism.hh create mode 100644 milena/sandbox/green/mln/fun/v2v/hue_concentration.hh create mode 100644 milena/sandbox/green/mln/fun/v2v/rgb8_to_int_u8.hh create mode 100644 milena/sandbox/green/mln/fun/v2v/rgb_to_achromatism_map.hh create mode 100644 milena/sandbox/green/mln/fun/v2v/rgb_to_hsv.hh create mode 100644 milena/sandbox/green/mln/fun/v2v/rgb_to_hue_map.hh create mode 100644 milena/sandbox/green/mln/fun/v2v/rgb_to_saturation_map.hh create mode 100644 milena/sandbox/green/mln/fun/v2v/rgb_to_value_map.hh create mode 100644 milena/sandbox/green/mln/math/ceil.hh create mode 100644 milena/sandbox/green/mln/math/floor.hh create mode 100644 milena/sandbox/green/mln/value/hsv.hh create mode 100644 milena/sandbox/green/tools/annotating/histo/Makefile.am create mode 100644 milena/sandbox/green/tools/annotating/histo/histo.cc create mode 100644 milena/sandbox/green/tools/annotating/iz/Makefile.am create mode 100644 milena/sandbox/green/tools/annotating/iz/iz.cc create mode 100644 milena/sandbox/green/tools/annotating/opening/Makefile.am create mode 100644 milena/sandbox/green/tools/annotating/opening/opening.cc create mode 100644 milena/sandbox/green/tools/annotating/regmax/Makefile.am create mode 100644 milena/sandbox/green/tools/annotating/regmax/regmax.cc create mode 100644 milena/tests/convert/to_qimage.cc create mode 100644 milena/tests/convert/to_qimage_nocopy.cc create mode 100644 milena/tests/subsampling/antialiased.cc create mode 100644 milena/tests/unit_test/cond_tests_boost-preprocessor_boost-tuple create mode 100644 milena/tests/unit_test/cond_tests_cfitsio create mode 100644 milena/tests/unit_test/cond_tests_gdcm create mode 100644 milena/tests/unit_test/cond_tests_magickxx create mode 100644 milena/tests/unit_test/cond_tests_qt create mode 100644 milena/tests/unit_test/cond_tests_tiff create mode 100644 milena/tests/util/ord.cc create mode 100644 scribo/README delete mode 100644 scribo/all.hh delete mode 100644 scribo/binarization/internal/first_pass_functor.hh delete mode 100644 scribo/binarization/local_threshold.hh delete mode 100644 scribo/binarization/sauvola.hh delete mode 100644 scribo/binarization/sauvola_ms.hh delete mode 100644 scribo/binarization/sauvola_ms_split.hh delete mode 100644 scribo/binarization/sauvola_threshold_image.hh delete mode 100644 scribo/canvas/integral_browsing.hh delete mode 100644 scribo/core/all.hh delete mode 100644 scribo/core/component_info.hh delete mode 100644 scribo/core/component_set.hh delete mode 100644 scribo/core/erase_objects.hh delete mode 100644 scribo/core/internal/link_functor_base.hh delete mode 100644 scribo/core/line_info.hh delete mode 100644 scribo/core/line_set.hh delete mode 100644 scribo/core/macros.hh delete mode 100644 scribo/core/object_groups.hh delete mode 100644 scribo/core/object_links.hh delete mode 100644 scribo/core/tag/component.hh delete mode 100644 scribo/core/tag/line.hh delete mode 100644 scribo/debug/bboxes_enlarged_image.hh delete mode 100644 scribo/debug/decision_image.hh delete mode 100644 scribo/debug/links_decision_image.hh delete mode 100644 scribo/debug/looks_like_a_text_line_image.hh delete mode 100644 scribo/debug/mean_and_base_lines_image.hh delete mode 100644 scribo/debug/save_bboxes_image.hh delete mode 100644 scribo/debug/save_linked_bboxes_image.hh delete mode 100644 scribo/debug/save_object_diff.hh delete mode 100644 scribo/debug/several_links_decision_image.hh delete mode 100644 scribo/debug/usage.hh create mode 100644 scribo/demo/Makefile.am create mode 100644 scribo/demo/demat/demat.pro create mode 100644 scribo/demo/demat/demat.qrc copy scribo/demo/{wizard => demat}/src/doc_type.hh (100%) create mode 100644 scribo/demo/demat/src/main.cc create mode 100644 scribo/demo/demat/src/main_window.cc create mode 100644 scribo/demo/demat/src/main_window.hh create mode 100644 scribo/demo/demat/src/mln_widgets.cc create mode 100644 scribo/demo/demat/src/preprocessing_task.hh create mode 100644 scribo/demo/demat/src/process_args.hh create mode 100644 scribo/demo/demat/src/runner.cc create mode 100644 scribo/demo/demat/src/runner.hh create mode 100644 scribo/demo/demat/ui/main_window.ui create mode 100644 scribo/demo/shared/src/image_viewer.hxx create mode 100644 scribo/demo/tip/gui.pro create mode 100644 scribo/demo/tip/gui.qrc create mode 100644 scribo/demo/tip/icons/next.png create mode 100644 scribo/demo/tip/icons/ok.png create mode 100644 scribo/demo/tip/icons/photos.png create mode 100644 scribo/demo/tip/icons/prev.png copy scribo/demo/{shared/icons/Symbols-Delete-icon.png => tip/icons/remove.png} (100%) create mode 100644 scribo/demo/tip/src/custom_delegate.cc create mode 100644 scribo/demo/tip/src/custom_delegate.hh create mode 100644 scribo/demo/tip/src/launch_dialog.cc create mode 100644 scribo/demo/tip/src/launch_dialog.hh create mode 100644 scribo/demo/tip/src/main.cc create mode 100644 scribo/demo/tip/src/main_window.cc create mode 100644 scribo/demo/tip/src/main_window.hh create mode 100644 scribo/demo/tip/ui/launch_dialog.ui create mode 100644 scribo/demo/tip/ui/main_window.ui create mode 100644 scribo/demo/viewer/Makefile.am create mode 100644 scribo/demo/viewer/README create mode 100644 scribo/demo/viewer/browser_widget.cc create mode 100644 scribo/demo/viewer/browser_widget.hh create mode 100644 scribo/demo/viewer/common.hh create mode 100644 scribo/demo/viewer/domitem.cc create mode 100644 scribo/demo/viewer/domitem.hh create mode 100644 scribo/demo/viewer/dommodel.cc create mode 100644 scribo/demo/viewer/dommodel.hh create mode 100644 scribo/demo/viewer/help_dialog.cc create mode 100644 scribo/demo/viewer/help_dialog.hh create mode 100644 scribo/demo/viewer/image_region.cc create mode 100644 scribo/demo/viewer/image_region.hh create mode 100644 scribo/demo/viewer/image_region.hxx create mode 100644 scribo/demo/viewer/image_scene.cc create mode 100644 scribo/demo/viewer/image_scene.hh create mode 100644 scribo/demo/viewer/image_view.cc create mode 100644 scribo/demo/viewer/image_view.hh create mode 100644 scribo/demo/viewer/image_widget.cc create mode 100644 scribo/demo/viewer/image_widget.hh create mode 100644 scribo/demo/viewer/key_widget.cc create mode 100644 scribo/demo/viewer/key_widget.hh create mode 100644 scribo/demo/viewer/main.cc create mode 100644 scribo/demo/viewer/property_widget.cc create mode 100644 scribo/demo/viewer/property_widget.hh create mode 100644 scribo/demo/viewer/step_widget.cc create mode 100644 scribo/demo/viewer/step_widget.hh create mode 100644 scribo/demo/viewer/viewer.cc create mode 100644 scribo/demo/viewer/viewer.hh create mode 100644 scribo/demo/viewer/viewer.hxx create mode 100644 scribo/demo/viewer/xml_widget.cc create mode 100644 scribo/demo/viewer/xml_widget.hh create mode 100644 scribo/demo/wizard/src/result_page.cc create mode 100644 scribo/demo/wizard/src/result_page.hh create mode 100644 scribo/demo/wizard/src/result_widget.cc create mode 100644 scribo/demo/wizard/src/result_widget.hh delete mode 100644 scribo/draw/bounding_box_links.hh delete mode 100644 scribo/draw/bounding_boxes.hh delete mode 100644 scribo/filter/all.hh delete mode 100644 scribo/filter/internal/compute.hh delete mode 100644 scribo/filter/object_groups_size_ratio.hh delete mode 100644 scribo/filter/object_groups_small.hh delete mode 100644 scribo/filter/object_groups_v_thickness.hh delete mode 100644 scribo/filter/object_groups_with_holes.hh delete mode 100644 scribo/filter/object_links_bbox_ratio.hh delete mode 100644 scribo/filter/object_links_bbox_w_ratio.hh delete mode 100644 scribo/filter/object_links_bottom_aligned.hh delete mode 100644 scribo/filter/object_links_center_aligned.hh delete mode 100644 scribo/filter/object_links_left_aligned.hh delete mode 100644 scribo/filter/object_links_non_aligned.hh delete mode 100644 scribo/filter/object_links_non_aligned_simple.hh delete mode 100644 scribo/filter/object_links_non_h_aligned.hh delete mode 100644 scribo/filter/object_links_non_v_aligned.hh delete mode 100644 scribo/filter/object_links_right_aligned.hh delete mode 100644 scribo/filter/object_links_top_aligned.hh delete mode 100644 scribo/filter/objects_h_thick.hh delete mode 100644 scribo/filter/objects_h_thin.hh delete mode 100644 scribo/filter/objects_large.hh delete mode 100644 scribo/filter/objects_size_ratio.hh delete mode 100644 scribo/filter/objects_small.hh delete mode 100644 scribo/filter/objects_thick.hh delete mode 100644 scribo/filter/objects_thin.hh delete mode 100644 scribo/filter/objects_v_thick.hh delete mode 100644 scribo/filter/objects_v_thin.hh delete mode 100644 scribo/filter/objects_with_holes.hh delete mode 100644 scribo/io/xml/save_text_lines.hh delete mode 100644 scribo/make/all.hh delete mode 100644 scribo/make/text.hh delete mode 100644 scribo/preprocessing/all.hh delete mode 100644 scribo/preprocessing/denoise_bg.hh delete mode 100644 scribo/preprocessing/denoise_fg.hh delete mode 100644 scribo/preprocessing/rotate_90.hh delete mode 100644 scribo/preprocessing/split_bg_fg.hh delete mode 100644 scribo/preprocessing/unskew.hh delete mode 100644 scribo/primitive/extract/all.hh delete mode 100644 scribo/primitive/extract/components.hh delete mode 100644 scribo/primitive/extract/lines_discontinued.hh delete mode 100644 scribo/primitive/extract/lines_h_discontinued.hh delete mode 100644 scribo/primitive/extract/lines_h_pattern.hh delete mode 100644 scribo/primitive/extract/lines_h_single.hh delete mode 100644 scribo/primitive/extract/lines_h_thick.hh delete mode 100644 scribo/primitive/extract/lines_h_thick_and_single.hh delete mode 100644 scribo/primitive/extract/lines_pattern.hh delete mode 100644 scribo/primitive/extract/lines_thick.hh delete mode 100644 scribo/primitive/extract/lines_v_discontinued.hh delete mode 100644 scribo/primitive/extract/lines_v_pattern.hh delete mode 100644 scribo/primitive/extract/lines_v_single.hh delete mode 100644 scribo/primitive/extract/lines_v_thick.hh delete mode 100644 scribo/primitive/extract/lines_v_thick_and_single.hh delete mode 100644 scribo/primitive/group/all.hh delete mode 100644 scribo/primitive/group/apply.hh delete mode 100644 scribo/primitive/group/from_double_link.hh delete mode 100644 scribo/primitive/group/from_graph.hh delete mode 100644 scribo/primitive/group/from_single_link.hh delete mode 100644 scribo/primitive/internal/all.hh delete mode 100644 scribo/primitive/internal/find_graph_link.hh delete mode 100644 scribo/primitive/internal/find_root.hh delete mode 100644 scribo/primitive/internal/init_link_array.hh delete mode 100644 scribo/primitive/internal/is_link_valid.hh delete mode 100644 scribo/primitive/internal/rd.hh delete mode 100644 scribo/primitive/internal/update_link_array.hh delete mode 100644 scribo/primitive/link/all.hh delete mode 100644 scribo/primitive/link/compute_several.hh delete mode 100644 scribo/primitive/link/internal/compute_anchor.hh delete mode 100644 scribo/primitive/link/internal/find_several_links.hh delete mode 100644 scribo/primitive/link/internal/link_functor_base.hh delete mode 100644 scribo/primitive/link/internal/link_ms_dmax_base.hh delete mode 100644 scribo/primitive/link/internal/link_ms_dmax_ratio_base.hh delete mode 100644 scribo/primitive/link/internal/link_several_dmax_base.hh delete mode 100644 scribo/primitive/link/internal/link_single_dmax_ratio_base.hh delete mode 100644 scribo/primitive/link/merge_double_link.hh delete mode 100644 scribo/primitive/link/with_graph.hh delete mode 100644 scribo/primitive/link/with_rag.hh delete mode 100644 scribo/primitive/link/with_several_graphes.hh delete mode 100644 scribo/primitive/link/with_several_left_links.hh delete mode 100644 scribo/primitive/link/with_several_right_closest_links.hh delete mode 100644 scribo/primitive/link/with_several_right_links.hh delete mode 100644 scribo/primitive/link/with_single_down_link.hh delete mode 100644 scribo/primitive/link/with_single_left_link_dmax_ratio.hh delete mode 100644 scribo/primitive/link/with_single_right_link_dmax_ratio.hh delete mode 100644 scribo/primitive/link/with_single_up_link.hh delete mode 100644 scribo/primitive/regroup/from_single_left_link.hh create mode 100644 scribo/sandbox/ChangeLog create mode 100644 scribo/sandbox/green/ChangeLog create mode 100644 scribo/sandbox/green/README create mode 100644 scribo/sandbox/green/README.green create mode 100644 scribo/sandbox/green/README.img create mode 100644 scribo/sandbox/green/README.result create mode 100644 scribo/sandbox/green/bench/clustering/distance/Makefile.am create mode 100644 scribo/sandbox/green/bench/clustering/distance/distance.cc create mode 100644 scribo/sandbox/green/demo/clustering/kmean1d/Makefile.am create mode 100644 scribo/sandbox/green/demo/clustering/kmean1d/kmean1d.cc create mode 100644 scribo/sandbox/green/demo/clustering/kmean2d/Makefile.am create mode 100644 scribo/sandbox/green/demo/clustering/kmean2d/kmean2d.cc create mode 100644 scribo/sandbox/green/demo/clustering/kmean3d/Makefile.am create mode 100644 scribo/sandbox/green/demo/clustering/kmean3d/kmean3d.cc create mode 100644 scribo/sandbox/green/demo/clustering/kmean_rgb/Makefile.am create mode 100644 scribo/sandbox/green/demo/clustering/kmean_rgb/kmean_rgb.cc copy {milena/sandbox/green/tests/accu/stat/histo1d => scribo/sandbox/green}/gaussian.sh (100%) copy {milena/sandbox/green/tests/accu/stat/histo2d => scribo/sandbox/green}/gaussian2d.sh (100%) create mode 100644 scribo/sandbox/green/mln/accu/stat/histo1d.hh create mode 100644 scribo/sandbox/green/mln/accu/stat/histo2d.hh create mode 100644 scribo/sandbox/green/mln/accu/stat/histo3d_hsl.hh create mode 100644 scribo/sandbox/green/mln/accu/stat/histo3d_rgb.hh create mode 100644 scribo/sandbox/green/mln/clustering/k_mean.hh create mode 100644 scribo/sandbox/green/mln/clustering/kmean1d.hh create mode 100644 scribo/sandbox/green/mln/clustering/kmean2d.hh create mode 100644 scribo/sandbox/green/mln/clustering/kmean3d.hh create mode 100644 scribo/sandbox/green/mln/clustering/kmean_rgb.hh create mode 100644 scribo/sandbox/green/mln/display/display_histo.hh create mode 100644 scribo/sandbox/green/mln/display/project_histo.hh create mode 100644 scribo/sandbox/green/mln/fun/p2b/achromatic.hh create mode 100644 scribo/sandbox/green/mln/fun/p2b/component_equals.hh create mode 100644 scribo/sandbox/green/mln/fun/v2v/achromatism.hh create mode 100644 scribo/sandbox/green/mln/fun/v2v/hue_concentration.hh copy {milena => scribo}/sandbox/green/mln/fun/v2v/int_u16_to_int_u14.hh (100%) copy {milena => scribo}/sandbox/green/mln/fun/v2v/log.hh (100%) create mode 100644 scribo/sandbox/green/mln/fun/v2v/rg_to_rgb.hh create mode 100644 scribo/sandbox/green/mln/fun/v2v/rgb8_to_int_u8.hh create mode 100644 scribo/sandbox/green/mln/fun/v2v/rgb8_to_rgbn.hh create mode 100644 scribo/sandbox/green/mln/fun/v2v/rgb_to_achromatism_map.hh create mode 100644 scribo/sandbox/green/mln/fun/v2v/rgb_to_hsv.hh create mode 100644 scribo/sandbox/green/mln/fun/v2v/rgb_to_hue_map.hh create mode 100644 scribo/sandbox/green/mln/fun/v2v/rgb_to_rg.hh create mode 100644 scribo/sandbox/green/mln/fun/v2v/rgb_to_saturation_map.hh create mode 100644 scribo/sandbox/green/mln/fun/v2v/rgb_to_value_map.hh create mode 100644 scribo/sandbox/green/mln/img_path.hh create mode 100644 scribo/sandbox/green/mln/io/plot/save_image_sh.hh create mode 100644 scribo/sandbox/green/mln/math/ceil.hh create mode 100644 scribo/sandbox/green/mln/math/floor.hh create mode 100644 scribo/sandbox/green/mln/value/hsv.hh create mode 100644 scribo/sandbox/green/mln/value/rg.hh create mode 100644 scribo/sandbox/green/ok/mln/accu/histo/histo1d.hh copy {milena/sandbox/green/mln/accu/stat => scribo/sandbox/green/ok/mln/accu/histo}/histo2d.hh (100%) copy milena/sandbox/green/mln/accu/stat/histo3d_rgb.hh => scribo/sandbox/green/ok/mln/accu/histo/histo3d.hh (100%) create mode 100644 scribo/sandbox/green/ok/mln/img_path.hh copy {milena/sandbox/green/tests/accu/stat/histo1d => scribo/sandbox/green/ok/test/accu/histo}/gaussian.sh (100%) create mode 100755 scribo/sandbox/green/ok/test/accu/histo/histo1d create mode 100644 scribo/sandbox/green/ok/test/accu/histo/histo1d.cc create mode 100644 scribo/sandbox/green/test_labelling.cc create mode 100644 scribo/sandbox/green/test_labelling_2.cc create mode 100644 scribo/sandbox/green/test_labelling_3.cc create mode 100644 scribo/sandbox/green/tests/accu/stat/histo1d/Makefile.am create mode 100644 scribo/sandbox/green/tests/accu/stat/histo1d/histo1d.cc create mode 100644 scribo/sandbox/green/tests/accu/stat/histo3d_hsl/Makefile.am create mode 100644 scribo/sandbox/green/tests/accu/stat/histo3d_hsl/histo3d_hsl.cc create mode 100644 scribo/sandbox/green/tests/accu/stat/histo3d_rgb/Makefile.am create mode 100644 scribo/sandbox/green/tests/accu/stat/histo3d_rgb/histo3d_rgb.cc create mode 100644 scribo/sandbox/green/tests/clustering/k_mean/Makefile.am create mode 100644 scribo/sandbox/green/tests/clustering/k_mean/k_mean.cc copy {milena => scribo}/sandbox/green/tests/clustering/kmean1d/Makefile.am (100%) copy {milena => scribo}/sandbox/green/tests/clustering/kmean1d/kmean1d.cc (100%) create mode 100644 scribo/sandbox/green/tests/io/plot/save_image_sh/Makefile.am create mode 100644 scribo/sandbox/green/tests/io/plot/save_image_sh/save_image_sh.cc create mode 100644 scribo/sandbox/green/use/accu/stat/histo1d/Makefile.am create mode 100644 scribo/sandbox/green/use/accu/stat/histo1d/histo1d.cc create mode 100644 scribo/sandbox/green/use/accu/stat/histo2d/Makefile.am create mode 100644 scribo/sandbox/green/use/accu/stat/histo2d/histo2d.cc create mode 100644 scribo/sandbox/green/use/accu/stat/histo3d_hsl/Makefile.am create mode 100644 scribo/sandbox/green/use/accu/stat/histo3d_hsl/histo3d_hsl.cc create mode 100644 scribo/sandbox/green/use/accu/stat/histo3d_rgb/Makefile.am create mode 100644 scribo/sandbox/green/use/accu/stat/histo3d_rgb/histo3d_rgb.cc create mode 100644 scribo/sandbox/green/use/clustering/k_mean/Makefile.am create mode 100644 scribo/sandbox/green/use/clustering/k_mean/k_mean.cc create mode 100644 scribo/sandbox/green/use/clustering/kmean1d/Makefile.am create mode 100644 scribo/sandbox/green/use/clustering/kmean1d/kmean1d.cc create mode 100644 scribo/sandbox/green/use/clustering/kmean2d/Makefile.am create mode 100644 scribo/sandbox/green/use/clustering/kmean2d/kmean2d.cc create mode 100644 scribo/sandbox/green/use/clustering/kmean3d/Makefile.am create mode 100644 scribo/sandbox/green/use/clustering/kmean3d/kmean3d.cc create mode 100644 scribo/sandbox/green/use/clustering/kmean_rgb/Makefile.am create mode 100644 scribo/sandbox/green/use/clustering/kmean_rgb/kmean_rgb.cc create mode 100644 scribo/sandbox/green/use/fun/v2v/rg_to_rgb/Makefile.am create mode 100644 scribo/sandbox/green/use/fun/v2v/rg_to_rgb/rg_to_rgb.cc create mode 100644 scribo/sandbox/green/use/fun/v2v/rgb8_to_rgbn/Makefile.am create mode 100644 scribo/sandbox/green/use/fun/v2v/rgb8_to_rgbn/rgb8_to_rgbn.cc create mode 100644 scribo/sandbox/green/use/fun/v2v/rgb_to_rg/Makefile.am create mode 100644 scribo/sandbox/green/use/fun/v2v/rgb_to_rg/rgb_to_rg.cc create mode 100644 scribo/sandbox/green/use/io/plot/save_image_sh/Makefile.am create mode 100644 scribo/sandbox/green/use/io/plot/save_image_sh/save_image_sh.cc create mode 100644 scribo/sandbox/green/use/value/rg/Makefile.am create mode 100644 scribo/sandbox/green/use/value/rg/rg.cc create mode 100644 scribo/sandbox/z/white_spaces/hom_sep.cc create mode 100644 scribo/sandbox/z/white_spaces/white_space_closing.cc create mode 100644 scribo/sandbox/z/white_spaces/white_spaces.cc create mode 100644 scribo/scribo/all.hh create mode 100644 scribo/scribo/binarization/all.hh rename scribo/{ => scribo}/binarization/global_threshold.hh (100%) rename scribo/{ => scribo}/binarization/global_threshold_auto.hh (100%) create mode 100644 scribo/scribo/binarization/internal/first_pass_functor.hh create mode 100644 scribo/scribo/binarization/local_threshold.hh create mode 100644 scribo/scribo/binarization/sauvola.hh create mode 100644 scribo/scribo/binarization/sauvola_ms.hh create mode 100644 scribo/scribo/binarization/sauvola_ms_split.hh create mode 100644 scribo/scribo/binarization/sauvola_threshold_image.hh create mode 100644 scribo/scribo/binarization/sauvola_threshold_image_debug.hh create mode 100644 scribo/scribo/canvas/integral_browsing.hh create mode 100644 scribo/scribo/convert/from_qimage.hh create mode 100644 scribo/scribo/core/all.hh rename scribo/{ => scribo}/core/central_sites.hh (100%) create mode 100644 scribo/scribo/core/component_info.hh create mode 100644 scribo/scribo/core/component_set.hh create mode 100644 scribo/scribo/core/concept/dmax_functor.hh rename scribo/{ => scribo}/core/concept/link_functor.hh (100%) create mode 100644 scribo/scribo/core/def/lbl_type.hh create mode 100644 scribo/scribo/core/erase_objects.hh rename scribo/{ => scribo}/core/init_integral_image.hh (100%) create mode 100644 scribo/scribo/core/line_info.hh create mode 100644 scribo/scribo/core/line_set.hh create mode 100644 scribo/scribo/core/macros.hh create mode 100644 scribo/scribo/core/object_groups.hh create mode 100644 scribo/scribo/core/object_links.hh rename scribo/{ => scribo}/core/tag/anchor.hh (100%) create mode 100644 scribo/scribo/core/tag/component.hh create mode 100644 scribo/scribo/core/tag/line.hh rename scribo/{ => scribo}/debug/alignment_decision_image.hh (100%) rename scribo/{ => scribo}/debug/all.hh (100%) create mode 100644 scribo/scribo/debug/bboxes_enlarged_image.hh create mode 100644 scribo/scribo/debug/char_space_image.hh create mode 100644 scribo/scribo/debug/decision_image.hh create mode 100644 scribo/scribo/debug/highlight_text_area.hh create mode 100644 scribo/scribo/debug/line_info_image.hh create mode 100644 scribo/scribo/debug/links_decision_image.hh create mode 100644 scribo/scribo/debug/looks_like_a_text_line_image.hh create mode 100644 scribo/scribo/debug/mean_and_base_lines_image.hh create mode 100644 scribo/scribo/debug/save_bboxes_image.hh create mode 100644 scribo/scribo/debug/save_comp_diff.hh rename scribo/{ => scribo}/debug/save_label_image.hh (100%) create mode 100644 scribo/scribo/debug/save_linked_bboxes_image.hh rename scribo/{ => scribo}/debug/save_table_image.hh (100%) create mode 100644 scribo/scribo/debug/several_links_decision_image.hh create mode 100644 scribo/scribo/debug/text_areas_image.hh create mode 100644 scribo/scribo/debug/usage.hh rename scribo/{ => scribo}/draw/all.hh (100%) create mode 100644 scribo/scribo/draw/bounding_box_links.hh create mode 100644 scribo/scribo/draw/bounding_boxes.hh rename scribo/{ => scribo}/draw/groups_bboxes.hh (100%) rename scribo/{ => scribo}/estim/object_groups_v_thickness.hh (100%) create mode 100644 scribo/scribo/filter/all.hh rename scribo/{ => scribo}/filter/common/objects_photo.hh (100%) create mode 100644 scribo/scribo/filter/internal/alignment_angle.hh create mode 100644 scribo/scribo/filter/internal/component_aligned.hh create mode 100644 scribo/scribo/filter/internal/compute.hh create mode 100644 scribo/scribo/filter/object_groups_size_ratio.hh create mode 100644 scribo/scribo/filter/object_groups_small.hh create mode 100644 scribo/scribo/filter/object_groups_v_thickness.hh create mode 100644 scribo/scribo/filter/object_groups_with_holes.hh rename scribo/{ => scribo}/filter/object_links_bbox_h_ratio.hh (100%) rename scribo/{ => scribo}/filter/object_links_bbox_overlap.hh (100%) create mode 100644 scribo/scribo/filter/object_links_bbox_ratio.hh create mode 100644 scribo/scribo/filter/object_links_bbox_w_ratio.hh create mode 100644 scribo/scribo/filter/object_links_bottom_aligned.hh create mode 100644 scribo/scribo/filter/object_links_center_aligned.hh create mode 100644 scribo/scribo/filter/object_links_left_aligned.hh create mode 100644 scribo/scribo/filter/object_links_non_aligned_simple.hh create mode 100644 scribo/scribo/filter/object_links_right_aligned.hh create mode 100644 scribo/scribo/filter/object_links_top_aligned.hh create mode 100644 scribo/scribo/filter/objects_h_thick.hh create mode 100644 scribo/scribo/filter/objects_h_thin.hh create mode 100644 scribo/scribo/filter/objects_large.hh create mode 100644 scribo/scribo/filter/objects_size_ratio.hh create mode 100644 scribo/scribo/filter/objects_small.hh create mode 100644 scribo/scribo/filter/objects_thick.hh create mode 100644 scribo/scribo/filter/objects_thin.hh create mode 100644 scribo/scribo/filter/objects_v_thick.hh create mode 100644 scribo/scribo/filter/objects_v_thin.hh create mode 100644 scribo/scribo/filter/objects_with_holes.hh rename scribo/{ => scribo}/fun/v2b/label_to_bool.hh (100%) create mode 100644 scribo/scribo/fun/v2b/objects_large_filter.hh rename scribo/{ => scribo}/fun/v2b/objects_small_filter.hh (100%) create mode 100644 scribo/scribo/io/text_boxes/save.hh create mode 100644 scribo/scribo/io/xml/save.hh create mode 100644 scribo/scribo/make/all.hh rename scribo/{ => scribo}/make/debug_filename.hh (100%) rename scribo/{ => scribo}/make/influence_zone_graph.hh (100%) create mode 100644 scribo/scribo/postprocessing/all.hh create mode 100644 scribo/scribo/postprocessing/fill_object_holes.hh create mode 100644 scribo/scribo/preprocessing/all.hh create mode 100644 scribo/scribo/preprocessing/crop.hh create mode 100644 scribo/scribo/preprocessing/crop_without_localization.hh rename scribo/{ => scribo}/preprocessing/denoise.hh (100%) create mode 100644 scribo/scribo/preprocessing/denoise_bg.hh create mode 100644 scribo/scribo/preprocessing/denoise_fg.hh create mode 100644 scribo/scribo/preprocessing/deskew.hh create mode 100644 scribo/scribo/preprocessing/deskew_crop.hh rename scribo/{ => scribo}/preprocessing/homogeneous_contrast.hh (100%) create mode 100644 scribo/scribo/preprocessing/rotate_90.hh create mode 100644 scribo/scribo/preprocessing/split_bg_fg.hh rename scribo/{ => scribo}/primitive/all.hh (100%) create mode 100644 scribo/scribo/primitive/extract/all.hh rename scribo/{ => scribo}/primitive/extract/canvas.hh (100%) rename scribo/{ => scribo}/primitive/extract/cells.hh (100%) create mode 100644 scribo/scribo/primitive/extract/components.hh create mode 100644 scribo/scribo/primitive/extract/horizontal_separators.hh create mode 100644 scribo/scribo/primitive/extract/lines_discontinued.hh create mode 100644 scribo/scribo/primitive/extract/lines_h_discontinued.hh create mode 100644 scribo/scribo/primitive/extract/lines_h_pattern.hh create mode 100644 scribo/scribo/primitive/extract/lines_h_single.hh create mode 100644 scribo/scribo/primitive/extract/lines_h_thick.hh create mode 100644 scribo/scribo/primitive/extract/lines_h_thick_and_single.hh create mode 100644 scribo/scribo/primitive/extract/lines_pattern.hh create mode 100644 scribo/scribo/primitive/extract/lines_thick.hh create mode 100644 scribo/scribo/primitive/extract/lines_v_discontinued.hh create mode 100644 scribo/scribo/primitive/extract/lines_v_pattern.hh create mode 100644 scribo/scribo/primitive/extract/lines_v_single.hh create mode 100644 scribo/scribo/primitive/extract/lines_v_thick.hh create mode 100644 scribo/scribo/primitive/extract/lines_v_thick_and_single.hh create mode 100644 scribo/scribo/primitive/extract/separators.hh create mode 100644 scribo/scribo/primitive/extract/vertical_separators.hh create mode 100644 scribo/scribo/primitive/group/all.hh create mode 100644 scribo/scribo/primitive/group/apply.hh create mode 100644 scribo/scribo/primitive/group/from_double_link.hh create mode 100644 scribo/scribo/primitive/group/from_graph.hh create mode 100644 scribo/scribo/primitive/group/from_single_link.hh create mode 100644 scribo/scribo/primitive/internal/all.hh create mode 100644 scribo/scribo/primitive/internal/find_graph_link.hh create mode 100644 scribo/scribo/primitive/internal/find_root.hh rename scribo/{ => scribo}/primitive/internal/have_link_valid.hh (100%) create mode 100644 scribo/scribo/primitive/internal/is_link_valid.hh create mode 100644 scribo/scribo/primitive/internal/rd.hh rename scribo/{ => scribo}/primitive/internal/update_graph_link.hh (100%) create mode 100644 scribo/scribo/primitive/link/all.hh rename scribo/{ => scribo}/primitive/link/compute.hh (100%) create mode 100644 scribo/scribo/primitive/link/compute_several.hh create mode 100644 scribo/scribo/primitive/link/internal/compute_anchor.hh create mode 100644 scribo/scribo/primitive/link/internal/dmax_default.hh create mode 100644 scribo/scribo/primitive/link/internal/dmax_functor_base.hh create mode 100644 scribo/scribo/primitive/link/internal/dmax_width_and_height.hh create mode 100644 scribo/scribo/primitive/link/internal/dmax_width_only.hh rename scribo/{ => scribo}/primitive/link/internal/find_link.hh (100%) create mode 100644 scribo/scribo/primitive/link/internal/find_several_links.hh create mode 100644 scribo/scribo/primitive/link/internal/link_functor_base.hh create mode 100644 scribo/scribo/primitive/link/internal/link_several_dmax_base.hh rename scribo/{ => scribo}/primitive/link/internal/link_single_dmax_base.hh (100%) create mode 100644 scribo/scribo/primitive/link/internal/link_single_dmax_ratio_base.hh create mode 100644 scribo/scribo/primitive/link/merge_double_link.hh create mode 100644 scribo/scribo/primitive/link/with_graph.hh create mode 100644 scribo/scribo/primitive/link/with_rag.hh create mode 100644 scribo/scribo/primitive/link/with_several_graphes.hh create mode 100644 scribo/scribo/primitive/link/with_several_left_links.hh create mode 100644 scribo/scribo/primitive/link/with_several_right_closest_links.hh create mode 100644 scribo/scribo/primitive/link/with_several_right_links.hh rename scribo/{ => scribo}/primitive/link/with_several_right_links_overlap.hh (100%) create mode 100644 scribo/scribo/primitive/link/with_single_down_link.hh rename scribo/{ => scribo}/primitive/link/with_single_left_link.hh (100%) create mode 100644 scribo/scribo/primitive/link/with_single_left_link_dmax_ratio.hh rename scribo/{ => scribo}/primitive/link/with_single_right_link.hh (100%) rename scribo/{ => scribo}/primitive/link/with_single_right_link_bottom.hh (100%) create mode 100644 scribo/scribo/primitive/link/with_single_right_link_dmax_ratio.hh rename scribo/{ => scribo}/primitive/link/with_single_right_link_top.hh (100%) create mode 100644 scribo/scribo/primitive/link/with_single_up_link.hh create mode 100644 scribo/scribo/primitive/regroup/from_single_left_link.hh create mode 100644 scribo/scribo/primitive/regroup/from_single_left_link_wrt_h_ratio.hh create mode 100644 scribo/scribo/primitive/remove/separators.hh create mode 100644 scribo/scribo/subsampling/bilinear.hh rename scribo/{ => scribo}/subsampling/integral.hh (100%) create mode 100644 scribo/scribo/subsampling/integral_single_image.hh create mode 100644 scribo/scribo/table/align_lines_horizontaly.hh rename scribo/{ => scribo}/table/align_lines_verticaly.hh (100%) rename scribo/{ => scribo}/table/all.hh (100%) rename scribo/{ => scribo}/table/connect_horizontal_lines.hh (100%) rename scribo/{ => scribo}/table/connect_vertical_lines.hh (100%) create mode 100644 scribo/scribo/table/erase.hh create mode 100644 scribo/scribo/table/extract.hh create mode 100644 scribo/scribo/table/internal/align_lines.hh rename scribo/{ => scribo}/table/internal/all.hh (100%) create mode 100644 scribo/scribo/table/internal/connect_lines.hh create mode 100644 scribo/scribo/table/internal/repair_lines.hh create mode 100644 scribo/scribo/table/rebuild.hh rename scribo/{ => scribo}/table/repair_horizontal_lines.hh (100%) rename scribo/{ => scribo}/table/repair_vertical_lines.hh (100%) rename scribo/{ => scribo}/text/all.hh (100%) create mode 100644 scribo/scribo/text/clean.hh create mode 100644 scribo/scribo/text/clean_inplace.hh create mode 100644 scribo/scribo/text/extract_lines.hh create mode 100644 scribo/scribo/text/look_like_text_lines.hh create mode 100644 scribo/scribo/text/merging.hh create mode 100644 scribo/scribo/text/recognition.hh create mode 100644 scribo/scribo/toolchain/nepomuk/text_extraction.hh create mode 100644 scribo/scribo/toolchain/text_in_doc.hh create mode 100644 scribo/scribo/upsampling/bs2x.hh create mode 100644 scribo/scribo/upsampling/eagle.hh create mode 100644 scribo/src/README create mode 100644 scribo/src/binarization/fg_sauvola_ms.cc create mode 100644 scribo/src/binarization/sauvola.cc create mode 100644 scribo/src/binarization/sauvola_debug.cc create mode 100644 scribo/src/binarization/sauvola_ms.cc create mode 100644 scribo/src/binarization/sauvola_ms_debug.cc create mode 100644 scribo/src/binarization/sauvola_ms_split.cc create mode 100644 scribo/src/contest/Makefile.am create mode 100644 scribo/src/contest/hdibco-2010/Makefile.am create mode 100644 scribo/src/contest/hdibco-2010/sauvola_ms_hdibco.cc create mode 100644 scribo/src/debug/highlight_text_area.cc delete mode 100644 scribo/src/multi_scale/Makefile.am delete mode 100644 scribo/src/multi_scale/find_lines.cc delete mode 100644 scribo/src/pbm_lines_in_doc.cc create mode 100644 scribo/src/pbm_text_in_doc.cc create mode 100644 scribo/src/postprocessing/Makefile.am create mode 100644 scribo/src/postprocessing/fill_object_holes.cc delete mode 100644 scribo/src/preprocessing/denoise.cc create mode 100644 scribo/src/preprocessing/denoise_bg.cc create mode 100644 scribo/src/preprocessing/denoise_fg.cc create mode 100644 scribo/src/preprocessing/rotate.cc create mode 100644 scribo/src/preprocessing/rotate_90.cc create mode 100644 scribo/src/preprocessing/to_pgm.cc create mode 100644 scribo/src/text/pbm_lines_recognition.cc delete mode 100644 scribo/src/text/recognition.cc delete mode 100644 scribo/src/text_in_article.cc delete mode 100644 scribo/src/text_in_doc.cc delete mode 100644 scribo/src/text_in_doc_ppm.cc create mode 100644 scribo/src/text_in_doc_preprocess.cc delete mode 100644 scribo/src/text_in_photo.cc delete mode 100644 scribo/src/text_in_photo_invert.cc delete mode 100644 scribo/src/text_in_photo_pbm_fast.cc delete mode 100644 scribo/src/text_in_photo_ppm.cc delete mode 100644 scribo/src/text_in_photo_ppm_fast.cc create mode 100644 scribo/src/text_in_picture.cc create mode 100644 scribo/src/text_recognition_in_picture.cc delete mode 100644 scribo/subsampling/integral_single_image.hh delete mode 100644 scribo/table/align_lines_horizontaly.hh delete mode 100644 scribo/table/erase.hh delete mode 100644 scribo/table/extract.hh delete mode 100644 scribo/table/internal/align_lines.hh delete mode 100644 scribo/table/internal/connect_lines.hh delete mode 100644 scribo/table/internal/repair_lines.hh delete mode 100644 scribo/table/rebuild.hh delete mode 100644 scribo/test.cc delete mode 100644 scribo/tests/core/object_image.cc create mode 100644 scribo/tests/img/text_to_group.pgm create mode 100644 scribo/tests/img/wildly.pbm create mode 100644 scribo/tests/preprocessing/crop.cc create mode 100644 scribo/tests/preprocessing/crop_without_localization.cc create mode 100644 scribo/tests/preprocessing/deskew.cc delete mode 100644 scribo/tests/preprocessing/unskew.cc create mode 100644 scribo/tests/toolchain/Makefile.am create mode 100644 scribo/tests/toolchain/nepomuk/Makefile.am create mode 100644 scribo/tests/toolchain/nepomuk/text_extraction.cc delete mode 100755 scribo/tests/unit_test/build_unit_test.sh create mode 100644 scribo/tests/unit_test/cond_tests_qt create mode 100644 scribo/tests/unit_test/cond_tests_qt_tesseract_tiff create mode 100644 scribo/tests/unit_test/cond_tests_tesseract_tiff create mode 100644 scribo/tests/unit_test/disabled_tests delete mode 100644 scribo/text/clean.hh delete mode 100644 scribo/text/extract_lines.hh delete mode 100644 scribo/text/merging.hh delete mode 100644 scribo/text/recognition.hh delete mode 100644 scribo/util/all.hh delete mode 100644 scribo/util/text.hh hooks/post-receive -- Olena, a generic and efficient image processing platform
14Â years, 10Â months
1
0
0
0
← Newer
1
...
368
369
370
371
372
373
374
...
963
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
Results per page:
10
25
50
100
200