Commit 4ceffd14 authored by Guillaume Lazzara's avatar Guillaume Lazzara
Browse files

Remove deprecated programs.

	* demo/demat/demat.pro,
	* demo/demat/demat.qrc,
	* demo/demat/src/doc_type.hh,
	* demo/demat/src/main.cc,
	* demo/demat/src/main_window.cc,
	* demo/demat/src/main_window.hh,
	* demo/demat/src/mln_widgets.cc,
	* demo/demat/src/preprocessing_task.hh,
	* demo/demat/src/process_args.hh,
	* demo/demat/src/runner.cc,
	* demo/demat/src/runner.hh,
	* demo/demat/ui/main_window.ui,
	* demo/review/Makefile.am,
	* demo/review/icons/document-open.png,
	* demo/review/icons/edit-find.png,
	* demo/review/icons/format-indent-more.png,
	* demo/review/icons/go-next.png,
	* demo/review/icons/image-x-generic.png,
	* demo/review/icons/list-add.png,
	* demo/review/icons/ocr.png,
	* demo/review/icons/text-x-generic.png,
	* demo/review/icons/view-refresh.png,
	* demo/review/icons/x-office-spreadsheet.png,
	* demo/review/mainwindow.ui,
	* demo/review/review.qrc,
	* demo/review/src/main.cc,
	* demo/review/src/mainwindow.cc,
	* demo/review/src/mainwindow.hh,
	* demo/shared/icons/Symbols-Delete-icon.png,
	* demo/shared/icons/accept-icon.png,
	* demo/shared/icons/close.gif,
	* demo/shared/icons/crop-icon.png,
	* demo/shared/icons/image-add-icon.png,
	* demo/shared/icons/image-edit-icon.png,
	* demo/shared/icons/image-multi-icon.png,
	* demo/shared/icons/image-next-icon.png,
	* demo/shared/icons/image-remove-icon.png,
	* demo/shared/icons/next-icon.png,
	* demo/shared/icons/olena_smaller.jpg,
	* demo/shared/icons/page-down-icon.png,
	* demo/shared/icons/page-search-icon.png,
	* demo/shared/icons/rotate_ccw.png,
	* demo/shared/icons/rotate_cw.png,
	* demo/shared/icons/search-add-icon.png,
	* demo/shared/icons/search-remove-icon.png,
	* demo/shared/shared.qrc,
	* demo/shared/src/bak/crop_item.cc,
	* demo/shared/src/bak/crop_item.hh,
	* demo/shared/src/bak/image_viewer.cc,
	* demo/shared/src/bak/image_viewer.hh,
	* demo/shared/src/bak/types.hh,
	* demo/shared/src/browse_widget.cc,
	* demo/shared/src/browse_widget.hh,
	* demo/shared/src/crop_item.cc,
	* demo/shared/src/crop_item.hh,
	* demo/shared/src/image_viewer.cc,
	* demo/shared/src/image_viewer.hh,
	* demo/shared/src/image_viewer.hxx,
	* demo/shared/src/internal.bak/interactive_scene.cc,
	* demo/shared/src/internal.bak/interactive_scene.hh,
	* demo/shared/src/internal.bak/selection_rectangle.cc,
	* demo/shared/src/internal.bak/selection_rectangle.hh,
	* demo/shared/src/internal/interactive_scene.cc,
	* demo/shared/src/internal/interactive_scene.hh,
	* demo/shared/src/internal/selection_rectangle.cc,
	* demo/shared/src/internal/selection_rectangle.hh,
	* demo/shared/src/to_mln_image.hh,
	* demo/shared/src/types.hh,
	* demo/shared/ui/browse_widget.ui,
	* demo/shared/ui/crop_widget.ui,
	* demo/shared/ui/image_viewer.ui,
	* demo/shared/ui/interactive_scene.cc,
	* demo/shared/ui/interactive_scene.hh,
	* demo/shared/ui/rotate_widget.ui,
	* demo/tip/gui.pro,
	* demo/tip/gui.qrc,
	* demo/tip/icons/next.png,
	* demo/tip/icons/ok.png,
	* demo/tip/icons/photos.png,
	* demo/tip/icons/prev.png,
	* demo/tip/icons/remove.png,
	* demo/tip/src/custom_delegate.cc,
	* demo/tip/src/custom_delegate.hh,
	* demo/tip/src/launch_dialog.cc,
	* demo/tip/src/launch_dialog.hh,
	* demo/tip/src/main.cc,
	* demo/tip/src/main_window.cc,
	* demo/tip/src/main_window.hh,
	* demo/tip/ui/launch_dialog.ui,
	* demo/tip/ui/main_window.ui,
	* demo/wizard/images/dematerialization.png,
	* demo/wizard/src/crop_page.cc,
	* demo/wizard/src/crop_page.hh,
	* demo/wizard/src/crop_widget.cc,
	* demo/wizard/src/crop_widget.hh,
	* demo/wizard/src/doc_type.hh,
	* demo/wizard/src/doc_type_page.cc,
	* demo/wizard/src/doc_type_page.hh,
	* demo/wizard/src/doc_type_widget.cc,
	* demo/wizard/src/doc_type_widget.hh,
	* demo/wizard/src/load_page.cc,
	* demo/wizard/src/load_page.hh,
	* demo/wizard/src/load_widget.cc,
	* demo/wizard/src/load_widget.hh,
	* demo/wizard/src/main.cc,
	* demo/wizard/src/main_window.cc,
	* demo/wizard/src/main_window.hh,
	* demo/wizard/src/mln_widgets.cc,
	* demo/wizard/src/preprocessing_page.cc,
	* demo/wizard/src/preprocessing_page.hh,
	* demo/wizard/src/preprocessing_task.hh,
	* demo/wizard/src/preprocessing_widget.cc,
	* demo/wizard/src/preprocessing_widget.hh,
	* demo/wizard/src/process_page.cc,
	* demo/wizard/src/process_page.hh,
	* demo/wizard/src/process_widget.cc,
	* demo/wizard/src/process_widget.hh,
	* demo/wizard/src/result_page.cc,
	* demo/wizard/src/result_page.hh,
	* demo/wizard/src/result_widget.cc,
	* demo/wizard/src/result_widget.hh,
	* demo/wizard/src/rotate_page.cc,
	* demo/wizard/src/rotate_page.hh,
	* demo/wizard/src/rotate_widget.cc,
	* demo/wizard/src/rotate_widget.hh,
	* demo/wizard/src/runner.cc,
	* demo/wizard/src/runner.hh,
	* demo/wizard/src/test.cc,
	* demo/wizard/ui/doc_type_widget.ui,
	* demo/wizard/ui/load_widget.ui,
	* demo/wizard/ui/main_window.ui,
	* demo/wizard/ui/preprocessing_widget.ui,
	* demo/wizard/wizard.pro,
	* demo/wizard/wizard.qrc: Remove.
parent ea3b8de3
2013-03-07 Guillaume Lazzara <z@lrde.epita.fr>
Remove deprecated programs.
* demo/demat/demat.pro,
* demo/demat/demat.qrc,
* demo/demat/src/doc_type.hh,
* demo/demat/src/main.cc,
* demo/demat/src/main_window.cc,
* demo/demat/src/main_window.hh,
* demo/demat/src/mln_widgets.cc,
* demo/demat/src/preprocessing_task.hh,
* demo/demat/src/process_args.hh,
* demo/demat/src/runner.cc,
* demo/demat/src/runner.hh,
* demo/demat/ui/main_window.ui,
* demo/review/Makefile.am,
* demo/review/icons/document-open.png,
* demo/review/icons/edit-find.png,
* demo/review/icons/format-indent-more.png,
* demo/review/icons/go-next.png,
* demo/review/icons/image-x-generic.png,
* demo/review/icons/list-add.png,
* demo/review/icons/ocr.png,
* demo/review/icons/text-x-generic.png,
* demo/review/icons/view-refresh.png,
* demo/review/icons/x-office-spreadsheet.png,
* demo/review/mainwindow.ui,
* demo/review/review.qrc,
* demo/review/src/main.cc,
* demo/review/src/mainwindow.cc,
* demo/review/src/mainwindow.hh,
* demo/shared/icons/Symbols-Delete-icon.png,
* demo/shared/icons/accept-icon.png,
* demo/shared/icons/close.gif,
* demo/shared/icons/crop-icon.png,
* demo/shared/icons/image-add-icon.png,
* demo/shared/icons/image-edit-icon.png,
* demo/shared/icons/image-multi-icon.png,
* demo/shared/icons/image-next-icon.png,
* demo/shared/icons/image-remove-icon.png,
* demo/shared/icons/next-icon.png,
* demo/shared/icons/olena_smaller.jpg,
* demo/shared/icons/page-down-icon.png,
* demo/shared/icons/page-search-icon.png,
* demo/shared/icons/rotate_ccw.png,
* demo/shared/icons/rotate_cw.png,
* demo/shared/icons/search-add-icon.png,
* demo/shared/icons/search-remove-icon.png,
* demo/shared/shared.qrc,
* demo/shared/src/bak/crop_item.cc,
* demo/shared/src/bak/crop_item.hh,
* demo/shared/src/bak/image_viewer.cc,
* demo/shared/src/bak/image_viewer.hh,
* demo/shared/src/bak/types.hh,
* demo/shared/src/browse_widget.cc,
* demo/shared/src/browse_widget.hh,
* demo/shared/src/crop_item.cc,
* demo/shared/src/crop_item.hh,
* demo/shared/src/image_viewer.cc,
* demo/shared/src/image_viewer.hh,
* demo/shared/src/image_viewer.hxx,
* demo/shared/src/internal.bak/interactive_scene.cc,
* demo/shared/src/internal.bak/interactive_scene.hh,
* demo/shared/src/internal.bak/selection_rectangle.cc,
* demo/shared/src/internal.bak/selection_rectangle.hh,
* demo/shared/src/internal/interactive_scene.cc,
* demo/shared/src/internal/interactive_scene.hh,
* demo/shared/src/internal/selection_rectangle.cc,
* demo/shared/src/internal/selection_rectangle.hh,
* demo/shared/src/to_mln_image.hh,
* demo/shared/src/types.hh,
* demo/shared/ui/browse_widget.ui,
* demo/shared/ui/crop_widget.ui,
* demo/shared/ui/image_viewer.ui,
* demo/shared/ui/interactive_scene.cc,
* demo/shared/ui/interactive_scene.hh,
* demo/shared/ui/rotate_widget.ui,
* demo/tip/gui.pro,
* demo/tip/gui.qrc,
* demo/tip/icons/next.png,
* demo/tip/icons/ok.png,
* demo/tip/icons/photos.png,
* demo/tip/icons/prev.png,
* demo/tip/icons/remove.png,
* demo/tip/src/custom_delegate.cc,
* demo/tip/src/custom_delegate.hh,
* demo/tip/src/launch_dialog.cc,
* demo/tip/src/launch_dialog.hh,
* demo/tip/src/main.cc,
* demo/tip/src/main_window.cc,
* demo/tip/src/main_window.hh,
* demo/tip/ui/launch_dialog.ui,
* demo/tip/ui/main_window.ui,
* demo/wizard/images/dematerialization.png,
* demo/wizard/src/crop_page.cc,
* demo/wizard/src/crop_page.hh,
* demo/wizard/src/crop_widget.cc,
* demo/wizard/src/crop_widget.hh,
* demo/wizard/src/doc_type.hh,
* demo/wizard/src/doc_type_page.cc,
* demo/wizard/src/doc_type_page.hh,
* demo/wizard/src/doc_type_widget.cc,
* demo/wizard/src/doc_type_widget.hh,
* demo/wizard/src/load_page.cc,
* demo/wizard/src/load_page.hh,
* demo/wizard/src/load_widget.cc,
* demo/wizard/src/load_widget.hh,
* demo/wizard/src/main.cc,
* demo/wizard/src/main_window.cc,
* demo/wizard/src/main_window.hh,
* demo/wizard/src/mln_widgets.cc,
* demo/wizard/src/preprocessing_page.cc,
* demo/wizard/src/preprocessing_page.hh,
* demo/wizard/src/preprocessing_task.hh,
* demo/wizard/src/preprocessing_widget.cc,
* demo/wizard/src/preprocessing_widget.hh,
* demo/wizard/src/process_page.cc,
* demo/wizard/src/process_page.hh,
* demo/wizard/src/process_widget.cc,
* demo/wizard/src/process_widget.hh,
* demo/wizard/src/result_page.cc,
* demo/wizard/src/result_page.hh,
* demo/wizard/src/result_widget.cc,
* demo/wizard/src/result_widget.hh,
* demo/wizard/src/rotate_page.cc,
* demo/wizard/src/rotate_page.hh,
* demo/wizard/src/rotate_widget.cc,
* demo/wizard/src/rotate_widget.hh,
* demo/wizard/src/runner.cc,
* demo/wizard/src/runner.hh,
* demo/wizard/src/test.cc,
* demo/wizard/ui/doc_type_widget.ui,
* demo/wizard/ui/load_widget.ui,
* demo/wizard/ui/main_window.ui,
* demo/wizard/ui/preprocessing_widget.ui,
* demo/wizard/wizard.pro,
* demo/wizard/wizard.qrc: Remove.
2013-03-07 Guillaume Lazzara <z@lrde.epita.fr>
Fix compilation related problems in viewer.
......
......@@ -19,9 +19,6 @@ SUBDIRS =
if HAVE_QT
SUBDIRS += review
if HAVE_MAGICKXX
......@@ -35,7 +32,6 @@ endif HAVE_MAGICKXX
# FIXME: Add more dependencies (fop, xsltproc)
if HAVE_MAGICKXX
......
# -*- c++ -*-
######################################################################
# Automatically generated by qmake (2.01a) Tue Feb 9 12:02:10 2010
######################################################################
TEMPLATE = app
TARGET =
DEPENDPATH += . src
INCLUDEPATH += . ../ ../shared $(OLN)/milena $(OLN)/scribo
QMAKE_CXXFLAGS += -g -O0
LIBS +=/usr/lib/libMagick++.so
# `Magick++-config --ldflags --libs`
DEFINES += NDEBUG MLN_WO_GLOBAL_VARS
# Input
HEADERS += \
../shared/src/crop_item.hh \
../shared/src/image_viewer.hh \
../shared/src/internal/interactive_scene.hh \
../shared/src/browse_widget.hh \
src/main_window.hh \
src/runner.hh
SOURCES += \
../shared/src/crop_item.cc \
../shared/src/image_viewer.cc \
../shared/src/internal/interactive_scene.cc \
../shared/src/browse_widget.cc \
src/main_window.cc \
src/main.cc \
src/runner.cc
FORMS += \
../shared/ui/image_viewer.ui \
ui/main_window.ui
RESOURCES += ../shared/shared.qrc demat.qrc
<RCC>
<qresource prefix="images" >
</qresource>
</RCC>
// 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 SCRIBO_DEMO_SHARED_SRC_DOC_TYPE_HH
# define SCRIBO_DEMO_SHARED_SRC_DOC_TYPE_HH
namespace scribo
{
namespace demo
{
enum Doc_Type
{
Text_Doc,
Picture,
Mixed_Doc,
Invalid_Doc
};
} // end of namespace scribo::demo
} // end of namespace scribo
#endif // !SCRIBO_DEMO_SHARED_SRC_DOC_TYPE_HH
#undef MLN_WO_GLOBAL_VARS
#include <mln/core/image/image2d.hh>
#include <mln/trace/all.hh>
#include <QtGui>
#include <src/main_window.hh>
#include <src/preprocessing_task.hh>
namespace scribo { namespace demo {extern QString basedir_; } }
int main(int argc, char* argv[])
{
QApplication app(argc, argv);
qRegisterMetaType<preprocessing_task_set_t>("preprocessing_task_set_t");
if (argc == 2)
{
scribo::demo::basedir_ = argv[1];
}
else
{
qDebug() << "Usage: " << argv[0] << " <path_to_scribo/src>";
return 1;
}
scribo::demo::demat::main_window win;
win.show();
return app.exec();
}
// 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 <src/main_window.hh>
#include <src/doc_type.hh>
#include <src/preprocessing_task.hh>
#include <src/process_args.hh>
#include <mln/data/convert.hh>
#include <mln/convert/to_qimage_nocopy.hh>
#include <mln/core/routine/duplicate.hh>
#include <mln/make/box2d.hh>
#include <mln/data/paste.hh>
#include <mln/io/magick/load.hh>
namespace scribo
{
namespace demo
{
namespace demat
{
main_window::main_window()
{
setupUi(this);
text_->hide();
connect(action_Open, SIGNAL(activated()),
this, SLOT(open_file_slot()));
connect(run_btn, SIGNAL(clicked()), this, SLOT(run()));
// Connections to/from task runner.
connect(&runner_, SIGNAL(new_progress_label(const QString&)),
this, SLOT(update_progress_label_slot(const QString&)));
connect(&runner_, SIGNAL(progress(unsigned)),
this, SLOT(progress_slot(unsigned)));
connect(&runner_, SIGNAL(finished()),
this, SLOT(process_finished_slot()));
// Connections for dock windows.
connect(advanced_dock_, SIGNAL(visibilityChanged(bool)),
actionAdvanced_options, SLOT(setChecked(bool)));
connect(options_dock_, SIGNAL(visibilityChanged(bool)),
actionOptions, SLOT(setChecked(bool)));
connect(actionAdvanced_options, SIGNAL(triggered(bool)),
advanced_dock_, SLOT(setVisible(bool)));
connect(actionOptions, SIGNAL(triggered(bool)),
options_dock_, SLOT(setVisible(bool)));
progress_ = new QProgressDialog();
progress_->setLabelText("Processing...");
progress_->setCancelButton(0);
progress_->setAutoClose(true);
action_Reload->setEnabled(false);
run_btn->setEnabled(false);
// Setup crop tool.
viewer_->set_selection_enabled(true);
connect(viewer_, SIGNAL(ready_for_crop()), this, SLOT(crop_slot()));
}
void main_window::open_file_slot()
{
QFileDialog dialog;
QStringList filters;
filters << tr("Image (*.ppm *.pbm *.pgm *.png *.jpg)");
dialog.setNameFilters(filters);
dialog.setFileMode(QFileDialog::ExistingFile);
dialog.setLabelText(QFileDialog::LookIn,
tr("Choose an existing file"));
if (dialog.exec() && current_image_ != dialog.selectedFiles().at(0))
{
current_image_ = dialog.selectedFiles().at(0);
load();
}
}
void main_window::load()
{
text_->hide();
mln::io::magick::load(input_, current_image_.toStdString());
input_dsp_ = QPixmap::fromImage(mln::convert::to_qimage_nocopy(input_));
viewer_->draw_image(input_dsp_);
action_Reload->setEnabled(true);
run_btn->setEnabled(true);
}
void main_window::run()
{
preprocessing_task_set_t tasks = get_tasks();
prepare_progress_bar(tasks.size());
process_args args; // Nothing for now.
runner_.start(current_image_, get_crop_image(), Text_Doc, tasks, args);
setEnabled(false);
}
preprocessing_task_set_t main_window::get_tasks()
{
preprocessing_task_set_t tasks;
if (removeBg->isChecked())
tasks.insert(RemoveBg);
if (unskew->isChecked())
tasks.insert(Unskew);
if (removeNoise->isChecked())
tasks.insert(RemoveNoise);
if (improveContrast->isChecked())
tasks.insert(ImproveContrast);
if (reduceSize->isChecked())
tasks.insert(ReduceSize);
if (binarizationCBox->currentIndex() == 0)
tasks.insert(BinarizationSimple);
else if (binarizationCBox->currentIndex() == 1)
tasks.insert(BinarizationSauvola);
else if (binarizationCBox->currentIndex() == 2)
tasks.insert(BinarizationSauvolaMs);
else if (binarizationCBox->currentIndex() == 3)
tasks.insert(BinarizationSauvolaMsSplit);
return tasks;
}
void main_window::prepare_progress_bar(unsigned max)
{
progress_->show();
progress_->setValue(0);
progress_->setMaximum(max + 3);
}
void main_window::progress_slot(unsigned i)
{
progress_->setValue(progress_->value() + i);
}
void main_window::update_progress_label_slot(const QString& msg)
{
progress_->setLabelText(msg);
}
void main_window::process_finished_slot()
{
text_->clear();
QFile file("/tmp/out.txt");
if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
return;
QTextStream in(&file);
in.setCodec("UTF-8");
while (!in.atEnd())
{
QString line = in.readLine();
line = line.section(' ', 4);
text_->append(line);
}
text_->show();
setEnabled(true);
}
void main_window::on_action_Reload_triggered(bool)
{
load();
}
mln::image2d<mln::value::rgb8>
main_window::get_crop_image() const
{
mln::box2d b = input_.domain();
QRectF selection = viewer_->selection();
mln::box2d sbox = mln::make::box2d(selection.topLeft().y(),
selection.topLeft().x(),
selection.bottomRight().y(),
selection.bottomRight().x());
sbox.crop_wrt(b);
if (sbox.is_valid())
{
// Update underlying data.
mln::image2d<mln::value::rgb8> output(sbox);
mln::data::fill(output, input_);
return output;
}
// No crop performed.
return input_;
}
void main_window::crop_slot()
{
mln::image2d<mln::value::rgb8> tmp = get_crop_image();
if (tmp.buffer() != input_.buffer()) // A crop has been performed.
{
input_ = tmp;
// Update display
viewer_->draw_image(input_);
}
}
} // end of namespace scribo::demo::demat
} // end of namespace scribo::demo
} // end of namespace scribo
// 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 SCRIBO_DEMO_DEMAT_SRC_MAIN_WINDOW_HH
# define SCRIBO_DEMO_DEMAT_SRC_MAIN_WINDOW_HH
# include <QtGui/QMainWindow>
# include <ui_main_window.h>
# include <src/doc_type.hh>
# include <src/preprocessing_task.hh>
# include <src/runner.hh>
# include <mln/core/image/image2d.hh>
# include <mln/core/image/dmorph/image_if.hh>
# include <mln/pw/all.hh>
# include <mln/value/rgb8.hh>
namespace scribo
{
namespace demo
{
namespace demat
{
class main_window : public QMainWindow, private Ui::MainWindow
{
Q_OBJECT;
public:
main_window();
private slots:
void run();
void open_file_slot();
void progress_slot(unsigned i);
void update_progress_label_slot(const QString&);
void process_finished_slot();