Skip to content
Snippets Groups Projects
Commit ab9f285e authored by Sacha Percot-Tétu's avatar Sacha Percot-Tétu
Browse files

Added Filtering result type choice

parent 612578b7
No related branches found
No related tags found
No related merge requests found
......@@ -24,6 +24,7 @@
#include <GenericInterface.h>
#include <Converter.h>
#include <Widgets/ImageWidgets/DoubleImageWindow.h>
#include <QApplication>
using namespace filtrme;
using namespace genericinterface;
......@@ -35,7 +36,7 @@ void FilteringService::display(GenericInterface* gi)
// _filtering = _toolBar->addAction("&Filtering");
// _filterEdition = _toolBar->addAction("&FilterEditor");
QMenu* menu = gi->menu(tr("Filtering"));
QMenu* menu = gi->menu(qApp->translate("", "Filtering"));
_filtering = menu->addAction(tr("&Apply filter"));
_filtering->setEnabled(false);
_filterEdition = menu->addAction(tr("&Edit filters"));
......@@ -63,6 +64,7 @@ void FilteringService::applyFiltering()
_siw = siw;
_filterChoice = new FilterChoice(_gi);
_filterChoice->setDoubleResult(siw->isDouble());
// QMdiArea* area = (QMdiArea*)_gi->centralWidget();
// area->addSubWindow(_filterChoice);
QDialog::DialogCode code = static_cast<QDialog::DialogCode>(_filterChoice->exec());
......@@ -70,6 +72,7 @@ void FilteringService::applyFiltering()
if(code!=QDialog::Accepted) {
return;
}
_dblResult = _filterChoice->doubleResult();
Filtering* filtering = _filterChoice->getFiltering();
this->applyAlgorithm(filtering);
......@@ -109,16 +112,23 @@ void FilteringService::applyAlgorithm(Filtering* algo)
ImageWindow* riw;
if(_siw->isStandard()) {
delete image;
}
if(_dblResult) {
DoubleImageWindow* diw = dynamic_cast<DoubleImageWindow*>(_siw);
if(diw != NULL) {
riw = new DoubleImageWindow(dblResImg, _siw->getPath(), diw->isNormalized(), diw->isLogScaled());
}
else {
riw = new DoubleImageWindow(dblResImg, _siw->getPath());
}
}
else {
Image_t<int>* intResImg = Converter<Image_t<int> >::convert(*dblResImg);
delete dblResImg;
Image* resImg = Converter<Image>::makeDisplayable(*intResImg);
delete intResImg;
riw = new StandardImageWindow(resImg, _siw->getPath());
}
else {
DoubleImageWindow* diw = dynamic_cast<DoubleImageWindow*>(_siw);
riw = new DoubleImageWindow(dblResImg, _siw->getPath(), diw->isNormalized(), diw->isLogScaled());
}
riw->setWindowTitle(_siw->windowTitle());
emit newImageWindowCreated(_ws->getNodeId(_siw), riw);
}
......
......@@ -63,6 +63,7 @@ namespace filtrme
QStringList _texts;
genericinterface::ImageWindow* _siw;
bool _dblResult;
};
}
......
......@@ -40,8 +40,13 @@ OperationService::OperationService(GenericOperation* operation, QMenu* menu) : _
void OperationService::display(GenericInterface* gi)
{
_gi = gi;
_action = _menu->addAction(_operation->getName().c_str());
if(_operation->getName().length() > 0) {
_action = _menu->addAction(_operation->getName().c_str());
}
else {
_action = _menu->addSeparator();
}
}
void OperationService::connect(GenericInterface* gi)
......@@ -51,11 +56,11 @@ void OperationService::connect(GenericInterface* gi)
void OperationService::operation() {
cout << _operation->getName() << endl;
// cout << _operation->getName() << endl;
WindowService* ws = _gi->windowService();
ImageWindow* curImgWnd = ws->getCurrentImageWindow();
// StandardImageWindow* curStdImgWnd = NULL;
// if (curImgWnd != NULL)
// {
......
......@@ -46,6 +46,10 @@
#include <QtXml/QDomElement>
#include <QTextStream>
#include <QGroupBox>
#include <QRadioButton>
#include <QHBoxLayout>
#include <QFormLayout>
#include <QSpacerItem>
#include <GenericInterface.h>
......@@ -60,6 +64,10 @@ FilterChoice::FilterChoice(QWidget* parent) : QDialog(parent)
initUI();
}
/**
* @brief
*
*/
void FilterChoice::initUI()
{
......@@ -69,8 +77,10 @@ void FilterChoice::initUI()
layout->addWidget(mainWidget);
QHBoxLayout* mainLayout = new QHBoxLayout(mainWidget);
QWidget* leftWidget = new QWidget();
QFormLayout* leftLayout = new QFormLayout(leftWidget);
QLayout* leftLayout = new QVBoxLayout(leftWidget);
QGroupBox* confBox = new QGroupBox(tr("Filter configuration"));
QFormLayout* confLayout = new QFormLayout(confBox);
/* FILTER CHOICE */
QLabel* label = new QLabel(this);
label->setText(tr("Filter:"));
......@@ -78,7 +88,7 @@ void FilterChoice::initUI()
QStringList blurs = initFilters();
_blurChoices->addItems(blurs);
QObject::connect(_blurChoices, SIGNAL(currentIndexChanged(int)), this, SLOT(currentBlurChanged(int)));
leftLayout->addRow(label, _blurChoices);
confLayout->addRow(label, _blurChoices);
/* POLICIES CHOICE */
QLabel* label_2 = new QLabel(this);
......@@ -86,14 +96,25 @@ void FilterChoice::initUI()
_policyChoices = new QComboBox(this);
QStringList policies = QStringList() << tr("Black") << tr("Mirror") << tr("Nearest") << tr("Spherical");
_policyChoices->addItems(policies);
leftLayout->addRow(label_2, _policyChoices);
confLayout->addRow(label_2, _policyChoices);
_labelNumber = new QLabel(this);
_labelNumber->setText(tr("Number of pixels:"));
_number = new QSpinBox(this);
_number->setValue(3);
_number->setMinimum(1);
leftLayout->addRow(_labelNumber, _number);
confLayout->addRow(_labelNumber, _number);
QGroupBox* radioBox = new QGroupBox(tr("Resulting image type"));
_stdResButton = new QRadioButton(tr("Standard"));
_dblResButton = new QRadioButton(tr("Floating point"));
radioBox->setLayout(new QHBoxLayout());
radioBox->layout()->addWidget(_stdResButton);
radioBox->layout()->addWidget(_dblResButton);
leftLayout->addWidget(confBox);
leftLayout->addWidget(radioBox);
mainLayout->addWidget(leftWidget);
......@@ -151,6 +172,11 @@ void FilterChoice::initUI()
}
/**
* @brief
*
* @return QStringList
*/
QStringList FilterChoice::initFilters() {
QStringList blurs = QStringList();
......@@ -223,16 +249,30 @@ QStringList FilterChoice::initFilters() {
return blurs;
}
/**
* @brief
*
* @param int
*/
void FilterChoice::currentBlurChanged(int)
{
updateDisplay();
}
/**
* @brief
*
* @param
*/
void FilterChoice::dataChanged(const QString&)
{
updateDisplay();
}
/**
* @brief
*
*/
void FilterChoice::validate()
{
int num = _number->value();
......@@ -272,11 +312,19 @@ void FilterChoice::validate()
this->accept();
}
/**
* @brief
*
*/
void FilterChoice::cancel()
{
// emit(cancelAction());
}
/**
* @brief
*
*/
void FilterChoice::deleteFilter()
{
QMessageBox msgBox(QMessageBox::Warning, tr("Warning!"), tr("This filter will be permanently deleted ?"));
......@@ -321,6 +369,10 @@ void FilterChoice::deleteFilter()
}
}
/**
* @brief
*
*/
void FilterChoice::updateDisplay()
{
std::vector<Filter*> filters;
......
......@@ -35,6 +35,7 @@
#include <QPushButton>
#include <QStringList>
#include <Algorithm/Filtering.h>
#include <QRadioButton>
namespace filtrme
{
......@@ -50,7 +51,9 @@ namespace filtrme
public:
FilterChoice(QWidget *parent);
inline imagein::algorithm::Filtering* getFiltering() { return _filtering; }
inline bool doubleResult() { return _dblResButton->isChecked(); }
inline void setDoubleResult(bool c) { _dblResButton->setChecked(c); _stdResButton->setChecked(!c);}
signals:
void choiceValidate(imagein::algorithm::Filtering* filtering);
......@@ -77,6 +80,8 @@ namespace filtrme
QTableWidget* _filterView;
QPushButton* _deleteButton;
imagein::algorithm::Filtering* _filtering;
QRadioButton* _dblResButton;
QRadioButton* _stdResButton;
};
}
......
......@@ -60,13 +60,14 @@
#include "Operations/RejectionRingOp.h"
#include "Operations/MICDEncodingOp.h"
#include "Operations/HadamardOp.h"
#include "Operations/HaarOp.h"
#include "Operations/DCTOp.h"
#include "Operations/HoughOp.h"
#include "Operations/InverseHoughOp.h"
#include "Operations/PyramidOp.h"
#include "Operations/InversePyramidOp.h"
#include "Operations/ClassAnalysisOp.h"
#include "Operations/ClassResultOp.h"
#include "Operations/SeparatorOp.h"
#include "Services/MorphoMatService.h"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment