Skip to content
Snippets Groups Projects
Commit 8637322e authored by Provot Bertrand's avatar Provot Bertrand
Browse files

Merge branch 'dev2018' of github.com:eiimage/eiimage into dev2018

parents 622901cb f51b6ccf
No related branches found
No related tags found
No related merge requests found
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
#include <Converter.h> #include <Converter.h>
#include <Widgets/ImageWidgets/DoubleImageWindow.h> #include <Widgets/ImageWidgets/DoubleImageWindow.h>
#include <QApplication> #include <QApplication>
#include <Operation.h>
using namespace filtrme; using namespace filtrme;
using namespace genericinterface; using namespace genericinterface;
...@@ -67,6 +68,8 @@ void FilteringService::applyFiltering() ...@@ -67,6 +68,8 @@ void FilteringService::applyFiltering()
return; return;
} }
_dblResult = _filterChoice->doubleResult(); _dblResult = _filterChoice->doubleResult();
_scaling = _filterChoice->scalingResult();
_offset = _filterChoice->offsetResult();
Filtering* filtering = _filterChoice->getFiltering(); Filtering* filtering = _filterChoice->getFiltering();
this->applyAlgorithm(filtering); this->applyAlgorithm(filtering);
...@@ -95,11 +98,13 @@ void FilteringService::applyAlgorithm(Filtering* algo) ...@@ -95,11 +98,13 @@ void FilteringService::applyAlgorithm(Filtering* algo)
DoubleImageWindow* diw = dynamic_cast<DoubleImageWindow*>(_siw); DoubleImageWindow* diw = dynamic_cast<DoubleImageWindow*>(_siw);
image = diw->getImage(); image = diw->getImage();
} }
Image_t<double>* dblResImg = (*algo)(image); Image_t<double>* dblResImg = (*algo)(image);
ImageWindow* riw; ImageWindow* riw;
if(_siw->isStandard()) { if(_siw->isStandard()) {
delete image; delete image;
} }
if(_dblResult) { if(_dblResult) {
DoubleImageWindow* diw = dynamic_cast<DoubleImageWindow*>(_siw); DoubleImageWindow* diw = dynamic_cast<DoubleImageWindow*>(_siw);
if(diw != NULL) { if(diw != NULL) {
...@@ -110,11 +115,27 @@ void FilteringService::applyAlgorithm(Filtering* algo) ...@@ -110,11 +115,27 @@ void FilteringService::applyAlgorithm(Filtering* algo)
} }
} }
else { else {
std::string outputMessage = "";
Image* resImg;
Image_t<int>* intResImg = Converter<Image_t<int> >::convert(*dblResImg); Image_t<int>* intResImg = Converter<Image_t<int> >::convert(*dblResImg);
if(_scaling && _offset ){
resImg = Converter<Image>::ConvertScaleAndOffset(*intResImg, &outputMessage);
}
else if(_scaling){
resImg = Converter<Image>::ConvertAndScale(*intResImg, &outputMessage);
}
else if(_offset){
resImg = Converter<Image>::ConvertAndOffset(*intResImg, &outputMessage);
}
else{
resImg = Converter<Image>::convertAndRound(*dblResImg);
outputMessage = "Pas de conversion [min : 0, max : 255]";
}
delete dblResImg; delete dblResImg;
Image* resImg = Converter<Image>::makeDisplayable(*intResImg);
delete intResImg;
riw = new StandardImageWindow(resImg, _siw->getPath()); riw = new StandardImageWindow(resImg, _siw->getPath());
std::cout << outputMessage << std::endl;
} }
riw->setWindowTitle(_siw->windowTitle() + " - " + _filterChoice->getFilterName()); riw->setWindowTitle(_siw->windowTitle() + " - " + _filterChoice->getFilterName());
emit newImageWindowCreated(_ws->getNodeId(_siw), riw); emit newImageWindowCreated(_ws->getNodeId(_siw), riw);
......
...@@ -66,6 +66,8 @@ namespace filtrme ...@@ -66,6 +66,8 @@ namespace filtrme
genericinterface::ImageWindow* _siw; genericinterface::ImageWindow* _siw;
bool _dblResult; bool _dblResult;
bool _scaling;
bool _offset;
}; };
} }
......
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