
* arthur/xml_transform/image_crop.cc, * arthur/xml_transform/image_crop.hh: Load the input image only once. * arthur/xml_transform/main.cc: Undef MLN_WO_GLOBAL_VARS macro. * arthur/xml_transform/xml_transform.pro: Enable MLN_WO_GLOBAL_VARS macro. --- scribo/sandbox/ChangeLog | 13 +++++++++ scribo/sandbox/arthur/xml_transform/image_crop.cc | 27 ++++++++----------- scribo/sandbox/arthur/xml_transform/image_crop.hh | 23 ++++++----------- scribo/sandbox/arthur/xml_transform/main.cc | 4 +++ .../sandbox/arthur/xml_transform/xml_transform.pro | 10 +++--- 5 files changed, 41 insertions(+), 36 deletions(-) diff --git a/scribo/sandbox/ChangeLog b/scribo/sandbox/ChangeLog index eb97ae9..2779292 100644 --- a/scribo/sandbox/ChangeLog +++ b/scribo/sandbox/ChangeLog @@ -1,3 +1,16 @@ +2010-11-18 Guillaume Lazzara <z@lrde.epita.fr> + + Improve image cropping in xml_transform. + + * arthur/xml_transform/image_crop.cc, + * arthur/xml_transform/image_crop.hh: Load the input image only + once. + + * arthur/xml_transform/main.cc: Undef MLN_WO_GLOBAL_VARS macro. + + * arthur/xml_transform/xml_transform.pro: Enable + MLN_WO_GLOBAL_VARS macro. + 2010-09-02 Guillaume Lazzara <z@lrde.epita.fr> * arthur/xml_transform/xml_transform.pro: Define NDEBUG at compile diff --git a/scribo/sandbox/arthur/xml_transform/image_crop.cc b/scribo/sandbox/arthur/xml_transform/image_crop.cc index 702d49f..d2787f1 100644 --- a/scribo/sandbox/arthur/xml_transform/image_crop.cc +++ b/scribo/sandbox/arthur/xml_transform/image_crop.cc @@ -23,11 +23,7 @@ // 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 "common.hh" - -# include <limits.h> +#include <limits.h> #include <scribo/preprocessing/crop.hh> #include <mln/value/rgb8.hh> @@ -37,12 +33,18 @@ #include <mln/io/magick/load.hh> #include <mln/io/ppm/all.hh> +#include "image_crop.hh" +#include "loader.hh" +#include "common.hh" + + ImageCrop::ImageCrop(const QString& xml, const QString& img, const QString& output) : xml_(xml), image_(img), output_dir_(output) { + mln::io::magick::load(ima_, image_.toStdString()); } ImageCrop::~ImageCrop() @@ -53,12 +55,7 @@ ImageCrop::~ImageCrop() /* Save image to PNG format in output_dir/img. */ void ImageCrop::save_image(const QString& out) { - using namespace mln; - - image2d<value::rgb8> ima; - io::magick::load(ima, image_.toStdString()); - - io::magick::save(ima, out.toStdString()); + mln::io::magick::save(ima_, out.toStdString()); } /* Return the image in base 64. */ @@ -315,9 +312,7 @@ bool ImageCrop::crop_regions(bool temp) using namespace mln; box2d box = make::box2d(y_min, x_min, y_max, x_max); - image2d<value::rgb8> ima; - io::magick::load(ima, image_.toStdString()); - ima = scribo::preprocessing::crop(ima, box); + image2d<value::rgb8> crop = scribo::preprocessing::crop(ima_, box); if (temp) { @@ -325,10 +320,10 @@ bool ImageCrop::crop_regions(bool temp) tmp.open(); region_map_[id] = tmp.fileName(); tmp.setAutoRemove(false); - io::magick::save(ima, tmp.fileName().toStdString()); + io::magick::save(crop, tmp.fileName().toStdString()); } else - io::magick::save(ima, QString(output_dir_ + id + ".png").toStdString()); + io::magick::save(crop, QString(output_dir_ + id + ".png").toStdString()); } region = region.nextSibling(); } diff --git a/scribo/sandbox/arthur/xml_transform/image_crop.hh b/scribo/sandbox/arthur/xml_transform/image_crop.hh index 598143b..ec2f9a2 100644 --- a/scribo/sandbox/arthur/xml_transform/image_crop.hh +++ b/scribo/sandbox/arthur/xml_transform/image_crop.hh @@ -23,12 +23,16 @@ // 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 +#ifndef IMAGE_CROP_HH +# define IMAGE_CROP_HH -#include <QDomDocument> +# include <QDomDocument> # include <QtCore> +# include <mln/value/rgb8.hh> +# include <mln/core/image/image2d.hh> + + class DomModel; class ImageCrop : public QObject @@ -36,17 +40,6 @@ class ImageCrop : public QObject Q_OBJECT public: -<<<<<<< HEAD - ImageCrop(QString, QString, QString); - ~ImageCrop(); - - void save_image(QString); - bool crop_regions(bool temp = false); - - QString img_to_base64(); - bool img_from_base64(QString, QString); - void to_base64(QString, bool); -======= ImageCrop(const QString&, const QString&, const QString&); ~ImageCrop(); @@ -56,7 +49,6 @@ class ImageCrop : public QObject QString img_to_base64(); bool img_from_base64(const QString&, const QString&); void to_base64(const QString&, bool); ->>>>>>> 6f0918c... Add missing const references to function arguments. void from_base64(); @@ -65,6 +57,7 @@ private: QString image_; QString output_dir_; QMap<QString, QString> region_map_; + mln::image2d<mln::value::rgb8> ima_; }; #endif /* !IMAGE_CROP_HH */ diff --git a/scribo/sandbox/arthur/xml_transform/main.cc b/scribo/sandbox/arthur/xml_transform/main.cc index 0dfb84e..a580585 100644 --- a/scribo/sandbox/arthur/xml_transform/main.cc +++ b/scribo/sandbox/arthur/xml_transform/main.cc @@ -3,6 +3,10 @@ #include <string> #include <cstdlib> #include <Magick++.h> + +#undef MLN_WO_GLOBAL_VARS +#include <mln/core/image/image2d.hh> + #include "xml_transform.hh" int main(int argc, char **argv) diff --git a/scribo/sandbox/arthur/xml_transform/xml_transform.pro b/scribo/sandbox/arthur/xml_transform/xml_transform.pro index 4a2ed2e..918f0d6 100644 --- a/scribo/sandbox/arthur/xml_transform/xml_transform.pro +++ b/scribo/sandbox/arthur/xml_transform/xml_transform.pro @@ -6,12 +6,12 @@ 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/ -DEFINES += NDEBUG +QMAKE_CXXFLAGS += -I../../../../milena -I../../../../scribo +DEFINES += NDEBUG MLN_WO_GLOBAL_VARS QT += xml LIBS += `Magick++-config --libs` + + +# Input HEADERS += common.hh image_crop.hh loader.hh xml_transform.hh SOURCES += common.cc image_crop.cc loader.cc main.cc xml_transform.cc -PWD += - -QMAKE_POST_LINK += cp -r $$PWD/templates $$OUT_PWD -- 1.5.6.5