From d51c597aab5fc4d59ab431383c42a72e6356797e Mon Sep 17 00:00:00 2001
From: yliu2 <liuyu2209@gmail.com>
Date: Wed, 16 Sep 2020 16:37:57 +0200
Subject: [PATCH] Update pixel operations, the error in offset has been fixed

---
 app/CMakeLists.txt                      |    4 +-
 app/Operations/ColorimetryOp.cpp        |    4 +-
 app/Operations/DCTDialog.ui             |    2 +-
 app/Operations/HistogramOp.cpp          |   10 +-
 app/Operations/HistogramOp.h            |    2 +-
 app/Operations/MyQLineEdit.h            |    4 +-
 app/Operations/PointOp.cpp              |   10 +-
 app/Operations/PointOp.h                |   29 +-
 app/Operations/QuantificationDialog.cpp |    2 +-
 app/Operations/ScalingOp.cpp            |    4 +-
 app/Operations/SplitHsvOp.cpp           |    6 +-
 app/imageinsa_en.qm                     |  Bin 47341 -> 47499 bytes
 app/imageinsa_en.ts                     | 1253 +++++++---------------
 app/imageinsa_fr.qm                     |  Bin 49985 -> 52494 bytes
 app/imageinsa_fr.ts                     | 1255 +++++++----------------
 app/main.cpp                            |    2 +-
 lib/detiq-t                             |    2 +-
 17 files changed, 738 insertions(+), 1851 deletions(-)

diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt
index 58b224e..8613d59 100644
--- a/app/CMakeLists.txt
+++ b/app/CMakeLists.txt
@@ -200,9 +200,9 @@ qt5_add_resources(RCC_FILES "imageinsa_app_res.qrc")
 set(TS_FILES imageinsa_en.ts imageinsa_fr.ts)
 # Uncomment only 1 of the 2 folowing commands, depending on your needs
 # -1- Use current translations files
-qt5_add_translation(QM_FILES ${TS_FILES})
+#qt5_add_translation(QM_FILES ${TS_FILES})
 # -2- Update translations files with changes from c++ sources
-#qt5_create_translation(QM_FILES ${imageinsa_SOURCES} ${UIS} ${TS_FILES})
+qt5_create_translation(QM_FILES ${imageinsa_SOURCES} ${UIS} ${TS_FILES})
 # -3- Update translations files with changes from c++ sources AND drop useless translations
 #qt5_create_translation(QM_FILES ${imageinsa_SOURCES} ${UIS} ${TS_FILES} OPTIONS -no-obsolete)
 
diff --git a/app/Operations/ColorimetryOp.cpp b/app/Operations/ColorimetryOp.cpp
index bfa4c26..9857363 100644
--- a/app/Operations/ColorimetryOp.cpp
+++ b/app/Operations/ColorimetryOp.cpp
@@ -32,7 +32,7 @@
 #include "ColorDialog.h"
 using namespace imagein;
 
-ColorimetryOp::ColorimetryOp() : Operation(qApp->translate("Operations", "Generate RGB image").toStdString())
+ColorimetryOp::ColorimetryOp() : Operation(qApp->translate("Operations", "Generate RGB/HSV image").toStdString())
 {
 }
 
@@ -43,7 +43,7 @@ bool ColorimetryOp::needCurrentImg() const {
 void ColorimetryOp::operator()(const imagein::Image*, const std::map<const imagein::Image*, std::string>&) {
 
     ColorDialog* dialog = new ColorDialog(QApplication::activeWindow());
-    dialog->setWindowTitle(QString(qApp->translate("Operations", "RGB image generator")));
+    dialog->setWindowTitle(QString(qApp->translate("Operations", "RGB/HSV image generator")));
 
     QDialog::DialogCode code = static_cast<QDialog::DialogCode>(dialog->exec());
     QColor color = dialog->getColor();
diff --git a/app/Operations/DCTDialog.ui b/app/Operations/DCTDialog.ui
index d5ccc01..93ccf6b 100644
--- a/app/Operations/DCTDialog.ui
+++ b/app/Operations/DCTDialog.ui
@@ -67,7 +67,7 @@
         <item>
          <widget class="QSpinBox" name="truncLimitBox">
           <property name="maximum">
-           <number>16</number>
+           <number>15</number>
           </property>
          </widget>
         </item>
diff --git a/app/Operations/HistogramOp.cpp b/app/Operations/HistogramOp.cpp
index dd31112..da61e9d 100644
--- a/app/Operations/HistogramOp.cpp
+++ b/app/Operations/HistogramOp.cpp
@@ -47,7 +47,7 @@ void HistogramOp::operator()(const imagein::Image* img, const std::map<const ima
 
     QComboBox* opBox = new QComboBox();
     opBox->addItem(qApp->translate("HistogramOp", "Equalize"));
-    opBox->addItem(qApp->translate("HistogramOp", "Normalize"));
+    opBox->addItem(qApp->translate("HistogramOp", "Linear stretching"));
     layout->insertRow(0, qApp->translate("HistogramOp", "Operation : "), opBox);
 
     QDialogButtonBox* buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok|QDialogButtonBox::Cancel, Qt::Horizontal, dialog);
@@ -61,11 +61,11 @@ void HistogramOp::operator()(const imagein::Image* img, const std::map<const ima
 
     if(opBox->currentIndex()==0) {
         Image* resImg = equalize(img);
-        outImage(resImg, qApp->translate("HistogramOp", "equalized").toStdString());
+        outImage(resImg, qApp->translate("HistogramOp", "Equalized").toStdString());
     }
     else if(opBox->currentIndex()==1) {
-        Image* resImg = normalize(img);
-        outImage(resImg, qApp->translate("HistogramOp", "normalized").toStdString());
+        Image* resImg = linearStretching(img);
+        outImage(resImg, qApp->translate("HistogramOp", "Linear stretched").toStdString());
     }
 }
 
@@ -93,7 +93,7 @@ Image* HistogramOp::equalize( const Image *img ) {
 
 
 
-Image *HistogramOp::normalize( const Image *img ) {
+Image *HistogramOp::linearStretching( const Image *img ) {
 
     Image* resImg = new Image(*img);
     for(unsigned int c = 0; c < img->getNbChannels(); ++c) {
diff --git a/app/Operations/HistogramOp.h b/app/Operations/HistogramOp.h
index 675e697..d8ab224 100644
--- a/app/Operations/HistogramOp.h
+++ b/app/Operations/HistogramOp.h
@@ -33,7 +33,7 @@ public:
 
 protected:
     static imagein::Image* equalize( const imagein::Image *to_equalize );
-    static imagein::Image* normalize( const imagein::Image *to_normalize );
+    static imagein::Image* linearStretching( const imagein::Image *to_normalize );
 };
 
 #endif // HISTOGRAMOP_H
diff --git a/app/Operations/MyQLineEdit.h b/app/Operations/MyQLineEdit.h
index 4d1c2a6..92f708f 100644
--- a/app/Operations/MyQLineEdit.h
+++ b/app/Operations/MyQLineEdit.h
@@ -36,8 +36,10 @@ class MyQLineEdit : public QLineEdit {
 
   public slots:
     void updateValidator(const QString &text){
+        /*Allow only 0 and 1 as input*/
         QRegExp regLogicalExp("^[1]d*|0$");
-        QRegExp regShiftExp("^[1-7]d*|0$");
+        /*Allow positive integer as input*/
+        QRegExp regShiftExp("^\\d+$");
         QRegExpValidator* logicalValidator = new QRegExpValidator(regLogicalExp,0);
         QRegExpValidator* shiftValidator = new QRegExpValidator(regShiftExp,0);
         QIntValidator* intValidator = new QIntValidator();
diff --git a/app/Operations/PointOp.cpp b/app/Operations/PointOp.cpp
index 8681bd4..57b7ff9 100644
--- a/app/Operations/PointOp.cpp
+++ b/app/Operations/PointOp.cpp
@@ -73,6 +73,8 @@ PointOp::DoublePixelOp* PointOp::DoublePixelOp::fromString(QString op, QString e
     if(op=="! (logical NOT)") return new DoublePixLogicalNot(expr.toUInt());
     if(op=="|| (logical OR)") return new DoublePixLogicalOr(expr.toUInt());
     if(op=="^^ (logical XOR)") return new DoublePixLogicalXor(expr.toUInt());
+    if(op=="<<") return new DoublePixLshift(expr.toUInt());
+    if(op==">>") return new DoublePixRshift(expr.toUInt());
     if(op=="") return new DoublePixIdent();
     std::cout << "Unknown operator '" << op.toStdString() << "' ! DoublePixelOp" << std::endl;
     return new DoublePixIdent();
@@ -111,10 +113,10 @@ void PointOp::operator()(const ImageWindow* currentWnd, const vector<const Image
 
     QStringList pixOperators, pixDoubleOperators, imgOperators, imgDoubleOperators;
 
-    pixOperators << "" << "+" << "-" << "*" << "/" << "& (bit-wise AND)" << "&& (logical AND)" << "! (logical NOT)" << "| (bit-wise OR)" << "|| (logical OR)" << "^ (bit-wise XOR)" << "^^ (logical XOR)" << "<<" << ">>";
-    pixDoubleOperators << "" << "+" << "-" << "*" << "/" << "&& (logical AND)" << "! (logical NOT)" << "|| (logical OR)" << "^^ (logical XOR)";
-    imgOperators << "" << "+" << "-" << "*" << "/" << "& (bit-wise AND)" << "&& (logical AND)" << "| (bit-wise OR)" << "|| (logical OR)" << "^ (bit-wise XOR)" << "^^ (logical XOR)";
-    imgDoubleOperators << "" << "+" << "-" << "*" << "/" << "&& (logical AND)" << "|| (logical OR)" << "^^ (logical XOR)";
+    pixOperators << "" << "+" << "-" << "*" << "/" << qApp->translate("PointOp","! (bit-wise NOT)") << qApp->translate("PointOp","& (bit-wise AND)") << qApp->translate("PointOp","| (bit-wise OR)") << qApp->translate("PointOp","^ (bit-wise XOR)") << ">>" << "<<" << qApp->translate("PointOp","&& (logical AND)") << qApp->translate("PointOp","|| (logical OR)") << qApp->translate("PointOp","^^ (logical XOR)");
+    pixDoubleOperators << "" << "+" << "-" << "*" << "/" << qApp->translate("PointOp","!! (logical NOT)") << qApp->translate("PointOp","&& (logical AND)") << qApp->translate("PointOp","|| (logical OR)") << qApp->translate("PointOp","^^ (logical XOR)");
+    imgOperators << "" << "+" << "-" << "*" << "/" << qApp->translate("PointOp","& (bit-wise AND)") << qApp->translate("PointOp","| (bit-wise OR)") << qApp->translate("PointOp","^ (bit-wise XOR)") << qApp->translate("PointOp","&& (logical AND)") << qApp->translate("PointOp","|| (logical OR)") << qApp->translate("PointOp","^^ (logical XOR)");
+    imgDoubleOperators << "" << "+" << "-" << "*" << "/" << qApp->translate("PointOp","&& (logical AND)") << qApp->translate("PointOp","|| (logical OR)") << qApp->translate("PointOp","^^ (logical XOR)");
 
     QString currentImgName = currentWnd->windowTitle();
     map<const Image*,string> stdImgList;
diff --git a/app/Operations/PointOp.h b/app/Operations/PointOp.h
index 5621ddc..a33a350 100644
--- a/app/Operations/PointOp.h
+++ b/app/Operations/PointOp.h
@@ -101,11 +101,9 @@ class PointOp : public GenericOperation {
         double op(double pixel) { return pixel + value; }
     };
 
-    /*WHY + 0.5 ????? */
     struct PixMul : PixOp_t<depth_t> {
         PixMul(double value_) : PixOp_t<depth_t>(value_) {}
-//        intmax_t op(depth_t pixel) { return pixel * value + 0.5; }
-        intmax_t op(depth_t pixel) { return pixel * value ; }
+        intmax_t op(depth_t pixel) { return pixel * value + 0.5; }
     };
 
     struct DoublePixMul : DoublePixelOp {
@@ -185,6 +183,16 @@ class PointOp : public GenericOperation {
         PixRshift(depth_t value_) : PixOp_t<depth_t>(value_) {}
         intmax_t op(depth_t pixel) { return pixel >> value; }
     };
+    /*Used to handle the case where the input image is on uchar but the expected output is double
+     * When the input image is already on double, the option of pixel shifting will not appear*/
+    struct DoublePixLshift : DoublePixelOp {
+        DoublePixLshift(int value_) : DoublePixelOp(value_) {}
+        double op(double pixel) { return (int)pixel << (int)value; }
+    };
+    struct DoublePixRshift : DoublePixelOp {
+        DoublePixRshift(int value_) : DoublePixelOp(value_) {}
+        double op(double pixel) { return (int)pixel >> (int)value; }
+    };
 /*----------------------------------------------------------------------
                        Image Operation Templates
 ----------------------------------------------------------------------*/
@@ -237,7 +245,8 @@ class PointOp : public GenericOperation {
     };
 
     struct ImgDiv : ImageOp {
-        intmax_t op(depth_t pix1, depth_t pix2) { if(pix2 != 0) {return pix1/pix2*255;} else {return 255;}}
+        /*Si division par 0, renvoie 255*/
+        intmax_t op(depth_t pix1, depth_t pix2) { if(pix2 != 0) {return pix1/pix2;} else {return 255;}}
     };
 
     struct DoubleImgDiv : DoubleImageOp {
@@ -251,11 +260,11 @@ class PointOp : public GenericOperation {
     };
 
     struct ImgLogicalAnd : ImageOp {
-        intmax_t op(depth_t pix1, depth_t pix2) { return (pix1==0 || pix2==0) ? 255 : pix1; }
+        intmax_t op(depth_t pix1, depth_t pix2) { return pix1 && pix2; }
     };
 
     struct DoubleImgLogicalAnd : DoubleImageOp {
-        double op(double pix1, double pix2) { return (pix1==0 || pix2==0) ? 255 : pix1; }
+        double op(double pix1, double pix2) { return pix1 && pix2; }
     };
 /*----------------------------------------------------------------------
                            Image    OR
@@ -265,11 +274,11 @@ class PointOp : public GenericOperation {
     };
 
     struct ImgLogicalOr : ImageOp {
-        intmax_t op(depth_t pix1, depth_t pix2) { return (pix1==0 && pix2==0) ? 255 : pix1; }
+        intmax_t op(depth_t pix1, depth_t pix2) { return pix1 || pix2; }
     };
 
     struct DoubleImgLogicalOr : DoubleImageOp {
-        double op(double pix1, double pix2) { return (pix1==0 && pix2==0) ? 255 : pix1; }
+        double op(double pix1, double pix2) { return pix1 || pix2; }
     };
 /*----------------------------------------------------------------------
                             Image   XOR
@@ -279,11 +288,11 @@ class PointOp : public GenericOperation {
     };
 
     struct ImgLogicalXor : ImageOp {
-        intmax_t op(depth_t pix1, depth_t pix2) { return (pix1==pix2) ? 255 : pix1; }
+        intmax_t op(depth_t pix1, depth_t pix2) { return (pix1&&(!pix2)) || ((!pix1)&&pix2); }
     };
 
     struct DoubleImgLogicalXor : DoubleImageOp {
-        double op(double pix1, double pix2) { return (pix1==pix2) ? 255 : pix1; }
+        double op(double pix1, double pix2) { return (pix1&&(!pix2)) || ((!pix1)&&pix2); }
     };
 };
 
diff --git a/app/Operations/QuantificationDialog.cpp b/app/Operations/QuantificationDialog.cpp
index ca4bedd..5743f60 100644
--- a/app/Operations/QuantificationDialog.cpp
+++ b/app/Operations/QuantificationDialog.cpp
@@ -55,8 +55,8 @@ QuantificationDialog::QuantificationDialog(QWidget *parent, QString imgName) :
         _quantBox->addItem(tr("Non linear with centered value"));
         _quantBox->addItem(tr("Non linear with mean value"));
     }
-    _quantBox->addItem(tr("Custom"));
     _quantBox->addItem(tr("LloydMax"));
+    _quantBox->addItem(tr("Custom"));
 
     layout->insertRow(0, tr("Quantification : "), _quantBox);
     layout->insertRow(1, tr("Number of values : "), _sizeBox);
diff --git a/app/Operations/ScalingOp.cpp b/app/Operations/ScalingOp.cpp
index f777733..79d869f 100644
--- a/app/Operations/ScalingOp.cpp
+++ b/app/Operations/ScalingOp.cpp
@@ -40,7 +40,7 @@ using namespace std;
 using namespace imagein;
 using namespace genericinterface;
 
-ScalingOp::ScalingOp() : GenericOperation(qApp->translate("Operations", "Scaling").toStdString())
+ScalingOp::ScalingOp() : GenericOperation(qApp->translate("Operations", "Scaling (Enlarge/Reduce)").toStdString())
 {
   _test=false, _interp=0, _xfactor=1., _yfactor=1.;
 }
@@ -56,7 +56,7 @@ bool ScalingOp::isValidImgWnd(const genericinterface::ImageWindow* imgWnd) const
 void ScalingOp::operator()(const genericinterface::ImageWindow* currentWnd, const vector<const ImageWindow*>&) {
 
     QDialog* dialog = new QDialog(QApplication::activeWindow());
-    dialog->setWindowTitle(QString(qApp->translate("Operations", "Scaling")));
+    dialog->setWindowTitle(QString(qApp->translate("Operations", "Scaling (Enlarge/Reduce)")));
     dialog->setMinimumWidth(180);
     QFormLayout* layout = new QFormLayout();
     dialog->setLayout(layout);
diff --git a/app/Operations/SplitHsvOp.cpp b/app/Operations/SplitHsvOp.cpp
index 3a3b41d..02a78bb 100644
--- a/app/Operations/SplitHsvOp.cpp
+++ b/app/Operations/SplitHsvOp.cpp
@@ -58,9 +58,9 @@ void SplitHsvOp:: operator()(const imagein::Image* image, const std::map<const i
                 resImgV->setPixelAt(i,j,color.value());
             }
         }
-        this->outDoubleImage(resImgH, "Hue",false,false);
-        this->outDoubleImage(resImgS, "Saturation",false,false);
-        this->outDoubleImage(resImgV, "Value",false,false);
+        this->outDoubleImage(resImgH, qApp->translate("Operations", "Hue").toStdString(),false,false);
+        this->outDoubleImage(resImgS, qApp->translate("Operations", "Saturation").toStdString(),false,false);
+        this->outDoubleImage(resImgV, qApp->translate("Operations", "Value").toStdString(),false,false);
 
 }
 
diff --git a/app/imageinsa_en.qm b/app/imageinsa_en.qm
index 07bb0dc4a2f6522bf0d88a35355c7ee78921f98a..278f03a129f577edbfaa5cb07372f2075b732db0 100644
GIT binary patch
delta 6092
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

delta 5618
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

diff --git a/app/imageinsa_en.ts b/app/imageinsa_en.ts
index 9fee365..11417b2 100644
--- a/app/imageinsa_en.ts
+++ b/app/imageinsa_en.ts
@@ -4,34 +4,29 @@
 <context>
     <name></name>
     <message>
-        <location filename="main.cpp" line="+129"/>
-        <location filename="../test/testgui.cpp" line="+134"/>
+        <location filename="main.cpp" line="+130"/>
         <source>&amp;Image</source>
         <oldsource>Image</oldsource>
-        <translation>&amp;Image</translation>
+        <translation>Image</translation>
     </message>
     <message>
-        <location line="+24"/>
-        <location filename="../test/testgui.cpp" line="+20"/>
+        <location line="+25"/>
         <source>&amp;Tools</source>
         <oldsource>Tools</oldsource>
         <translation>&amp;Tools</translation>
     </message>
     <message>
         <location line="+15"/>
-        <location filename="../test/testgui.cpp" line="+13"/>
-        <source>&amp;Encoding</source>
-        <oldsource>Encoding</oldsource>
-        <translation>&amp;Encoding</translation>
+        <source>&amp;Coding</source>
+        <oldsource>&amp;Encoding</oldsource>
+        <translation>&amp;Coding</translation>
     </message>
     <message>
-        <location filename="../test/testgui.cpp" line="+8"/>
         <source>Transforms</source>
-        <translation>Transforms</translation>
+        <translation type="vanished">Transforms</translation>
     </message>
     <message>
-        <location filename="main.cpp" line="+13"/>
-        <location filename="../test/testgui.cpp" line="+8"/>
+        <location line="+13"/>
         <source>Analysis</source>
         <translation>Analysis</translation>
     </message>
@@ -41,9 +36,8 @@
         <translation>Colors</translation>
     </message>
     <message>
-        <location line="+9"/>
         <location filename="Services/FilteringService.cpp" line="+38"/>
-        <location filename="../test/testgui.cpp" line="+9"/>
+        <location filename="main.cpp" line="+9"/>
         <source>Filtering</source>
         <translation>Filtering</translation>
     </message>
@@ -51,29 +45,24 @@
 <context>
     <name>AboutDialog</name>
     <message>
-        <location filename="../lib/detiq-t/GenericInterface/Widgets/AboutDialog.cpp" line="+27"/>
         <source>About</source>
-        <translation>About</translation>
+        <translation type="vanished">About</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>This software has been developed at Insa.</source>
-        <translation>This software has been developped at INSA Rennes.</translation>
+        <translation type="vanished">This software has been developped at INSA Rennes.</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Main authors:</source>
-        <translation>Main authors:</translation>
+        <translation type="vanished">Main authors:</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Contributors:</source>
-        <translation>Contributors:</translation>
+        <translation type="vanished">Contributors:</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Compiled on %1 at %2</source>
-        <translation>Compiled on %1 at %2</translation>
+        <translation type="vanished">Compiled on %1 at %2</translation>
     </message>
 </context>
 <context>
@@ -101,7 +90,7 @@
 <context>
     <name>ClassAnalysis</name>
     <message>
-        <location filename="Operations/ClassAnalysisOp.cpp" line="+60"/>
+        <location filename="Operations/ClassAnalysisOp.cpp" line="+61"/>
         <location line="+19"/>
         <source>mean</source>
         <translation>mean</translation>
@@ -122,49 +111,41 @@
     <name>ClassAnalysisDialog</name>
     <message>
         <location filename="Operations/ClassAnalysisDialog.ui" line="+14"/>
-        <location filename="../build/app/ui_ClassAnalysisDialog.h" line="+118"/>
         <source>Class analysis</source>
         <translation>Class analysis</translation>
     </message>
     <message>
         <location line="+8"/>
-        <location filename="../build/app/ui_ClassAnalysisDialog.h" line="+1"/>
         <source>Step : </source>
         <translation>Step : </translation>
     </message>
     <message>
         <location line="+13"/>
-        <location filename="../build/app/ui_ClassAnalysisDialog.h" line="+4"/>
         <source>Classification step</source>
         <translation>Classification step</translation>
     </message>
     <message>
         <location line="-5"/>
-        <location filename="../build/app/ui_ClassAnalysisDialog.h" line="-1"/>
         <source>Learning step</source>
         <translation>Learning step</translation>
     </message>
     <message>
         <location line="+10"/>
-        <location filename="../build/app/ui_ClassAnalysisDialog.h" line="+2"/>
         <source>Print file info</source>
         <translation>Print file info</translation>
     </message>
     <message>
         <location line="+8"/>
-        <location filename="../build/app/ui_ClassAnalysisDialog.h" line="+2"/>
         <source>Window size : </source>
         <translation>Window size : </translation>
     </message>
     <message>
         <location line="+23"/>
-        <location filename="../build/app/ui_ClassAnalysisDialog.h" line="+1"/>
         <source>File : </source>
         <translation>File : </translation>
     </message>
     <message>
         <location line="+12"/>
-        <location filename="../build/app/ui_ClassAnalysisDialog.h" line="+1"/>
         <source>browse</source>
         <translation>browse</translation>
     </message>
@@ -177,17 +158,16 @@
 <context>
     <name>ClassResult</name>
     <message>
-        <location filename="Operations/ClassResultOp.cpp" line="+81"/>
         <source>
 Nombre de classes = %1 </source>
         <oldsource>
 Nombre de classes = %1 
 </oldsource>
-        <translation>
+        <translation type="vanished">
 Number of classes = %1 </translation>
     </message>
     <message>
-        <location line="+4"/>
+        <location filename="Operations/ClassResultOp.cpp" line="+93"/>
         <source>Valeur de la classe %1 = %2</source>
         <oldsource>Valeur de la classe %1 = %2
 </oldsource>
@@ -203,7 +183,7 @@ Number of classes = %1 </translation>
 </translation>
     </message>
     <message>
-        <location line="-22"/>
+        <location line="-30"/>
         <source>Critère de zone intérieure : </source>
         <oldsource>Critère de zone intérieure : </oldsource>
         <translation>Inner zone criterion: </translation>
@@ -216,6 +196,16 @@ Number of classes = %1 </translation>
     </message>
     <message>
         <location line="+1"/>
+        <source>Largeur de couronne pour conserver la zone intérieure</source>
+        <translation>Crown width to keep the inner area</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Largeur de couronne pour conserver la zone frontière</source>
+        <translation>Crown width to keep the border area</translation>
+    </message>
+    <message>
+        <location line="+2"/>
         <source>&lt;b&gt;Critère de zones (relatifs aux zones totales) : &lt;/b&gt;</source>
         <oldsource>&lt;b&gt;Critère de zones (relatifs aux zones totales) : &lt;/b&gt;</oldsource>
         <translation>&lt;b&gt;Areas&apos; criteria (relative to the whole zones) : &lt;/b&gt;</translation>
@@ -226,7 +216,23 @@ Number of classes = %1 </translation>
         <translation>&lt;b&gt;Select the image&apos;s classes zones : &lt;/b&gt;</translation>
     </message>
     <message>
-        <location line="+59"/>
+        <location line="+21"/>
+        <source>------Largeur de couronne pour conserver la zone intérieure : %1 ------</source>
+        <translation>------Crown width to keep the inner area: %1 ------</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>------Largeur de couronne pour conserver la zone frontière : %1 ------
+</source>
+        <translation>------Crown width to keep the border area : %1 ------</translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Nombre de classes = %1 </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+40"/>
         <source>Le taux de bon classement en zone intérieure %1 vaut: %2%</source>
         <oldsource>Le taux de bon classement en zone intérieure %1 vaut: %2%</oldsource>
         <translation>The correct classification rate in inner area %1 is %2%</translation>
@@ -287,82 +293,92 @@ Number of classes = %1 </translation>
     <name>ColorDialog</name>
     <message>
         <location filename="Operations/ColorDialog.ui" line="+14"/>
-        <location filename="../build/app/ui_ColorDialog.h" line="+222"/>
         <source>RGB image generator</source>
         <translation>RGB image generator</translation>
     </message>
     <message>
         <location line="+6"/>
-        <location filename="../build/app/ui_ColorDialog.h" line="+1"/>
         <source>Image size</source>
         <translation>Image size</translation>
     </message>
     <message>
         <location line="+6"/>
-        <location filename="../build/app/ui_ColorDialog.h" line="+1"/>
         <source>Width : </source>
         <translation>Width : </translation>
     </message>
     <message>
-        <location line="+14"/>
-        <location filename="../build/app/ui_ColorDialog.h" line="+1"/>
+        <location line="+17"/>
         <source>Height : </source>
         <translation>Height : </translation>
     </message>
     <message>
-        <location line="+17"/>
-        <location filename="../build/app/ui_ColorDialog.h" line="+1"/>
+        <location line="+20"/>
         <source>Mode</source>
         <translation>Mode</translation>
     </message>
     <message>
         <location line="+6"/>
-        <location filename="../build/app/ui_ColorDialog.h" line="+1"/>
         <source>RGB</source>
         <translation>RGB</translation>
     </message>
     <message>
         <location line="+10"/>
-        <location filename="../build/app/ui_ColorDialog.h" line="+1"/>
         <source>HSV</source>
         <translation>HSV</translation>
     </message>
     <message>
         <location line="+13"/>
-        <location filename="../build/app/ui_ColorDialog.h" line="+1"/>
         <source>Red : </source>
         <translation>Red : </translation>
     </message>
     <message>
         <location line="+14"/>
-        <location filename="../build/app/ui_ColorDialog.h" line="+1"/>
         <source>Green : </source>
         <translation>Green : </translation>
     </message>
     <message>
         <location line="+14"/>
-        <location filename="../build/app/ui_ColorDialog.h" line="+1"/>
         <source>Blue : </source>
         <translation>Blue : </translation>
     </message>
     <message>
         <location line="+33"/>
-        <location filename="../build/app/ui_ColorDialog.h" line="+1"/>
         <source>Saturation : </source>
         <translation>Saturation : </translation>
     </message>
     <message>
-        <location line="+14"/>
-        <location filename="../build/app/ui_ColorDialog.h" line="+1"/>
+        <location line="+21"/>
         <source>Value : </source>
         <translation>Value : </translation>
     </message>
     <message>
         <location line="+14"/>
-        <location filename="../build/app/ui_ColorDialog.h" line="+1"/>
+        <source>Get a hint</source>
+        <translation>Get a hint</translation>
+    </message>
+    <message>
+        <location line="-21"/>
         <source>Hue : </source>
         <translation>Hue : </translation>
     </message>
+    <message>
+        <location filename="Operations/ColorDialog.cpp" line="+64"/>
+        <source>A small tip for Qt HSV Color Model</source>
+        <translation>A small tip for Qt HSV Color Model</translation>
+    </message>
+</context>
+<context>
+    <name>ColorimetryOp</name>
+    <message>
+        <location filename="Operations/ColorimetryOp.cpp" line="+55"/>
+        <source>Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Empty image generation is not allowed</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>CombineColorOp</name>
@@ -467,43 +483,36 @@ Number of classes = %1 </translation>
     <name>DCTDialog</name>
     <message>
         <location filename="Operations/DCTDialog.ui" line="+14"/>
-        <location filename="../build/app/ui_DCTDialog.h" line="+172"/>
         <source>DCT encoding</source>
         <translation>DCT with encoding</translation>
     </message>
     <message>
         <location line="+6"/>
-        <location filename="../build/app/ui_DCTDialog.h" line="+1"/>
         <source>Encoding mode &amp;&amp; associated parameters</source>
         <translation>Encoding mode &amp;&amp; associated parameters</translation>
     </message>
     <message>
         <location line="+6"/>
-        <location filename="../build/app/ui_DCTDialog.h" line="+1"/>
         <source>Coefficients truncation</source>
         <translation>Coefficients truncation</translation>
     </message>
     <message>
         <location line="+34"/>
-        <location filename="../build/app/ui_DCTDialog.h" line="+1"/>
         <source>Truncation limit : </source>
         <translation>Truncation limit : </translation>
     </message>
     <message>
         <location line="+19"/>
-        <location filename="../build/app/ui_DCTDialog.h" line="+1"/>
         <source>Bit allocation matrice</source>
         <translation>Bit allocation matrice</translation>
     </message>
     <message>
         <location line="+25"/>
-        <location filename="../build/app/ui_DCTDialog.h" line="+1"/>
         <source>Initial number of bits : </source>
         <translation>Initial number of bits : </translation>
     </message>
     <message>
         <location line="+37"/>
-        <location filename="../build/app/ui_DCTDialog.h" line="+1"/>
         <source>Slope value : </source>
         <translation>Slope value : </translation>
     </message>
@@ -687,67 +696,56 @@ tquantdef-&gt;GetNumThresholds() = %d</source>
     </message>
     <message>
         <location filename="Operations/DPCMDialog.ui" line="+14"/>
-        <location filename="../build/app/ui_DPCMDialog.h" line="+209"/>
         <source>DPCM encoding</source>
         <translation>DPCM Encoding</translation>
     </message>
     <message>
         <location line="+21"/>
-        <location filename="../build/app/ui_DPCMDialog.h" line="+2"/>
         <source>Predictor P(X)</source>
         <translation>Predictor P(X)</translation>
     </message>
     <message>
         <location line="+6"/>
-        <location filename="../build/app/ui_DPCMDialog.h" line="+1"/>
         <source>A</source>
         <translation>A</translation>
     </message>
     <message>
         <location line="+10"/>
-        <location filename="../build/app/ui_DPCMDialog.h" line="+1"/>
         <source>C</source>
         <translation>C</translation>
     </message>
     <message>
         <location line="+7"/>
-        <location filename="../build/app/ui_DPCMDialog.h" line="+1"/>
         <source>( A + C ) / 2</source>
         <translation>( A + C ) / 2</translation>
     </message>
     <message>
         <location line="+7"/>
-        <location filename="../build/app/ui_DPCMDialog.h" line="+1"/>
         <source>Modified Graham&apos;s</source>
         <translation>Modified Graham&apos;s</translation>
     </message>
     <message>
         <location line="+9"/>
-        <location filename="../build/app/ui_DPCMDialog.h" line="+1"/>
         <source>Q = </source>
         <translation>Q = </translation>
     </message>
     <message>
         <location line="+41"/>
-        <location filename="../build/app/ui_DPCMDialog.h" line="+1"/>
         <source>Quantifier</source>
         <translation>Quantizer</translation>
     </message>
     <message>
         <location line="+6"/>
-        <location filename="../build/app/ui_DPCMDialog.h" line="+1"/>
         <source>Quantification file :</source>
         <translation>Quantization file :</translation>
     </message>
     <message>
         <location line="+20"/>
-        <location filename="../build/app/ui_DPCMDialog.h" line="+1"/>
         <source>Browse</source>
         <translation>Browse</translation>
     </message>
     <message>
         <location line="+28"/>
-        <location filename="../build/app/ui_DPCMDialog.h" line="+1"/>
         <source>Open quantification editor</source>
         <translation>Open quantization editor</translation>
     </message>
@@ -756,31 +754,26 @@ tquantdef-&gt;GetNumThresholds() = %d</source>
     <name>FFTDialog</name>
     <message>
         <location filename="Operations/FFTDialog.ui" line="+14"/>
-        <location filename="../build/app/ui_FFTDialog.h" line="+92"/>
         <source>Dialog</source>
         <translation>Dialog</translation>
     </message>
     <message>
         <location line="+6"/>
-        <location filename="../build/app/ui_FFTDialog.h" line="+1"/>
         <source>Résultat :</source>
         <translation>Result :</translation>
     </message>
     <message>
         <location line="+8"/>
-        <location filename="../build/app/ui_FFTDialog.h" line="+1"/>
         <source>Magnitude + Phase</source>
         <translation>Magnitude + Phase</translation>
     </message>
     <message>
         <location line="+10"/>
-        <location filename="../build/app/ui_FFTDialog.h" line="+1"/>
         <source>Real + Imaginary</source>
         <translation>Real + Imaginary</translation>
     </message>
     <message>
         <location line="+9"/>
-        <location filename="../build/app/ui_FFTDialog.h" line="+1"/>
         <source>Centered transform</source>
         <translation>Centered transform</translation>
     </message>
@@ -788,14 +781,19 @@ tquantdef-&gt;GetNumThresholds() = %d</source>
 <context>
     <name>FFTOp</name>
     <message>
-        <location filename="Operations/FFTOp.cpp" line="+96"/>
         <source>DFT (phase)</source>
-        <translation>DFT (phase)</translation>
+        <translation type="vanished">DFT (phase)</translation>
+    </message>
+    <message>
+        <location filename="Operations/FFTOp.cpp" line="+97"/>
+        <source>DFT (Phase)</source>
+        <oldsource>DFT (magnitude)</oldsource>
+        <translation type="unfinished">DFT (magnitude)</translation>
     </message>
     <message>
         <location line="+1"/>
-        <source>DFT (magnitude)</source>
-        <translation>DFT (magnitude)</translation>
+        <source>DFT (Magnitude)</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -860,23 +858,32 @@ tquantdef-&gt;GetNumThresholds() = %d</source>
     </message>
     <message>
         <location line="+1"/>
+        <source>Linear stretching</source>
+        <translation>Linear stretching</translation>
+    </message>
+    <message>
+        <location line="+18"/>
+        <source>Linear stretched</source>
+        <translation>Linear stretched</translation>
+    </message>
+    <message>
         <source>Normalize</source>
-        <translation>Normalize</translation>
+        <translation type="vanished">Normalize</translation>
     </message>
     <message>
-        <location line="+1"/>
+        <location line="-17"/>
         <source>Operation : </source>
         <translation>Operation : </translation>
     </message>
     <message>
         <location line="+13"/>
-        <source>equalized</source>
-        <translation>equalized</translation>
+        <source>Equalized</source>
+        <oldsource>equalized</oldsource>
+        <translation>Equalized</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>normalized</source>
-        <translation>normalized</translation>
+        <translation type="vanished">normalized</translation>
     </message>
 </context>
 <context>
@@ -896,37 +903,31 @@ tquantdef-&gt;GetNumThresholds() = %d</source>
     <name>HoughDialog</name>
     <message>
         <location filename="Operations/HoughDialog.ui" line="+14"/>
-        <location filename="../build/app/ui_HoughDialog.h" line="+145"/>
         <source>Hough transform</source>
         <translation>Hough transform</translation>
     </message>
     <message>
         <location line="+6"/>
-        <location filename="../build/app/ui_HoughDialog.h" line="+1"/>
         <source>Method</source>
         <translation>Method</translation>
     </message>
     <message>
         <location line="+6"/>
-        <location filename="../build/app/ui_HoughDialog.h" line="+1"/>
         <source>Method #1</source>
         <translation>Method #1</translation>
     </message>
     <message>
         <location line="+10"/>
-        <location filename="../build/app/ui_HoughDialog.h" line="+1"/>
         <source>Method #2</source>
         <translation>Method #2</translation>
     </message>
     <message>
         <location line="+21"/>
-        <location filename="../build/app/ui_HoughDialog.h" line="+1"/>
         <source>Angle step : </source>
         <translation>Angle step : </translation>
     </message>
     <message>
         <location line="+39"/>
-        <location filename="../build/app/ui_HoughDialog.h" line="+1"/>
         <source>Distance step : </source>
         <translation>Distance step : </translation>
     </message>
@@ -986,20 +987,17 @@ tquantdef-&gt;GetNumThresholds() = %d</source>
     <name>InverseHoughDialog</name>
     <message>
         <location filename="Operations/InverseHoughDialog.ui" line="+14"/>
-        <location filename="../build/app/ui_InverseHoughDialog.h" line="+105"/>
         <source>Inverse hough transform</source>
         <oldsource>Hough reconstruction</oldsource>
         <translation>Inverse Hough transform</translation>
     </message>
     <message>
         <location line="+15"/>
-        <location filename="../build/app/ui_InverseHoughDialog.h" line="+2"/>
         <source>Reconstructed image height : </source>
         <translation>Reconstructed image height : </translation>
     </message>
     <message>
         <location line="-7"/>
-        <location filename="../build/app/ui_InverseHoughDialog.h" line="-1"/>
         <source>Reconstructed image width : </source>
         <translation>Reconstructed image width : </translation>
     </message>
@@ -1009,7 +1007,6 @@ tquantdef-&gt;GetNumThresholds() = %d</source>
     </message>
     <message>
         <location line="+14"/>
-        <location filename="../build/app/ui_InverseHoughDialog.h" line="+2"/>
         <source>Reconstruction threshold : </source>
         <translation>Reconstruction threshold : </translation>
     </message>
@@ -1018,56 +1015,47 @@ tquantdef-&gt;GetNumThresholds() = %d</source>
     <name>InversePyramidDialog</name>
     <message>
         <location filename="Operations/InversePyramidDialog.ui" line="+14"/>
-        <location filename="../build/app/ui_InversePyramidDialog.h" line="+109"/>
         <source>Pyramidal reconstruction</source>
         <oldsource>Pyramid reconstruction</oldsource>
         <translation>Pyramidal reconstruction</translation>
     </message>
     <message>
         <location line="+6"/>
-        <location filename="../build/app/ui_InversePyramidDialog.h" line="+1"/>
         <source>Filter : </source>
         <translation>Filter : </translation>
     </message>
     <message>
         <location line="+8"/>
-        <location filename="../build/app/ui_InversePyramidDialog.h" line="+3"/>
         <source>triangular</source>
         <translation>triangular</translation>
     </message>
     <message>
         <location line="+5"/>
-        <location filename="../build/app/ui_InversePyramidDialog.h" line="+1"/>
         <source>gaussian</source>
         <translation>gaussian</translation>
     </message>
     <message>
         <location line="+5"/>
-        <location filename="../build/app/ui_InversePyramidDialog.h" line="+1"/>
         <source>trimodal</source>
         <translation>trimodal</translation>
     </message>
     <message>
         <location line="+5"/>
-        <location filename="../build/app/ui_InversePyramidDialog.h" line="+1"/>
         <source>rectangular</source>
         <translation>rectangular</translation>
     </message>
     <message>
         <location line="+5"/>
-        <location filename="../build/app/ui_InversePyramidDialog.h" line="+1"/>
         <source>qmf</source>
         <translation>qmf</translation>
     </message>
     <message>
         <location line="+21"/>
-        <location filename="../build/app/ui_InversePyramidDialog.h" line="+2"/>
         <source>Number of steps in the pyramid : </source>
         <translation>Number of steps in the pyramid : </translation>
     </message>
     <message>
         <location line="+33"/>
-        <location filename="../build/app/ui_InversePyramidDialog.h" line="+1"/>
         <source>Step to reconstruct :</source>
         <translation>Step to reconstruct :</translation>
     </message>
@@ -1075,40 +1063,39 @@ tquantdef-&gt;GetNumThresholds() = %d</source>
 <context>
     <name>MeanSquareErrorOp</name>
     <message>
-        <location filename="Operations/MeanSquaredErrorOp.cpp" line="+84"/>
         <source>Mean squarred error : %1 (mean error : %2)</source>
-        <translation>Mean squarred error : %1 (mean error : %2)</translation>
+        <translation type="vanished">Mean squarred error : %1 (mean error : %2)</translation>
+    </message>
+    <message>
+        <location filename="Operations/MeanSquaredErrorOp.cpp" line="+86"/>
+        <source>Mean squarred error : %1 (mean absolute error : %2)</source>
+        <translation>Mean squarred error : %1 (mean absolute error : %2)</translation>
     </message>
 </context>
 <context>
     <name>MedianDialog</name>
     <message>
         <location filename="Operations/MedianDialog.ui" line="+14"/>
-        <location filename="../build/app/ui_MedianDialog.h" line="+79"/>
         <source>Dialog</source>
         <translation>Dialog</translation>
     </message>
     <message>
         <location line="+12"/>
-        <location filename="../build/app/ui_MedianDialog.h" line="+1"/>
         <source>Forme</source>
         <translation>Shape</translation>
     </message>
     <message>
         <location line="+12"/>
-        <location filename="../build/app/ui_MedianDialog.h" line="+1"/>
         <source>Croix</source>
         <translation>Cross</translation>
     </message>
     <message>
         <location line="+16"/>
-        <location filename="../build/app/ui_MedianDialog.h" line="+1"/>
         <source>Carré</source>
         <translation>Square</translation>
     </message>
     <message>
         <location line="+42"/>
-        <location filename="../build/app/ui_MedianDialog.h" line="+1"/>
         <source>Taille</source>
         <translation>Size</translation>
     </message>
@@ -1162,12 +1149,12 @@ tquantdef-&gt;GetNumThresholds() = %d</source>
         <translation>BFilt</translation>
     </message>
     <message>
-        <location line="+12"/>
-        <location filename="Operations/CombineColorOp.cpp" line="-54"/>
-        <location filename="Operations/CombineHsvOp.cpp" line="-54"/>
-        <location filename="Operations/IFFTOp.cpp" line="-150"/>
+        <location filename="Operations/PointOp.cpp" line="+136"/>
         <location filename="Operations/NoiseOp.cpp" line="-112"/>
-        <location filename="Operations/PointOp.cpp" line="+116"/>
+        <location filename="Operations/IFFTOp.cpp" line="-150"/>
+        <location filename="Operations/CombineHsvOp.cpp" line="-54"/>
+        <location filename="Operations/CombineColorOp.cpp" line="-54"/>
+        <location filename="Operations/BFlitOp.cpp" line="+12"/>
         <source>Parameters</source>
         <translation>Parameters</translation>
     </message>
@@ -1176,10 +1163,10 @@ tquantdef-&gt;GetNumThresholds() = %d</source>
         <translation type="vanished">Magnitude/Phase</translation>
     </message>
     <message>
-        <location line="+13"/>
+        <location filename="Operations/RandomImgOp.cpp" line="+106"/>
+        <location filename="Operations/PointOp.cpp" line="+149"/>
         <location filename="Operations/NoiseOp.cpp" line="+41"/>
-        <location filename="Operations/PointOp.cpp" line="+123"/>
-        <location filename="Operations/RandomImgOp.cpp" line="+105"/>
+        <location filename="Operations/BFlitOp.cpp" line="+13"/>
         <source>Validate</source>
         <translation>Validate</translation>
     </message>
@@ -1224,13 +1211,13 @@ tquantdef-&gt;GetNumThresholds() = %d</source>
         <translation>Entropy calculation (standard image)</translation>
     </message>
     <message>
-        <location filename="Operations/FFTOp.cpp" line="-69"/>
+        <location filename="Operations/FFTOp.cpp" line="-70"/>
         <source>Fourier transform</source>
         <oldsource>Discrete Fourier transform</oldsource>
         <translation>Fourier transform</translation>
     </message>
     <message>
-        <location filename="Operations/HistogramOp.cpp" line="-35"/>
+        <location filename="Operations/HistogramOp.cpp" line="-31"/>
         <source>Histogram operations</source>
         <translation>Histogram operations</translation>
     </message>
@@ -1240,19 +1227,19 @@ tquantdef-&gt;GetNumThresholds() = %d</source>
         <translation>Huffman</translation>
     </message>
     <message>
-        <location filename="Operations/MeanSquaredErrorOp.cpp" line="-50"/>
+        <location filename="Operations/MeanSquaredErrorOp.cpp" line="-52"/>
         <source>Mean squared error</source>
         <translation>Mean squared error</translation>
     </message>
     <message>
-        <location line="+11"/>
         <location filename="Operations/SignalToNoiseOp.cpp" line="+46"/>
+        <location filename="Operations/MeanSquaredErrorOp.cpp" line="+11"/>
         <source>Compare to...</source>
         <translation>Compare to...</translation>
     </message>
     <message>
         <location line="+8"/>
-        <location filename="Operations/SignalToNoiseOp.cpp" line="+8"/>
+        <location filename="Operations/MeanSquaredErrorOp.cpp" line="+8"/>
         <source>Compare %1 to : </source>
         <translation>Compare %1 to : </translation>
     </message>
@@ -1262,7 +1249,7 @@ tquantdef-&gt;GetNumThresholds() = %d</source>
         <translation>Add noise</translation>
     </message>
     <message>
-        <location filename="Operations/PointOp.cpp" line="-195"/>
+        <location filename="Operations/PointOp.cpp" line="-240"/>
         <source>Pixel operations</source>
         <translation>Pixel operations</translation>
     </message>
@@ -1276,6 +1263,10 @@ tquantdef-&gt;GetNumThresholds() = %d</source>
         <source>Quantification</source>
         <translation>Quantization</translation>
     </message>
+    <message>
+        <source>Resampling (Enlarge/Reduce)</source>
+        <translation type="vanished">Resampling (Enlarge/Reduce)</translation>
+    </message>
     <message>
         <location line="+14"/>
         <source>
@@ -1312,7 +1303,7 @@ Channel %d :
         <translation>Generate random image</translation>
     </message>
     <message>
-        <location line="+92"/>
+        <location line="+105"/>
         <location line="+20"/>
         <source>Random image</source>
         <translation>Random image</translation>
@@ -1331,8 +1322,13 @@ Channel %d :
     <message>
         <location filename="Operations/ScalingOp.cpp" line="+43"/>
         <location line="+16"/>
+        <source>Scaling (Enlarge/Reduce)</source>
+        <oldsource>Scaling (enlarge/reduce)</oldsource>
+        <translation>Scaling (Enlarge/Reduce)</translation>
+    </message>
+    <message>
         <source>Scaling</source>
-        <translation>Scaling</translation>
+        <translation type="vanished">Scaling</translation>
     </message>
     <message>
         <location filename="Operations/SignalToNoiseOp.cpp" line="-20"/>
@@ -1340,8 +1336,8 @@ Channel %d :
         <translation>Signal-to-noise ratio</translation>
     </message>
     <message>
-        <location filename="Operations/SinusSynthesisOp.cpp" line="+39"/>
-        <location line="+106"/>
+        <location filename="Operations/SinusSynthesisOp.cpp" line="+40"/>
+        <location line="+120"/>
         <source>Sinus synthesis</source>
         <translation>Sinus synthesis</translation>
     </message>
@@ -1398,31 +1394,31 @@ Channel %d :
     </message>
     <message>
         <location filename="Operations/InversePyramidOp.cpp" line="+31"/>
-        <source>Pyramidal reconstruction</source>
-        <oldsource>Reconstruct pyramid</oldsource>
-        <translation>Pyramidal reconstruction</translation>
+        <source>Laplacian pyramidal reconstruction</source>
+        <oldsource>Pyramidal reconstruction</oldsource>
+        <translation>Laplacian pyramidal reconstruction</translation>
     </message>
     <message>
-        <location line="+10"/>
-        <location line="+5"/>
         <location filename="Operations/PyramidOp.cpp" line="+44"/>
         <location line="+5"/>
+        <location filename="Operations/InversePyramidOp.cpp" line="+11"/>
+        <location line="+5"/>
         <source>The operation can&apos;t be applied on this image</source>
         <translation>The operation can&apos;t be applied on this image</translation>
     </message>
     <message>
-        <location line="-4"/>
+        <location filename="Operations/InversePyramidOp.cpp" line="-4"/>
         <source>The image width must be twice the image height.</source>
         <translation>The image width must be twice the image height.</translation>
     </message>
     <message>
-        <location line="+5"/>
         <location filename="Operations/PyramidOp.cpp" line="+1"/>
+        <location filename="Operations/InversePyramidOp.cpp" line="+5"/>
         <source>The image dimensions must be power of 2.</source>
         <translation>The image dimensions must be power of 2.</translation>
     </message>
     <message>
-        <location filename="Operations/PyramidOp.cpp" line="-18"/>
+        <location line="-18"/>
         <source>Pyramidal decomposition</source>
         <translation>Pyramidal decomposition</translation>
     </message>
@@ -1432,7 +1428,7 @@ Channel %d :
         <translation>The image width must equal the image height.</translation>
     </message>
     <message>
-        <location line="+33"/>
+        <location line="+35"/>
         <location line="+10"/>
         <source>Gaussian</source>
         <translation>Gaussian</translation>
@@ -1472,19 +1468,21 @@ Channel %d :
         <translation type="vanished">Laplacian pyramidal decomposition</translation>
     </message>
     <message>
-        <location filename="Operations/ClassResultOp.cpp" line="-99"/>
+        <location filename="Operations/ClassResultOp.cpp" line="-107"/>
         <source>Classification results</source>
         <translation>Classification results</translation>
     </message>
     <message>
-        <location filename="Operations/ColorimetryOp.cpp" line="+34"/>
-        <source>Generate RGB image</source>
-        <translation>Generate RGB image</translation>
+        <location filename="Operations/ColorimetryOp.cpp" line="-21"/>
+        <source>Generate RGB/HSV image</source>
+        <oldsource>Generate RGB image</oldsource>
+        <translation>Generate RGB/HSV image</translation>
     </message>
     <message>
         <location line="+11"/>
-        <source>RGB image generator</source>
-        <translation>RGB image generator</translation>
+        <source>RGB/HSV image generator</source>
+        <oldsource>RGB image generator</oldsource>
+        <translation>RGB/HSV image generator</translation>
     </message>
     <message>
         <location filename="Operations/IFFTOp.cpp" line="-11"/>
@@ -1492,7 +1490,7 @@ Channel %d :
         <translation>Inverse Fourier transform</translation>
     </message>
     <message>
-        <location filename="Operations/ClassAnalysisOp.cpp" line="-45"/>
+        <location filename="Operations/ClassAnalysisOp.cpp" line="-46"/>
         <source>Supervised classification</source>
         <translation>Supervised classification</translation>
     </message>
@@ -1510,7 +1508,7 @@ Channel %d :
  Throughput(Huffman) = %.4f</translation>
     </message>
     <message>
-        <location filename="Algorithms/Pyramid.cpp" line="+639"/>
+        <location filename="Algorithms/Pyramid.cpp" line="+641"/>
         <location line="+20"/>
         <source>L&apos;entropie de l&apos;etage %d est %1f
 </source>
@@ -1570,6 +1568,21 @@ Le debit vaut : %5.2f
         <source>The image is not in color.</source>
         <translation>The image is not in color.</translation>
     </message>
+    <message>
+        <location line="+19"/>
+        <source>Hue</source>
+        <translation>Hue</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Saturation</source>
+        <translation>Saturation</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Value</source>
+        <translation>Value</translation>
+    </message>
     <message>
         <location filename="Operations/UCharConvertDialog.cpp" line="+37"/>
         <source>Convert to UChar</source>
@@ -1713,22 +1726,25 @@ Le debit vaut : %5.2f
         <translation>&lt;i&gt;Offset and scale : Adds a 127 offset and scales&lt;/i&gt;</translation>
     </message>
     <message>
-        <location filename="Operations/PointOp.cpp" line="+349"/>
+        <location filename="Operations/PointOp.cpp" line="+418"/>
         <source>Pas de conversion [min : 0, max : 255]</source>
         <translation>Conversion step [min : 0, max : 255]</translation>
     </message>
+    <message>
+        <location filename="Operations/AbsoluteConvertOp.cpp" line="+33"/>
+        <source>Convert to Absolute</source>
+        <translation>Convert to Absolute</translation>
+    </message>
 </context>
 <context>
     <name>PlugOperation</name>
     <message>
-        <location filename="../core/PlugOperation.cpp" line="+77"/>
         <source>Parameters</source>
-        <translation>Parameters</translation>
+        <translation type="vanished">Parameters</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Validate</source>
-        <translation>Validate</translation>
+        <translation type="vanished">Validate</translation>
     </message>
 </context>
 <context>
@@ -1779,46 +1795,145 @@ Le debit vaut : %5.2f
 <context>
     <name>PointOp</name>
     <message>
-        <location filename="Operations/PointOp.cpp" line="-272"/>
+        <location filename="Operations/PointOp.cpp" line="-322"/>
         <source>Second operand</source>
         <translation>Second operand</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+1"/>
         <source>Value</source>
         <translation>Value</translation>
     </message>
+    <message>
+        <location line="+1"/>
+        <source>Enter a real number in the blank space below as the second operand</source>
+        <translation type="unfinished"></translation>
+    </message>
     <message>
         <location line="+1"/>
         <source>Image</source>
         <translation>Image</translation>
     </message>
     <message>
-        <location line="+30"/>
+        <location line="+1"/>
+        <source>Select an image as the second operand</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+4"/>
+        <source>Output the result image in uchar format</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Output the result image in double format</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+26"/>
+        <source>Add an offset of 127 to fit negative values</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Map the value of each pixel to the range of 0-255 proportionally</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
         <source>Explode colors</source>
         <translation>Explode colors</translation>
     </message>
+    <message>
+        <location line="+1"/>
+        <source>Check this option to execute the manipulation by channel</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+29"/>
+        <source>Supported operations list which takes a value as operand: 
+ The input operand will be rounded down for shift operations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Supported operations list whick takes an image as operand: 
+ The bit-wise NOT operation will automatically ignore the second image</source>
+        <translation type="unfinished"></translation>
+    </message>
     <message>
         <source>Double Result</source>
         <translation type="vanished">Double Result</translation>
     </message>
     <message>
-        <location line="-35"/>
+        <location line="-64"/>
         <source>UChar</source>
         <translation>UChar</translation>
     </message>
     <message>
-        <location line="+1"/>
+        <location line="+2"/>
         <source>Double</source>
         <translation>Double</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="-3"/>
         <source>Output image</source>
         <translation>Output image</translation>
     </message>
     <message>
-        <location line="+27"/>
+        <location line="-31"/>
+        <source>! (bit-wise NOT)</source>
+        <translation>! (bit-wise NOT)</translation>
+    </message>
+    <message>
+        <location line="+0"/>
+        <location line="+2"/>
+        <source>&amp; (bit-wise AND)</source>
+        <translation>&amp; (bit-wise AND)</translation>
+    </message>
+    <message>
+        <location line="-2"/>
+        <location line="+2"/>
+        <source>| (bit-wise OR)</source>
+        <translation>| (bit-wise OR)</translation>
+    </message>
+    <message>
+        <location line="-2"/>
+        <location line="+2"/>
+        <source>^ (bit-wise XOR)</source>
+        <translation>^ (bit-wise XOR)</translation>
+    </message>
+    <message>
+        <location line="-2"/>
+        <location line="+1"/>
+        <location line="+1"/>
+        <location line="+1"/>
+        <source>&amp;&amp; (logical AND)</source>
+        <translation>&amp;&amp; (logical AND)</translation>
+    </message>
+    <message>
+        <location line="-3"/>
+        <location line="+1"/>
+        <location line="+1"/>
+        <location line="+1"/>
+        <source>|| (logical OR)</source>
+        <translation>|| (logical OR)</translation>
+    </message>
+    <message>
+        <location line="-3"/>
+        <location line="+1"/>
+        <location line="+1"/>
+        <location line="+1"/>
+        <source>^^ (logical XOR)</source>
+        <translation>^^ (logical XOR)</translation>
+    </message>
+    <message>
+        <location line="-2"/>
+        <source>!! (logical NOT)</source>
+        <translation>!! (logical NOT)</translation>
+    </message>
+    <message>
+        <location line="+56"/>
         <source>Options</source>
         <translation>Options</translation>
     </message>
@@ -1828,7 +1943,7 @@ Le debit vaut : %5.2f
         <translation>Offset</translation>
     </message>
     <message>
-        <location line="+1"/>
+        <location line="+2"/>
         <source>Scaling</source>
         <translation>Scaling</translation>
     </message>
@@ -1845,71 +1960,61 @@ Le debit vaut : %5.2f
     <name>PyramidDialog</name>
     <message>
         <location filename="Operations/PyramidDialog.ui" line="+14"/>
-        <location filename="../build/app/ui_PyramidDialog.h" line="+139"/>
         <source>Pyramidal decomposition</source>
         <translation>Pyramidal decomposition</translation>
     </message>
     <message>
         <location line="+6"/>
-        <location filename="../build/app/ui_PyramidDialog.h" line="+1"/>
         <source>Type of pyramid</source>
         <translation>Type of pyramid</translation>
     </message>
     <message>
         <location line="+6"/>
         <location line="+35"/>
-        <location filename="../build/app/ui_PyramidDialog.h" line="+1"/>
-        <location line="+6"/>
         <source>gaussian</source>
         <translation>gaussian</translation>
     </message>
     <message>
         <location line="-25"/>
-        <location filename="../build/app/ui_PyramidDialog.h" line="-5"/>
         <source>laplacian</source>
         <translation>laplacian</translation>
     </message>
     <message>
         <location line="+12"/>
-        <location filename="../build/app/ui_PyramidDialog.h" line="+1"/>
         <source>Filter : </source>
         <translation>Filter : </translation>
     </message>
     <message>
         <location line="+8"/>
-        <location filename="../build/app/ui_PyramidDialog.h" line="+3"/>
         <source>triangular</source>
         <translation>triangular</translation>
     </message>
     <message>
         <location line="+10"/>
-        <location filename="../build/app/ui_PyramidDialog.h" line="+2"/>
         <source>trimodal</source>
         <translation>trimodal</translation>
     </message>
     <message>
         <location line="+5"/>
-        <location filename="../build/app/ui_PyramidDialog.h" line="+1"/>
         <source>rectangular</source>
         <translation>rectangular</translation>
     </message>
     <message>
         <location line="+5"/>
-        <location filename="../build/app/ui_PyramidDialog.h" line="+1"/>
         <source>qmf</source>
         <translation>qmf</translation>
     </message>
     <message>
         <location line="+8"/>
-        <location filename="../build/app/ui_PyramidDialog.h" line="+2"/>
-        <source>Number of steps : </source>
-        <translation>Number of steps : </translation>
+        <source>Number of levels : </source>
+        <oldsource>Number of steps : </oldsource>
+        <translation type="unfinished">Number of steps : </translation>
     </message>
     <message>
         <location line="+21"/>
-        <location filename="../build/app/ui_PyramidDialog.h" line="+1"/>
-        <source>Create only one step :</source>
-        <translation>Create only one step :</translation>
+        <source>Create only one level :</source>
+        <oldsource>Create only one step :</oldsource>
+        <translation type="unfinished">Create only one step :</translation>
     </message>
     <message>
         <location filename="Operations/PyramidDialog.cpp" line="+41"/>
@@ -1982,17 +2087,17 @@ Le debit vaut : %5.2f
         <translation>Non linear with mean value</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+3"/>
         <source>Custom</source>
         <translation>Custom</translation>
     </message>
     <message>
-        <location line="+1"/>
+        <location line="-1"/>
         <source>LloydMax</source>
         <translation>LloydMax</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+3"/>
         <source>Quantification : </source>
         <translation>Quantization : </translation>
     </message>
@@ -2100,7 +2205,7 @@ Le debit vaut : %5.2f
 <context>
     <name>RandomImgOp</name>
     <message>
-        <location filename="Operations/RandomImgOp.cpp" line="-106"/>
+        <location filename="Operations/RandomImgOp.cpp" line="-119"/>
         <source>Parameters</source>
         <translation>Parameters</translation>
     </message>
@@ -2146,6 +2251,16 @@ Le debit vaut : %5.2f
         <source> to </source>
         <translation> to </translation>
     </message>
+    <message>
+        <location line="+24"/>
+        <source>Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Empty image generation is not allowed</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>RejectionRingOp</name>
@@ -2277,7 +2392,7 @@ Le debit vaut : %5.2f
 <context>
     <name>SinusSynthesisOp</name>
     <message>
-        <location filename="Operations/SinusSynthesisOp.cpp" line="-95"/>
+        <location filename="Operations/SinusSynthesisOp.cpp" line="-109"/>
         <source>Sinus synthesis</source>
         <translation>Sinus synthesis</translation>
     </message>
@@ -2307,7 +2422,7 @@ Le debit vaut : %5.2f
         <translation>Image size (width=height) : </translation>
     </message>
     <message>
-        <location line="+1"/>
+        <location line="+3"/>
         <source>Signal period (pixel) : </source>
         <translation>Signal period (pixel) : </translation>
     </message>
@@ -2321,6 +2436,16 @@ Le debit vaut : %5.2f
         <source>Niveaux de gris : </source>
         <translation>Grayscale levels : </translation>
     </message>
+    <message>
+        <location line="+17"/>
+        <source>Warning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Image size can not be zero</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>StructElemWindow</name>
@@ -2960,457 +3085,64 @@ Le debit vaut : %5.2f
     </message>
 </context>
 <context>
-    <name>genericinterface::ColumnView</name>
-    <message>
-        <location filename="../lib/detiq-t/GenericInterface/Widgets/ImageWidgets/ColumnView.cpp" line="+28"/>
-        <source>Column Profile for column number %1</source>
-        <translation></translation>
-    </message>
+    <name>genericinterface::DoubleImageWindow</name>
     <message>
-        <location line="+1"/>
-        <source>Pixel Value</source>
-        <translation type="unfinished"></translation>
+        <source>Crop</source>
+        <translation type="obsolete">Crop</translation>
     </message>
     <message>
-        <location line="+1"/>
-        <source>Line number</source>
-        <translation type="unfinished"></translation>
+        <source>Color</source>
+        <translation type="obsolete">Color</translation>
     </message>
 </context>
 <context>
-    <name>genericinterface::ColumnWindow</name>
+    <name>genericinterface::FileService</name>
     <message>
-        <location filename="../lib/detiq-t/GenericInterface/Widgets/ImageWidgets/ColumnWindow.cpp" line="+28"/>
-        <source>Column profile</source>
-        <translation type="unfinished"></translation>
+        <source>Open a file</source>
+        <translation type="obsolete">Open a file</translation>
     </message>
 </context>
 <context>
-    <name>genericinterface::DoubleImageWindow</name>
+    <name>genericinterface::GenericHistogramView</name>
     <message>
-        <location filename="../lib/detiq-t/GenericInterface/Widgets/ImageWidgets/DoubleImageWindow.cpp" line="+77"/>
-        <source>Disable Offset</source>
-        <translation type="unfinished"></translation>
+        <source>Black</source>
+        <translation type="obsolete">Black</translation>
     </message>
     <message>
-        <location line="+7"/>
-        <source>Offset (127)</source>
-        <translation type="unfinished"></translation>
+        <source>Red</source>
+        <translation type="obsolete">Red</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <source>Crop</source>
-        <translation type="unfinished">Crop</translation>
+        <source>Alpha</source>
+        <translation type="obsolete">Alpha</translation>
     </message>
     <message>
-        <location line="+1"/>
-        <source>Copy &amp; crop</source>
-        <translation type="unfinished"></translation>
+        <source>Green</source>
+        <translation type="obsolete">Green</translation>
     </message>
     <message>
-        <location line="+29"/>
-        <source>Selected</source>
-        <translation type="unfinished"></translation>
+        <source>Blue</source>
+        <translation type="obsolete">Blue</translation>
     </message>
+</context>
+<context>
+    <name>genericinterface::ImageWindow</name>
     <message>
-        <location line="+9"/>
-        <location line="+15"/>
-        <location line="+95"/>
-        <location line="+28"/>
-        <source>Color</source>
-        <translation type="unfinished">Color</translation>
+        <source>Image</source>
+        <translation type="obsolete">Image</translation>
     </message>
+</context>
+<context>
+    <name>genericinterface::MorphoMatService</name>
     <message>
-        <location line="-132"/>
-        <source>Hovered</source>
-        <translation type="unfinished"></translation>
+        <location filename="Services/MorphoMatService.cpp" line="+58"/>
+        <source>&amp;Erosion</source>
+        <translation>&amp;Erosion</translation>
     </message>
     <message>
-        <location line="+61"/>
-        <source>Pixels Grid</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>genericinterface::FileService</name>
-    <message>
-        <location filename="../lib/detiq-t/GenericInterface/Services/FileService.cpp" line="+43"/>
-        <location line="+50"/>
-        <location line="+5"/>
-        <source>&amp;File</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-54"/>
-        <location line="+31"/>
-        <source>&amp;Open</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-26"/>
-        <source>Save &amp;As</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+6"/>
-        <source>&amp;Copy</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+25"/>
-        <source>Language</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+120"/>
-        <source>Save a file</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+0"/>
-        <source>PNG image (*.png);;BMP image (*.bmp);; JPEG image(*.jpg *.jpeg);; VFF image (*.vff)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+34"/>
-        <source>&amp;%1 %2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+20"/>
-        <source>Open a file</source>
-        <translation type="unfinished">Open a file</translation>
-    </message>
-    <message>
-        <location line="+0"/>
-        <source>Supported image (*.png *.bmp *.jpg *.jpeg *.vff);; PNG image (*.png);;BMP image (*.bmp);; JPEG image(*.jpg *.jpeg);; VFF image (*.vff)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+19"/>
-        <source>Change current language</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>The current language will be modified at next startup. Would you like to restart now?</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>genericinterface::GenericHistogramView</name>
-    <message>
-        <location filename="../lib/detiq-t/GenericInterface/Widgets/ImageWidgets/GenericHistogramView.cpp" line="+111"/>
-        <source>Histogram</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
-        <source>Number of specimen</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Pixel value</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+60"/>
-        <source>Black</source>
-        <translation type="unfinished">Black</translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>Red</source>
-        <translation type="unfinished">Red</translation>
-    </message>
-    <message>
-        <location line="+4"/>
-        <location line="+8"/>
-        <source>Alpha</source>
-        <translation type="unfinished">Alpha</translation>
-    </message>
-    <message>
-        <location line="-6"/>
-        <source>Green</source>
-        <translation type="unfinished">Green</translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <source>Blue</source>
-        <translation type="unfinished">Blue</translation>
-    </message>
-    <message>
-        <location line="+6"/>
-        <source>Channel</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>genericinterface::GenericHistogramWindow</name>
-    <message>
-        <location filename="../lib/detiq-t/GenericInterface/Widgets/ImageWidgets/GenericHistogramWindow.cpp" line="+78"/>
-        <location line="+150"/>
-        <source>Hovered</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-145"/>
-        <location line="+150"/>
-        <source>Value 1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-145"/>
-        <location line="+150"/>
-        <source>Value 2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-144"/>
-        <source>Save As Image</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+67"/>
-        <source>Bad object type</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+0"/>
-        <source>Only images can be saved to a file.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
-        <source>Unknown exception</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+15"/>
-        <source>Save a file</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+0"/>
-        <source>PNG image (*.png);;BMP image (*.bmp);; JPEG image(*.jpg *.jpeg);; VFF image (*.vff)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+65"/>
-        <source>C: %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>C: %1, A: %2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>R: %1, G: %2, B: %3</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>R: %1, G: %2, B: %3, A: %4</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>genericinterface::GenericInterface</name>
-    <message>
-        <location filename="../lib/detiq-t/GenericInterface/GenericInterface.cpp" line="+56"/>
-        <location line="+180"/>
-        <location line="+1"/>
-        <source>&amp;Help</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-181"/>
-        <source>&amp;About</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+32"/>
-        <location line="+100"/>
-        <source>Interface&apos;s integrity compromised</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-99"/>
-        <source>An error occurred in the addition of a new service. The interface may not offer all the expected features. See the log file for more informations.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+100"/>
-        <source>An error occurred in the addition of a service. The interface may not offer all the expected features. See the log file for more informations.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+44"/>
-        <location line="+1"/>
-        <source>&amp;Window</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+49"/>
-        <location line="+1"/>
-        <source>&amp;File</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+0"/>
-        <source>&amp;Exit</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>genericinterface::HistogramView</name>
-    <message>
-        <location filename="../lib/detiq-t/GenericInterface/Widgets/ImageWidgets/HistogramView.cpp" line="+30"/>
-        <location line="+11"/>
-        <source>Histogram</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-8"/>
-        <location line="+11"/>
-        <source>Cumulated histogram</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>genericinterface::HistogramWindow</name>
-    <message>
-        <location filename="../lib/detiq-t/GenericInterface/Widgets/ImageWidgets/HistogramWindow.cpp" line="+29"/>
-        <location line="+11"/>
-        <source>Histogram</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-8"/>
-        <location line="+11"/>
-        <source>Cumulated histogram</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>genericinterface::ImageWindow</name>
-    <message>
-        <location filename="../lib/detiq-t/GenericInterface/Widgets/ImageWidgets/ImageWindow.cpp" line="+86"/>
-        <location line="+100"/>
-        <source>Save As</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-97"/>
-        <source>Zoom + (Ctrl+Scroll Wheel)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Zoom - (Ctrl+Scroll Wheel)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>Rename</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>Apply mask</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>Copy image</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+35"/>
-        <source>Image</source>
-        <translation type="unfinished">Image</translation>
-    </message>
-    <message>
-        <location line="+11"/>
-        <location line="+270"/>
-        <source>Zoom</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-264"/>
-        <source>Selection mode</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+7"/>
-        <source>Hand mode</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+8"/>
-        <source>Select all</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+8"/>
-        <source>Zoom +</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+8"/>
-        <source>Zoom -</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+149"/>
-        <source>Bad object type</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+0"/>
-        <source>Only images can be saved to a file.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
-        <source>Unknown exception</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+14"/>
-        <source>Save a file</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+0"/>
-        <source>PNG image (*.png);;BMP image (*.bmp);; JPEG image(*.jpg *.jpeg);; VFF image (*.vff)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+95"/>
-        <source>Rename image</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>New name:</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>genericinterface::MorphoMatService</name>
-    <message>
-        <location filename="Services/MorphoMatService.cpp" line="+58"/>
-        <source>&amp;Erosion</source>
-        <translation>&amp;Erosion</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>&amp;Dilatation</source>
-        <translation>&amp;Dilatation</translation>
+        <location line="+1"/>
+        <source>&amp;Dilatation</source>
+        <translation>&amp;Dilatation</translation>
     </message>
     <message>
         <location line="+1"/>
@@ -3443,317 +3175,22 @@ Le debit vaut : %5.2f
         <translation>&amp;Structuring element</translation>
     </message>
 </context>
-<context>
-    <name>genericinterface::NavigationDock</name>
-    <message>
-        <location filename="../lib/detiq-t/GenericInterface/Widgets/NavBar/NavigationDock.cpp" line="+45"/>
-        <source>Close all image from the selection</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>genericinterface::ProjectionHistogramView</name>
-    <message>
-        <location filename="../lib/detiq-t/GenericInterface/Widgets/ImageWidgets/ProjectionHistogramView.cpp" line="+29"/>
-        <source>Horizontal Projection Histogram</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Line number</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <source>Vertical Projection Histogram</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Column number</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <source>Number of pixels &gt;= %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>genericinterface::ProjectionHistogramWindow</name>
-    <message>
-        <location filename="../lib/detiq-t/GenericInterface/Widgets/ImageWidgets/ProjectionHistogramWindow.cpp" line="+29"/>
-        <source>Horizontal Projection Histogram</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>Vertical Projection Histogram</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>genericinterface::RadioPanel</name>
-    <message>
-        <location filename="../lib/detiq-t/GenericInterface/Widgets/ImageWidgets/GridView.cpp" line="+60"/>
-        <source>R</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>G</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>B</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>genericinterface::RowView</name>
-    <message>
-        <location filename="../lib/detiq-t/GenericInterface/Widgets/ImageWidgets/RowView.cpp" line="+28"/>
-        <source>Line Profile for line number %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Pixel Value</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Column number</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>genericinterface::RowWindow</name>
-    <message>
-        <location filename="../lib/detiq-t/GenericInterface/Widgets/ImageWidgets/RowWindow.cpp" line="+28"/>
-        <source>Row profile</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>genericinterface::SelectionWidget</name>
-    <message>
-        <location filename="../lib/detiq-t/GenericInterface/Widgets/ImageWidgets/ImageWindow.cpp" line="-400"/>
-        <source>Selection : </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>x:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>y:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>width:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>height:</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
 <context>
     <name>genericinterface::StandardImageWindow</name>
     <message>
-        <location filename="../lib/detiq-t/GenericInterface/Widgets/ImageWidgets/StandardImageWindow.cpp" line="+47"/>
-        <source>Unknown file format !</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+12"/>
-        <source>Unknown exception</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+4"/>
-        <source>Error while opening file</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+39"/>
         <source>Crop</source>
-        <translation type="unfinished">Crop</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Copy and crop</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+29"/>
-        <source>Selected</source>
-        <translation type="unfinished"></translation>
+        <translation type="obsolete">Crop</translation>
     </message>
     <message>
-        <location line="+9"/>
-        <location line="+15"/>
-        <location line="+125"/>
-        <location line="+15"/>
         <source>Color</source>
-        <translation type="unfinished">Color</translation>
-    </message>
-    <message>
-        <location line="-149"/>
-        <source>Hovered</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+47"/>
-        <location line="+12"/>
-        <source>Threshold selection</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-12"/>
-        <location line="+12"/>
-        <source>Enter the threshold value
-(only pixels superior or equal to this value will be counted)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+12"/>
-        <source>Line selection</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+0"/>
-        <source>Select the line to project</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+13"/>
-        <source>Column selection</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+0"/>
-        <source>Select the column to project</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+12"/>
-        <source>Pixels Grid</source>
-        <translation type="unfinished"></translation>
+        <translation type="obsolete">Color</translation>
     </message>
 </context>
 <context>
     <name>genericinterface::UtilityService</name>
     <message>
-        <location filename="../lib/detiq-t/GenericInterface/Services/UtilityService.cpp" line="+30"/>
-        <source>&amp;Show</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Histogram</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Cumulated Histogram</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>Horizontal projection histogram</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Vertical projection histogram</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>Line Profile</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Column Profile</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>Pixels grid</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
         <source>Colors</source>
-        <translation type="unfinished">Colors</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Convert to Binary</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Convert to Grayscale</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>genericinterface::WindowService</name>
-    <message>
-        <location filename="../lib/detiq-t/GenericInterface/Services/WindowService.cpp" line="+43"/>
-        <source>Images</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <location line="+6"/>
-        <location line="+6"/>
-        <source>&amp;Window</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-12"/>
-        <source>&amp;Tile windows</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+6"/>
-        <source>&amp;Cascade windows</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+6"/>
-        <source>Hide/Show Image dock</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+295"/>
-        <source>Attention</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+0"/>
-        <source>You&apos;re going to close all the relative windows, are you sure you want to continue ?</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+152"/>
-        <source>Mask to apply : </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+64"/>
-        <source> - masked</source>
-        <translation type="unfinished"></translation>
+        <translation type="obsolete">Colors</translation>
     </message>
 </context>
 </TS>
diff --git a/app/imageinsa_fr.qm b/app/imageinsa_fr.qm
index 199721ebcf7763537f4076d8c5eb929de91eb6f6..ac4e2660efdf5231069e732f32790cc0aeea7d38 100644
GIT binary patch
delta 7821
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%0DT5n2UwC{mhQN(Np`_skgM#C?W!=|iJms%=
zz*e`Lyt7W+Td<E2Pg)-zlvHSS6f?#`LmtcIv1Zn0a2O|9%#6{_m@PnNGFj%ZISOco
z*6o<FkagIK)2t$1UNrc>gM7ej*u9mwOf=Zc5SM2cH5?B7#al7Pjoi!~iSZYW;jYDW
z6OH8_$FvuXZSac?5KBBMiDL%&iITY3K^?ii1M|JRVZNK|c7|6Nqg#I%uJfw)de6~D
zGi$Ihc8861Wao232l@W-+ilxC{Wh<E@q@g%YXcLx;WLLdd_3rqN@U|^8~O&)fG2|0
z-R+$XpMnq?C<_oQAjVpQS6laMkrdj(i6|~0xwF!cWw)4|4z^)Ha<-UTyKhLt^^_m<
zqG0agWdD%(-*zBp%d&REEM^FtgK=1xcwsRYVfJpgFgaB!isU*@?-5Ah|3*KbWFcED
zlb)Oq4&rguc^w+&Ob-#Y*WgtaaWX%Z7Rd;wd()~JmqntHTxnut7$^dbMr8TVY^-3h
z2Fl(7EO4~JYBFRS4Q9s5ZOiT1U^U#Aa_4eWM147PmtO6kLFM}!nAE(79$u&yp124d
z7uVBEmSJ!>ZQT2_+H*<yD~uy39p{CCj@gut_jt5MAThb~>+V;;*Bunga~FUa6gT23
z9P7TuwbOmawu-)AMz+C(tTNq`%qG5_gr~DP&TKAjf=`2&@t&NUU&L_z%$^*(eFzt4
z^^|m@VD58U&xW6@^Chl8>f$~xmC`5`S6SHK0erXcCtUxYXU{H7_bj6$Y>v^+GO20f
zLV2z$##&ItPfCNqZcp#W`;~`1X9Ia_)Sg|inaMIC&j|E?v{|qlS`rfbAAkk70v4Z|
z7|P9dwkrt67{G^8SpSDWg0a|S5peKppK+=L$(RK<cr{_E1baG>HeQkVBpP@caktXE
z{eK?|40zw^RwG^|KsU~k?(5<;EzeC2qkCAew-Bypd`=Dnwpns>?GQ#wE)x;ipD&AC
zqk}QCc~GY!mMJoroUHvBct!46hi8)jj@NdF8!7|PR$K|%5#D-mVIeI%dch|*Mj&I{
z`fA1kD>=EiHQtl?5r-!!ylg=mGc2FYE?^w_P)m!|VT5i1Dm$0WM)l)smMJutjaH`#
zu<<Obn90sJV6ZW@hR#_WQLc^14POAf()=D*Ghi2jeEhczKB3%*F&}Rp39tO7Cu+|t
zz0k^j>jgYsBd9C%1zxlGJP3nYA$H|=6q+4|HqNuC>#&3*vjbC>fw8e5qS;xPg*zi$
zf*)BXgSmjQTMgN`X3-NEgWdhW&SE~xf%oVf<{WOVW3^~GH$1<a%e_4x$Ra*uIPU35
zlCOB768K~ok%VVm<5vsX#80BXO`&~obqjxy6iv}BsfZh6u(|=cxxrW>av9c;ozGZ}
zb6K=#i~AWMqRoL+eZnH6qZzBsVzt=#)S%53b2?{}#{@_g-zPy8?s#usF7mJsS9Zv2
za*jKGS-c}HM|MwhI;>8JHsWJr?M{>9NgqYbaxBg)6DC!Qt<d0Too#pD%xrbab1D9!
z94_LpFMrMeejwpPV{17j<WEj<f=;$4hj4E?w}_^4pZoc8z4j_+@bUV6NO(H!JSCin
zxRLHWAp&0=!kEFU?C&lHWw0hT8)E<l0{4jUTh_Vgq9Q2fbez(iCP6XNarLK)IlYxI
zO-f6DR$LhD_Vj*#C{)w2naMI<P^v%JtkexH4TIO81Jjqb0tQ^XVD>Ae*3170hrSeR
ze-li8>82vi&vzKg2i0#en~L$lGA6bN3>?4>ecqP~FB#31%xl|lXpT$D9a`X_azC`=
zXAJ+iA*=M9$N%^6*XEhwkE^cmZV0P*P1Nbn=RNm(H<$fW{U6?IIQC+%?hO@hUlJ=S
K&^E;q(f<GoWhe;%

delta 5571
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

diff --git a/app/imageinsa_fr.ts b/app/imageinsa_fr.ts
index d467f3e..a621f8e 100644
--- a/app/imageinsa_fr.ts
+++ b/app/imageinsa_fr.ts
@@ -4,34 +4,29 @@
 <context>
     <name></name>
     <message>
-        <location filename="main.cpp" line="+129"/>
-        <location filename="../test/testgui.cpp" line="+134"/>
+        <location filename="main.cpp" line="+130"/>
         <source>&amp;Image</source>
         <oldsource>Image</oldsource>
         <translation>&amp;Image</translation>
     </message>
     <message>
-        <location line="+24"/>
-        <location filename="../test/testgui.cpp" line="+20"/>
+        <location line="+25"/>
         <source>&amp;Tools</source>
         <oldsource>Tools</oldsource>
         <translation>Ou&amp;tils</translation>
     </message>
     <message>
         <location line="+15"/>
-        <location filename="../test/testgui.cpp" line="+13"/>
-        <source>&amp;Encoding</source>
-        <oldsource>Encoding</oldsource>
-        <translation>&amp;Encodage</translation>
+        <source>&amp;Coding</source>
+        <oldsource>&amp;Encoding</oldsource>
+        <translation>&amp;Codage</translation>
     </message>
     <message>
-        <location filename="../test/testgui.cpp" line="+8"/>
         <source>Transforms</source>
-        <translation>Transformées</translation>
+        <translation type="vanished">Transformées</translation>
     </message>
     <message>
-        <location filename="main.cpp" line="+13"/>
-        <location filename="../test/testgui.cpp" line="+8"/>
+        <location line="+13"/>
         <source>Analysis</source>
         <translation>Analyse</translation>
     </message>
@@ -41,9 +36,8 @@
         <translation>Couleurs</translation>
     </message>
     <message>
-        <location line="+9"/>
         <location filename="Services/FilteringService.cpp" line="+38"/>
-        <location filename="../test/testgui.cpp" line="+9"/>
+        <location filename="main.cpp" line="+9"/>
         <source>Filtering</source>
         <translation>Filtrage</translation>
     </message>
@@ -51,29 +45,24 @@
 <context>
     <name>AboutDialog</name>
     <message>
-        <location filename="../lib/detiq-t/GenericInterface/Widgets/AboutDialog.cpp" line="+27"/>
         <source>About</source>
-        <translation>A propos</translation>
+        <translation type="vanished">A propos</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>This software has been developed at Insa.</source>
-        <translation>Ce logiciel a été développé à l&apos;INSA Rennes.</translation>
+        <translation type="vanished">Ce logiciel a été développé à l&apos;INSA Rennes.</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>Main authors:</source>
-        <translation>Principaux auteurs:</translation>
+        <translation type="vanished">Principaux auteurs:</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>Contributors:</source>
-        <translation>Contributeurs:</translation>
+        <translation type="vanished">Contributeurs:</translation>
     </message>
     <message>
-        <location line="+13"/>
         <source>Compiled on %1 at %2</source>
-        <translation>Compilé le %1 à %2</translation>
+        <translation type="vanished">Compilé le %1 à %2</translation>
     </message>
 </context>
 <context>
@@ -101,7 +90,7 @@
 <context>
     <name>ClassAnalysis</name>
     <message>
-        <location filename="Operations/ClassAnalysisOp.cpp" line="+60"/>
+        <location filename="Operations/ClassAnalysisOp.cpp" line="+61"/>
         <location line="+19"/>
         <source>mean</source>
         <translation>moyenne</translation>
@@ -122,49 +111,41 @@
     <name>ClassAnalysisDialog</name>
     <message>
         <location filename="Operations/ClassAnalysisDialog.ui" line="+14"/>
-        <location filename="../build/app/ui_ClassAnalysisDialog.h" line="+118"/>
         <source>Class analysis</source>
         <translation>Classification</translation>
     </message>
     <message>
         <location line="+8"/>
-        <location filename="../build/app/ui_ClassAnalysisDialog.h" line="+1"/>
         <source>Step : </source>
         <translation>Étape : </translation>
     </message>
     <message>
         <location line="+13"/>
-        <location filename="../build/app/ui_ClassAnalysisDialog.h" line="+4"/>
         <source>Classification step</source>
         <translation>Étape de classification</translation>
     </message>
     <message>
         <location line="-5"/>
-        <location filename="../build/app/ui_ClassAnalysisDialog.h" line="-1"/>
         <source>Learning step</source>
         <translation>Étape d&apos;apprentissage</translation>
     </message>
     <message>
         <location line="+10"/>
-        <location filename="../build/app/ui_ClassAnalysisDialog.h" line="+2"/>
         <source>Print file info</source>
         <translation>Afficher les info. du fichier</translation>
     </message>
     <message>
         <location line="+8"/>
-        <location filename="../build/app/ui_ClassAnalysisDialog.h" line="+2"/>
         <source>Window size : </source>
         <translation>Taille de la fenêtre : </translation>
     </message>
     <message>
         <location line="+23"/>
-        <location filename="../build/app/ui_ClassAnalysisDialog.h" line="+1"/>
         <source>File : </source>
         <translation>Fichier : </translation>
     </message>
     <message>
         <location line="+12"/>
-        <location filename="../build/app/ui_ClassAnalysisDialog.h" line="+1"/>
         <source>browse</source>
         <translation>parcourir</translation>
     </message>
@@ -177,17 +158,16 @@
 <context>
     <name>ClassResult</name>
     <message>
-        <location filename="Operations/ClassResultOp.cpp" line="+81"/>
         <source>
 Nombre de classes = %1 </source>
         <oldsource>
 Nombre de classes = %1 
 </oldsource>
-        <translation>
+        <translation type="vanished">
 Nombre de classes = %1 </translation>
     </message>
     <message>
-        <location line="+4"/>
+        <location filename="Operations/ClassResultOp.cpp" line="+93"/>
         <source>Valeur de la classe %1 = %2</source>
         <oldsource>Valeur de la classe %1 = %2
 </oldsource>
@@ -203,7 +183,7 @@ Nombre de classes = %1 </translation>
 </translation>
     </message>
     <message>
-        <location line="-22"/>
+        <location line="-30"/>
         <source>Critère de zone intérieure : </source>
         <oldsource>Critère de zone intérieure : </oldsource>
         <translation>Critère de zone intérieure : </translation>
@@ -216,6 +196,16 @@ Nombre de classes = %1 </translation>
     </message>
     <message>
         <location line="+1"/>
+        <source>Largeur de couronne pour conserver la zone intérieure</source>
+        <translation>Largeur de couronne pour conserver la zone intérieure</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Largeur de couronne pour conserver la zone frontière</source>
+        <translation>Largeur de couronne pour conserver la zone frontière</translation>
+    </message>
+    <message>
+        <location line="+2"/>
         <source>&lt;b&gt;Critère de zones (relatifs aux zones totales) : &lt;/b&gt;</source>
         <oldsource>&lt;b&gt;Critère de zones (relatifs aux zones totales) : &lt;/b&gt;</oldsource>
         <translation>&lt;b&gt;Critère de zones (relatifs aux zones totales) : &lt;/b&gt;</translation>
@@ -226,7 +216,23 @@ Nombre de classes = %1 </translation>
         <translation>&lt;b&gt;Sélectionner les zones des classes de l&apos;image : &lt;/b&gt;</translation>
     </message>
     <message>
-        <location line="+59"/>
+        <location line="+21"/>
+        <source>------Largeur de couronne pour conserver la zone intérieure : %1 ------</source>
+        <translation>------Largeur de couronne pour conserver la zone intérieure : %1 ------</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>------Largeur de couronne pour conserver la zone frontière : %1 ------
+</source>
+        <translation>------Largeur de couronne pour conserver la zone frontière : %1 ------</translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Nombre de classes = %1 </source>
+        <translation>Nombre de classes = %1 </translation>
+    </message>
+    <message>
+        <location line="+40"/>
         <source>Le taux de bon classement en zone intérieure %1 vaut: %2%</source>
         <oldsource>Le taux de bon classement en zone intérieure %1 vaut: %2%</oldsource>
         <translation>Le taux de bon classement en zone intérieure %1 vaut : %2%</translation>
@@ -287,82 +293,92 @@ Nombre de classes = %1 </translation>
     <name>ColorDialog</name>
     <message>
         <location filename="Operations/ColorDialog.ui" line="+14"/>
-        <location filename="../build/app/ui_ColorDialog.h" line="+222"/>
         <source>RGB image generator</source>
         <translation>Générateur d&apos;image RVB</translation>
     </message>
     <message>
         <location line="+6"/>
-        <location filename="../build/app/ui_ColorDialog.h" line="+1"/>
         <source>Image size</source>
         <translation>Taille de l&apos;image</translation>
     </message>
     <message>
         <location line="+6"/>
-        <location filename="../build/app/ui_ColorDialog.h" line="+1"/>
         <source>Width : </source>
         <translation>Largeur : </translation>
     </message>
     <message>
-        <location line="+14"/>
-        <location filename="../build/app/ui_ColorDialog.h" line="+1"/>
+        <location line="+17"/>
         <source>Height : </source>
         <translation>Hauteur : </translation>
     </message>
     <message>
-        <location line="+17"/>
-        <location filename="../build/app/ui_ColorDialog.h" line="+1"/>
+        <location line="+20"/>
         <source>Mode</source>
         <translation>Mode</translation>
     </message>
     <message>
         <location line="+6"/>
-        <location filename="../build/app/ui_ColorDialog.h" line="+1"/>
         <source>RGB</source>
         <translation>RVB</translation>
     </message>
     <message>
         <location line="+10"/>
-        <location filename="../build/app/ui_ColorDialog.h" line="+1"/>
         <source>HSV</source>
         <translation>TSV</translation>
     </message>
     <message>
         <location line="+13"/>
-        <location filename="../build/app/ui_ColorDialog.h" line="+1"/>
         <source>Red : </source>
         <translation>Rouge : </translation>
     </message>
     <message>
         <location line="+14"/>
-        <location filename="../build/app/ui_ColorDialog.h" line="+1"/>
         <source>Green : </source>
         <translation>Vert : </translation>
     </message>
     <message>
         <location line="+14"/>
-        <location filename="../build/app/ui_ColorDialog.h" line="+1"/>
         <source>Blue : </source>
         <translation>Bleu : </translation>
     </message>
     <message>
         <location line="+33"/>
-        <location filename="../build/app/ui_ColorDialog.h" line="+1"/>
         <source>Saturation : </source>
         <translation>Saturation : </translation>
     </message>
     <message>
-        <location line="+14"/>
-        <location filename="../build/app/ui_ColorDialog.h" line="+1"/>
+        <location line="+21"/>
         <source>Value : </source>
         <translation>Valeur :  </translation>
     </message>
     <message>
         <location line="+14"/>
-        <location filename="../build/app/ui_ColorDialog.h" line="+1"/>
+        <source>Get a hint</source>
+        <translation>Une idée</translation>
+    </message>
+    <message>
+        <location line="-21"/>
         <source>Hue : </source>
         <translation>Teinte : </translation>
     </message>
+    <message>
+        <location filename="Operations/ColorDialog.cpp" line="+64"/>
+        <source>A small tip for Qt HSV Color Model</source>
+        <translation>Une petite astuce pour le modèle de couleur Qt TSV</translation>
+    </message>
+</context>
+<context>
+    <name>ColorimetryOp</name>
+    <message>
+        <location filename="Operations/ColorimetryOp.cpp" line="+55"/>
+        <source>Warning</source>
+        <translation>Alerte</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Empty image generation is not allowed</source>
+        <translation>La génération d&apos;images vides n&apos;est pas autorisée</translation>
+    </message>
 </context>
 <context>
     <name>CombineColorOp</name>
@@ -467,43 +483,36 @@ Nombre de classes = %1 </translation>
     <name>DCTDialog</name>
     <message>
         <location filename="Operations/DCTDialog.ui" line="+14"/>
-        <location filename="../build/app/ui_DCTDialog.h" line="+172"/>
         <source>DCT encoding</source>
         <translation>DCT avec encodage</translation>
     </message>
     <message>
         <location line="+6"/>
-        <location filename="../build/app/ui_DCTDialog.h" line="+1"/>
         <source>Encoding mode &amp;&amp; associated parameters</source>
         <translation>Mode d&apos;encodage &amp;&amp; paramètres associés</translation>
     </message>
     <message>
         <location line="+6"/>
-        <location filename="../build/app/ui_DCTDialog.h" line="+1"/>
         <source>Coefficients truncation</source>
         <translation>Troncature des coefficients</translation>
     </message>
     <message>
         <location line="+34"/>
-        <location filename="../build/app/ui_DCTDialog.h" line="+1"/>
         <source>Truncation limit : </source>
         <translation>Limite de troncature : </translation>
     </message>
     <message>
         <location line="+19"/>
-        <location filename="../build/app/ui_DCTDialog.h" line="+1"/>
         <source>Bit allocation matrice</source>
         <translation>Matrice d&apos;allocation de bits</translation>
     </message>
     <message>
         <location line="+25"/>
-        <location filename="../build/app/ui_DCTDialog.h" line="+1"/>
         <source>Initial number of bits : </source>
         <translation>Nombre de bits initial : </translation>
     </message>
     <message>
         <location line="+37"/>
-        <location filename="../build/app/ui_DCTDialog.h" line="+1"/>
         <source>Slope value : </source>
         <translation>Valeur de la pente : </translation>
     </message>
@@ -687,67 +696,56 @@ tquantdef-&gt;GetNumThresholds() = %d</source>
     </message>
     <message>
         <location filename="Operations/DPCMDialog.ui" line="+14"/>
-        <location filename="../build/app/ui_DPCMDialog.h" line="+209"/>
         <source>DPCM encoding</source>
         <translation>Encodage MICD</translation>
     </message>
     <message>
         <location line="+21"/>
-        <location filename="../build/app/ui_DPCMDialog.h" line="+2"/>
         <source>Predictor P(X)</source>
         <translation>Prédicteur P(X)</translation>
     </message>
     <message>
         <location line="+6"/>
-        <location filename="../build/app/ui_DPCMDialog.h" line="+1"/>
         <source>A</source>
         <translation>A</translation>
     </message>
     <message>
         <location line="+10"/>
-        <location filename="../build/app/ui_DPCMDialog.h" line="+1"/>
         <source>C</source>
         <translation>C</translation>
     </message>
     <message>
         <location line="+7"/>
-        <location filename="../build/app/ui_DPCMDialog.h" line="+1"/>
         <source>( A + C ) / 2</source>
         <translation>( A + C ) / 2</translation>
     </message>
     <message>
         <location line="+7"/>
-        <location filename="../build/app/ui_DPCMDialog.h" line="+1"/>
         <source>Modified Graham&apos;s</source>
         <translation>Graham modifié</translation>
     </message>
     <message>
         <location line="+9"/>
-        <location filename="../build/app/ui_DPCMDialog.h" line="+1"/>
         <source>Q = </source>
         <translation>Q = </translation>
     </message>
     <message>
         <location line="+41"/>
-        <location filename="../build/app/ui_DPCMDialog.h" line="+1"/>
         <source>Quantifier</source>
         <translation>Quantifieur</translation>
     </message>
     <message>
         <location line="+6"/>
-        <location filename="../build/app/ui_DPCMDialog.h" line="+1"/>
         <source>Quantification file :</source>
         <translation>Fichier de quantification : </translation>
     </message>
     <message>
         <location line="+20"/>
-        <location filename="../build/app/ui_DPCMDialog.h" line="+1"/>
         <source>Browse</source>
         <translation>Parcourir</translation>
     </message>
     <message>
         <location line="+28"/>
-        <location filename="../build/app/ui_DPCMDialog.h" line="+1"/>
         <source>Open quantification editor</source>
         <translation>Ouvrir l&apos;éditeur de quantification</translation>
     </message>
@@ -756,31 +754,26 @@ tquantdef-&gt;GetNumThresholds() = %d</source>
     <name>FFTDialog</name>
     <message>
         <location filename="Operations/FFTDialog.ui" line="+14"/>
-        <location filename="../build/app/ui_FFTDialog.h" line="+92"/>
         <source>Dialog</source>
         <translation>Dialog</translation>
     </message>
     <message>
         <location line="+6"/>
-        <location filename="../build/app/ui_FFTDialog.h" line="+1"/>
         <source>Résultat :</source>
         <translation>Résultat :</translation>
     </message>
     <message>
         <location line="+8"/>
-        <location filename="../build/app/ui_FFTDialog.h" line="+1"/>
         <source>Magnitude + Phase</source>
         <translation>Amplitude + Phase</translation>
     </message>
     <message>
         <location line="+10"/>
-        <location filename="../build/app/ui_FFTDialog.h" line="+1"/>
         <source>Real + Imaginary</source>
         <translation>Réel + Imaginaire</translation>
     </message>
     <message>
         <location line="+9"/>
-        <location filename="../build/app/ui_FFTDialog.h" line="+1"/>
         <source>Centered transform</source>
         <translation>Transformée centrée</translation>
     </message>
@@ -788,14 +781,19 @@ tquantdef-&gt;GetNumThresholds() = %d</source>
 <context>
     <name>FFTOp</name>
     <message>
-        <location filename="Operations/FFTOp.cpp" line="+96"/>
         <source>DFT (phase)</source>
-        <translation>DFT (phase)</translation>
+        <translation type="vanished">DFT (phase)</translation>
+    </message>
+    <message>
+        <location filename="Operations/FFTOp.cpp" line="+97"/>
+        <source>DFT (Phase)</source>
+        <oldsource>DFT (magnitude)</oldsource>
+        <translation>DFT (Phase)</translation>
     </message>
     <message>
         <location line="+1"/>
-        <source>DFT (magnitude)</source>
-        <translation>DFT (amplitude)</translation>
+        <source>DFT (Magnitude)</source>
+        <translation>DFT (Magnitude)</translation>
     </message>
 </context>
 <context>
@@ -860,23 +858,32 @@ tquantdef-&gt;GetNumThresholds() = %d</source>
     </message>
     <message>
         <location line="+1"/>
+        <source>Linear stretching</source>
+        <translation>Expansion linéaire</translation>
+    </message>
+    <message>
+        <location line="+18"/>
+        <source>Linear stretched</source>
+        <translation>Expansion linéaire</translation>
+    </message>
+    <message>
         <source>Normalize</source>
-        <translation>Normaliser</translation>
+        <translation type="vanished">Normaliser</translation>
     </message>
     <message>
-        <location line="+1"/>
+        <location line="-17"/>
         <source>Operation : </source>
         <translation>Opération : </translation>
     </message>
     <message>
         <location line="+13"/>
-        <source>equalized</source>
-        <translation>égalisée</translation>
+        <source>Equalized</source>
+        <oldsource>equalized</oldsource>
+        <translation>Egalisée</translation>
     </message>
     <message>
-        <location line="+4"/>
         <source>normalized</source>
-        <translation>normalisée</translation>
+        <translation type="vanished">normalisée</translation>
     </message>
 </context>
 <context>
@@ -896,37 +903,31 @@ tquantdef-&gt;GetNumThresholds() = %d</source>
     <name>HoughDialog</name>
     <message>
         <location filename="Operations/HoughDialog.ui" line="+14"/>
-        <location filename="../build/app/ui_HoughDialog.h" line="+145"/>
         <source>Hough transform</source>
         <translation>Transformé de Hough</translation>
     </message>
     <message>
         <location line="+6"/>
-        <location filename="../build/app/ui_HoughDialog.h" line="+1"/>
         <source>Method</source>
         <translation>Méthode</translation>
     </message>
     <message>
         <location line="+6"/>
-        <location filename="../build/app/ui_HoughDialog.h" line="+1"/>
         <source>Method #1</source>
         <translation>Méthode n°1</translation>
     </message>
     <message>
         <location line="+10"/>
-        <location filename="../build/app/ui_HoughDialog.h" line="+1"/>
         <source>Method #2</source>
         <translation>Méthode n°2</translation>
     </message>
     <message>
         <location line="+21"/>
-        <location filename="../build/app/ui_HoughDialog.h" line="+1"/>
         <source>Angle step : </source>
         <translation>Pas pour les angles : </translation>
     </message>
     <message>
         <location line="+39"/>
-        <location filename="../build/app/ui_HoughDialog.h" line="+1"/>
         <source>Distance step : </source>
         <translation>Pas pour les distances : </translation>
     </message>
@@ -986,20 +987,17 @@ tquantdef-&gt;GetNumThresholds() = %d</source>
     <name>InverseHoughDialog</name>
     <message>
         <location filename="Operations/InverseHoughDialog.ui" line="+14"/>
-        <location filename="../build/app/ui_InverseHoughDialog.h" line="+105"/>
         <source>Inverse hough transform</source>
         <oldsource>Hough reconstruction</oldsource>
         <translation>Transformée de Hough inverse</translation>
     </message>
     <message>
         <location line="+15"/>
-        <location filename="../build/app/ui_InverseHoughDialog.h" line="+2"/>
         <source>Reconstructed image height : </source>
         <translation>Hauteur de l&apos;image reconstituée : </translation>
     </message>
     <message>
         <location line="-7"/>
-        <location filename="../build/app/ui_InverseHoughDialog.h" line="-1"/>
         <source>Reconstructed image width : </source>
         <translation>Largeur de l&apos;image reconstituée : </translation>
     </message>
@@ -1009,7 +1007,6 @@ tquantdef-&gt;GetNumThresholds() = %d</source>
     </message>
     <message>
         <location line="+14"/>
-        <location filename="../build/app/ui_InverseHoughDialog.h" line="+2"/>
         <source>Reconstruction threshold : </source>
         <translation>Seuil de reconstruction : </translation>
     </message>
@@ -1018,56 +1015,47 @@ tquantdef-&gt;GetNumThresholds() = %d</source>
     <name>InversePyramidDialog</name>
     <message>
         <location filename="Operations/InversePyramidDialog.ui" line="+14"/>
-        <location filename="../build/app/ui_InversePyramidDialog.h" line="+109"/>
         <source>Pyramidal reconstruction</source>
         <oldsource>Pyramid reconstruction</oldsource>
         <translation>Reconstruction pyramidale</translation>
     </message>
     <message>
         <location line="+6"/>
-        <location filename="../build/app/ui_InversePyramidDialog.h" line="+1"/>
         <source>Filter : </source>
         <translation>Filtre : </translation>
     </message>
     <message>
         <location line="+8"/>
-        <location filename="../build/app/ui_InversePyramidDialog.h" line="+3"/>
         <source>triangular</source>
         <translation>triangulaire</translation>
     </message>
     <message>
         <location line="+5"/>
-        <location filename="../build/app/ui_InversePyramidDialog.h" line="+1"/>
         <source>gaussian</source>
         <translation>gaussien</translation>
     </message>
     <message>
         <location line="+5"/>
-        <location filename="../build/app/ui_InversePyramidDialog.h" line="+1"/>
         <source>trimodal</source>
         <translation>trimodal</translation>
     </message>
     <message>
         <location line="+5"/>
-        <location filename="../build/app/ui_InversePyramidDialog.h" line="+1"/>
         <source>rectangular</source>
         <translation>rectangulaire</translation>
     </message>
     <message>
         <location line="+5"/>
-        <location filename="../build/app/ui_InversePyramidDialog.h" line="+1"/>
         <source>qmf</source>
         <translation>qmf</translation>
     </message>
     <message>
         <location line="+21"/>
-        <location filename="../build/app/ui_InversePyramidDialog.h" line="+2"/>
         <source>Number of steps in the pyramid : </source>
         <translation>Nombre d&apos;étages dans la pyramide : </translation>
     </message>
     <message>
         <location line="+33"/>
-        <location filename="../build/app/ui_InversePyramidDialog.h" line="+1"/>
         <source>Step to reconstruct :</source>
         <translation>Étage à reconstruire : </translation>
     </message>
@@ -1075,40 +1063,39 @@ tquantdef-&gt;GetNumThresholds() = %d</source>
 <context>
     <name>MeanSquareErrorOp</name>
     <message>
-        <location filename="Operations/MeanSquaredErrorOp.cpp" line="+84"/>
         <source>Mean squarred error : %1 (mean error : %2)</source>
-        <translation>Erreur quadratique moyenne : %1 (erreur moyenne : %2)</translation>
+        <translation type="vanished">Erreur quadratique moyenne : %1 (erreur moyenne : %2)</translation>
+    </message>
+    <message>
+        <location filename="Operations/MeanSquaredErrorOp.cpp" line="+86"/>
+        <source>Mean squarred error : %1 (mean absolute error : %2)</source>
+        <translation>Erreur quadratique moyenne:%1 (erreur absolue moyenne:%2)</translation>
     </message>
 </context>
 <context>
     <name>MedianDialog</name>
     <message>
         <location filename="Operations/MedianDialog.ui" line="+14"/>
-        <location filename="../build/app/ui_MedianDialog.h" line="+79"/>
         <source>Dialog</source>
         <translation>Fenêtre de dialogue</translation>
     </message>
     <message>
         <location line="+12"/>
-        <location filename="../build/app/ui_MedianDialog.h" line="+1"/>
         <source>Forme</source>
         <translation>Forme</translation>
     </message>
     <message>
         <location line="+12"/>
-        <location filename="../build/app/ui_MedianDialog.h" line="+1"/>
         <source>Croix</source>
         <translation>Croix</translation>
     </message>
     <message>
         <location line="+16"/>
-        <location filename="../build/app/ui_MedianDialog.h" line="+1"/>
         <source>Carré</source>
         <translation>Carré</translation>
     </message>
     <message>
         <location line="+42"/>
-        <location filename="../build/app/ui_MedianDialog.h" line="+1"/>
         <source>Taille</source>
         <translation>Taille</translation>
     </message>
@@ -1133,7 +1120,7 @@ tquantdef-&gt;GetNumThresholds() = %d</source>
     <message>
         <location line="+1"/>
         <source>Standard deviation : </source>
-        <translation>Equart type : </translation>
+        <translation>Ecart type : </translation>
     </message>
     <message>
         <location line="+8"/>
@@ -1162,12 +1149,12 @@ tquantdef-&gt;GetNumThresholds() = %d</source>
         <translation>BFilt</translation>
     </message>
     <message>
-        <location line="+12"/>
-        <location filename="Operations/CombineColorOp.cpp" line="-54"/>
-        <location filename="Operations/CombineHsvOp.cpp" line="-54"/>
-        <location filename="Operations/IFFTOp.cpp" line="-150"/>
+        <location filename="Operations/PointOp.cpp" line="+136"/>
         <location filename="Operations/NoiseOp.cpp" line="-112"/>
-        <location filename="Operations/PointOp.cpp" line="+116"/>
+        <location filename="Operations/IFFTOp.cpp" line="-150"/>
+        <location filename="Operations/CombineHsvOp.cpp" line="-54"/>
+        <location filename="Operations/CombineColorOp.cpp" line="-54"/>
+        <location filename="Operations/BFlitOp.cpp" line="+12"/>
         <source>Parameters</source>
         <translation>Paramètres</translation>
     </message>
@@ -1176,10 +1163,10 @@ tquantdef-&gt;GetNumThresholds() = %d</source>
         <translation type="vanished">Amplitude/phase</translation>
     </message>
     <message>
-        <location line="+13"/>
+        <location filename="Operations/RandomImgOp.cpp" line="+106"/>
+        <location filename="Operations/PointOp.cpp" line="+149"/>
         <location filename="Operations/NoiseOp.cpp" line="+41"/>
-        <location filename="Operations/PointOp.cpp" line="+123"/>
-        <location filename="Operations/RandomImgOp.cpp" line="+105"/>
+        <location filename="Operations/BFlitOp.cpp" line="+13"/>
         <source>Validate</source>
         <translation>Valider</translation>
     </message>
@@ -1219,13 +1206,13 @@ tquantdef-&gt;GetNumThresholds() = %d</source>
         <translation type="vanished">Entropie de l&apos;image = %1</translation>
     </message>
     <message>
-        <location filename="Operations/FFTOp.cpp" line="-69"/>
+        <location filename="Operations/FFTOp.cpp" line="-70"/>
         <source>Fourier transform</source>
         <oldsource>Discrete Fourier transform</oldsource>
         <translation>Transformée de Fourrier</translation>
     </message>
     <message>
-        <location filename="Operations/HistogramOp.cpp" line="-35"/>
+        <location filename="Operations/HistogramOp.cpp" line="-31"/>
         <source>Histogram operations</source>
         <translation>Opérations sur histogramme</translation>
     </message>
@@ -1235,19 +1222,19 @@ tquantdef-&gt;GetNumThresholds() = %d</source>
         <translation>Huffman</translation>
     </message>
     <message>
-        <location filename="Operations/MeanSquaredErrorOp.cpp" line="-50"/>
+        <location filename="Operations/MeanSquaredErrorOp.cpp" line="-52"/>
         <source>Mean squared error</source>
         <translation>Erreur quadratique moyenne</translation>
     </message>
     <message>
-        <location line="+11"/>
         <location filename="Operations/SignalToNoiseOp.cpp" line="+46"/>
+        <location filename="Operations/MeanSquaredErrorOp.cpp" line="+11"/>
         <source>Compare to...</source>
         <translation>Comparer à...</translation>
     </message>
     <message>
         <location line="+8"/>
-        <location filename="Operations/SignalToNoiseOp.cpp" line="+8"/>
+        <location filename="Operations/MeanSquaredErrorOp.cpp" line="+8"/>
         <source>Compare %1 to : </source>
         <translation>Comparer %1 à : </translation>
     </message>
@@ -1257,7 +1244,7 @@ tquantdef-&gt;GetNumThresholds() = %d</source>
         <translation>Ajouter du bruit</translation>
     </message>
     <message>
-        <location filename="Operations/PointOp.cpp" line="-195"/>
+        <location filename="Operations/PointOp.cpp" line="-240"/>
         <source>Pixel operations</source>
         <translation>Opération sur les pixels</translation>
     </message>
@@ -1271,6 +1258,10 @@ tquantdef-&gt;GetNumThresholds() = %d</source>
         <source>Quantification</source>
         <translation>Quantification</translation>
     </message>
+    <message>
+        <source>Resampling (Enlarge/Reduce)</source>
+        <translation type="vanished">Re-échantillonage (Agrandir/Réduire)</translation>
+    </message>
     <message>
         <location line="+14"/>
         <source>
@@ -1307,7 +1298,7 @@ Canal %d :
         <translation>Générer une image aléatoire</translation>
     </message>
     <message>
-        <location line="+92"/>
+        <location line="+105"/>
         <location line="+20"/>
         <source>Random image</source>
         <translation>Image aléatoire</translation>
@@ -1326,8 +1317,13 @@ Canal %d :
     <message>
         <location filename="Operations/ScalingOp.cpp" line="+43"/>
         <location line="+16"/>
+        <source>Scaling (Enlarge/Reduce)</source>
+        <oldsource>Scaling (enlarge/reduce)</oldsource>
+        <translation>Re-échantillonage (Agrandir/Réduire)</translation>
+    </message>
+    <message>
         <source>Scaling</source>
-        <translation>Echantillonnage</translation>
+        <translation type="vanished">Re-échantillonage (agrandir/réduire)</translation>
     </message>
     <message>
         <location filename="Operations/SignalToNoiseOp.cpp" line="-20"/>
@@ -1335,8 +1331,8 @@ Canal %d :
         <translation>Rapport signal-bruit</translation>
     </message>
     <message>
-        <location filename="Operations/SinusSynthesisOp.cpp" line="+39"/>
-        <location line="+106"/>
+        <location filename="Operations/SinusSynthesisOp.cpp" line="+40"/>
+        <location line="+120"/>
         <source>Sinus synthesis</source>
         <translation>Synthèse image sinus</translation>
     </message>
@@ -1398,31 +1394,31 @@ Canal %d :
     </message>
     <message>
         <location filename="Operations/InversePyramidOp.cpp" line="+31"/>
-        <source>Pyramidal reconstruction</source>
-        <oldsource>Reconstruct pyramid</oldsource>
-        <translation>Reconstruction pyramidale</translation>
+        <source>Laplacian pyramidal reconstruction</source>
+        <oldsource>Pyramidal reconstruction</oldsource>
+        <translation>Reconstruction pyramidale laplacienne</translation>
     </message>
     <message>
-        <location line="+10"/>
-        <location line="+5"/>
         <location filename="Operations/PyramidOp.cpp" line="+44"/>
         <location line="+5"/>
+        <location filename="Operations/InversePyramidOp.cpp" line="+11"/>
+        <location line="+5"/>
         <source>The operation can&apos;t be applied on this image</source>
         <translation>L&apos;opération ne peut pas être appliquée sur cette image</translation>
     </message>
     <message>
-        <location line="-4"/>
+        <location filename="Operations/InversePyramidOp.cpp" line="-4"/>
         <source>The image width must be twice the image height.</source>
         <translation>La largeur de l&apos;image doit être deux fois la hauteur de l&apos;image.</translation>
     </message>
     <message>
-        <location line="+5"/>
         <location filename="Operations/PyramidOp.cpp" line="+1"/>
+        <location filename="Operations/InversePyramidOp.cpp" line="+5"/>
         <source>The image dimensions must be power of 2.</source>
         <translation>Les dimensions de l&apos;images doivent être puissances de 2.</translation>
     </message>
     <message>
-        <location filename="Operations/PyramidOp.cpp" line="-18"/>
+        <location line="-18"/>
         <source>Pyramidal decomposition</source>
         <translation>Décomposition pyramidale</translation>
     </message>
@@ -1432,7 +1428,7 @@ Canal %d :
         <translation>La largeur de l&apos;image doit être égale à sa hauteur.</translation>
     </message>
     <message>
-        <location line="+33"/>
+        <location line="+35"/>
         <location line="+10"/>
         <source>Gaussian</source>
         <translation>Gaussien</translation>
@@ -1472,19 +1468,21 @@ Canal %d :
         <translation type="vanished">Décomposition pyamidale laplacienne</translation>
     </message>
     <message>
-        <location filename="Operations/ClassResultOp.cpp" line="-99"/>
+        <location filename="Operations/ClassResultOp.cpp" line="-107"/>
         <source>Classification results</source>
         <translation>Résultats de classification</translation>
     </message>
     <message>
-        <location filename="Operations/ColorimetryOp.cpp" line="+34"/>
-        <source>Generate RGB image</source>
-        <translation>Générer une image RVB</translation>
+        <location filename="Operations/ColorimetryOp.cpp" line="-21"/>
+        <source>Generate RGB/HSV image</source>
+        <oldsource>Generate RGB image</oldsource>
+        <translation>Générer une image RVB/TSV</translation>
     </message>
     <message>
         <location line="+11"/>
-        <source>RGB image generator</source>
-        <translation>Générateur d&apos;image RVB</translation>
+        <source>RGB/HSV image generator</source>
+        <oldsource>RGB image generator</oldsource>
+        <translation>Générateur d&apos;image RVB/TSV</translation>
     </message>
     <message>
         <location filename="Operations/IFFTOp.cpp" line="-11"/>
@@ -1492,7 +1490,7 @@ Canal %d :
         <translation>Transformée de Fourier inverse</translation>
     </message>
     <message>
-        <location filename="Operations/ClassAnalysisOp.cpp" line="-45"/>
+        <location filename="Operations/ClassAnalysisOp.cpp" line="-46"/>
         <source>Supervised classification</source>
         <translation>Classification supervisée</translation>
     </message>
@@ -1510,7 +1508,7 @@ Canal %d :
  Débit(Huffman) = %.4f</translation>
     </message>
     <message>
-        <location filename="Algorithms/Pyramid.cpp" line="+639"/>
+        <location filename="Algorithms/Pyramid.cpp" line="+641"/>
         <location line="+20"/>
         <source>L&apos;entropie de l&apos;etage %d est %1f
 </source>
@@ -1571,6 +1569,21 @@ Le débit vaut : %5.2f
         <source>The image is not in color.</source>
         <translation>L&apos;image n&apos;est pas en couleur.</translation>
     </message>
+    <message>
+        <location line="+19"/>
+        <source>Hue</source>
+        <translation>Teinte</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Saturation</source>
+        <translation>Saturation</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Value</source>
+        <translation>Valeur</translation>
+    </message>
     <message>
         <location filename="Operations/UCharConvertDialog.cpp" line="+37"/>
         <source>Convert to UChar</source>
@@ -1714,22 +1727,25 @@ Le débit vaut : %5.2f
         <translation>&lt;i&gt;Décaler et mettre à l&apos;echelle : Ajoute un décalge de 127 et effectue une mise à l&apos;echelle&lt;/i&gt;</translation>
     </message>
     <message>
-        <location filename="Operations/PointOp.cpp" line="+349"/>
+        <location filename="Operations/PointOp.cpp" line="+418"/>
         <source>Pas de conversion [min : 0, max : 255]</source>
         <translation>Pas de conversion [min : 0, max : 255]</translation>
     </message>
+    <message>
+        <location filename="Operations/AbsoluteConvertOp.cpp" line="+33"/>
+        <source>Convert to Absolute</source>
+        <translation>Convertir en Absolu</translation>
+    </message>
 </context>
 <context>
     <name>PlugOperation</name>
     <message>
-        <location filename="../core/PlugOperation.cpp" line="+77"/>
         <source>Parameters</source>
-        <translation>Paramètres</translation>
+        <translation type="vanished">Paramètres</translation>
     </message>
     <message>
-        <location line="+9"/>
         <source>Validate</source>
-        <translation>Valider</translation>
+        <translation type="vanished">Valider</translation>
     </message>
 </context>
 <context>
@@ -1780,46 +1796,145 @@ Le débit vaut : %5.2f
 <context>
     <name>PointOp</name>
     <message>
-        <location filename="Operations/PointOp.cpp" line="-272"/>
+        <location filename="Operations/PointOp.cpp" line="-322"/>
         <source>Second operand</source>
         <translation>Second opérande</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+1"/>
         <source>Value</source>
         <translation>Valeur</translation>
     </message>
+    <message>
+        <location line="+1"/>
+        <source>Enter a real number in the blank space below as the second operand</source>
+        <translation>Entrez un nombre réel dans l&apos;espace vide ci-dessous comme le second opérande</translation>
+    </message>
     <message>
         <location line="+1"/>
         <source>Image</source>
         <translation>Image</translation>
     </message>
     <message>
-        <location line="+30"/>
+        <location line="+1"/>
+        <source>Select an image as the second operand</source>
+        <translation>Sélectionnez une image comme deuxième opérande</translation>
+    </message>
+    <message>
+        <location line="+4"/>
+        <source>Output the result image in uchar format</source>
+        <translation>Sortie de l&apos;image de résultat au format uchar</translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Output the result image in double format</source>
+        <translation>Sortie l&apos;image de résultat au format double</translation>
+    </message>
+    <message>
+        <location line="+26"/>
+        <source>Add an offset of 127 to fit negative values</source>
+        <translation>Ajoutez un décalage de 127 pour ajuster les valeurs négatives</translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Map the value of each pixel to the range of 0-255 proportionally</source>
+        <translation>Mettre à l&apos;échelle la valeur de chaque pixel dans la plage de 0 à 255</translation>
+    </message>
+    <message>
+        <location line="+1"/>
         <source>Explode colors</source>
         <translation>Eclater les couleurs</translation>
     </message>
+    <message>
+        <location line="+1"/>
+        <source>Check this option to execute the manipulation by channel</source>
+        <translation>Cochez cette option pour exécuter la manipulation par canal</translation>
+    </message>
+    <message>
+        <location line="+29"/>
+        <source>Supported operations list which takes a value as operand: 
+ The input operand will be rounded down for shift operations</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Supported operations list whick takes an image as operand: 
+ The bit-wise NOT operation will automatically ignore the second image</source>
+        <translation type="unfinished"></translation>
+    </message>
     <message>
         <source>Double Result</source>
         <translation type="vanished">Résultat Double</translation>
     </message>
     <message>
-        <location line="-35"/>
+        <location line="-64"/>
         <source>UChar</source>
         <translation>UChar</translation>
     </message>
     <message>
-        <location line="+1"/>
+        <location line="+2"/>
         <source>Double</source>
         <translation>Double</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="-3"/>
         <source>Output image</source>
         <translation>Image en sortie</translation>
     </message>
     <message>
-        <location line="+27"/>
+        <location line="-31"/>
+        <source>! (bit-wise NOT)</source>
+        <translation>! (NON bit-à-bit)</translation>
+    </message>
+    <message>
+        <location line="+0"/>
+        <location line="+2"/>
+        <source>&amp; (bit-wise AND)</source>
+        <translation>&amp; (ET bit-à-bit)</translation>
+    </message>
+    <message>
+        <location line="-2"/>
+        <location line="+2"/>
+        <source>| (bit-wise OR)</source>
+        <translation>| (OU bit-à-bit)</translation>
+    </message>
+    <message>
+        <location line="-2"/>
+        <location line="+2"/>
+        <source>^ (bit-wise XOR)</source>
+        <translation>^ (XOR bit-à-bit)</translation>
+    </message>
+    <message>
+        <location line="-2"/>
+        <location line="+1"/>
+        <location line="+1"/>
+        <location line="+1"/>
+        <source>&amp;&amp; (logical AND)</source>
+        <translation>&amp;&amp; (ET logique)</translation>
+    </message>
+    <message>
+        <location line="-3"/>
+        <location line="+1"/>
+        <location line="+1"/>
+        <location line="+1"/>
+        <source>|| (logical OR)</source>
+        <translation>|| (OU logique)</translation>
+    </message>
+    <message>
+        <location line="-3"/>
+        <location line="+1"/>
+        <location line="+1"/>
+        <location line="+1"/>
+        <source>^^ (logical XOR)</source>
+        <translation>^^ (XOR logique)</translation>
+    </message>
+    <message>
+        <location line="-2"/>
+        <source>!! (logical NOT)</source>
+        <translation>!! (NON logique)</translation>
+    </message>
+    <message>
+        <location line="+56"/>
         <source>Options</source>
         <translation>Options</translation>
     </message>
@@ -1829,7 +1944,7 @@ Le débit vaut : %5.2f
         <translation>Décalage</translation>
     </message>
     <message>
-        <location line="+1"/>
+        <location line="+2"/>
         <source>Scaling</source>
         <translation>Mise à l&apos;échelle</translation>
     </message>
@@ -1846,71 +1961,61 @@ Le débit vaut : %5.2f
     <name>PyramidDialog</name>
     <message>
         <location filename="Operations/PyramidDialog.ui" line="+14"/>
-        <location filename="../build/app/ui_PyramidDialog.h" line="+139"/>
         <source>Pyramidal decomposition</source>
         <translation>Décomposition pyramidale</translation>
     </message>
     <message>
         <location line="+6"/>
-        <location filename="../build/app/ui_PyramidDialog.h" line="+1"/>
         <source>Type of pyramid</source>
         <translation>Type de pyramide</translation>
     </message>
     <message>
         <location line="+6"/>
         <location line="+35"/>
-        <location filename="../build/app/ui_PyramidDialog.h" line="+1"/>
-        <location line="+6"/>
         <source>gaussian</source>
         <translation>gaussien</translation>
     </message>
     <message>
         <location line="-25"/>
-        <location filename="../build/app/ui_PyramidDialog.h" line="-5"/>
         <source>laplacian</source>
         <translation>laplacien</translation>
     </message>
     <message>
         <location line="+12"/>
-        <location filename="../build/app/ui_PyramidDialog.h" line="+1"/>
         <source>Filter : </source>
         <translation>Filtre : </translation>
     </message>
     <message>
         <location line="+8"/>
-        <location filename="../build/app/ui_PyramidDialog.h" line="+3"/>
         <source>triangular</source>
         <translation>triangulaire</translation>
     </message>
     <message>
         <location line="+10"/>
-        <location filename="../build/app/ui_PyramidDialog.h" line="+2"/>
         <source>trimodal</source>
         <translation>trimodal</translation>
     </message>
     <message>
         <location line="+5"/>
-        <location filename="../build/app/ui_PyramidDialog.h" line="+1"/>
         <source>rectangular</source>
         <translation>rectangulaire</translation>
     </message>
     <message>
         <location line="+5"/>
-        <location filename="../build/app/ui_PyramidDialog.h" line="+1"/>
         <source>qmf</source>
         <translation>qmf</translation>
     </message>
     <message>
         <location line="+8"/>
-        <location filename="../build/app/ui_PyramidDialog.h" line="+2"/>
-        <source>Number of steps : </source>
-        <translation>Nombre d&apos;étage : </translation>
+        <source>Number of levels : </source>
+        <oldsource>Number of steps : </oldsource>
+        <translation type="unfinished">Nombre d&apos;étage : </translation>
     </message>
     <message>
         <location line="+21"/>
-        <location filename="../build/app/ui_PyramidDialog.h" line="+1"/>
-        <source>Create only one step :</source>
-        <translation>Créer un étage unique: </translation>
+        <source>Create only one level :</source>
+        <oldsource>Create only one step :</oldsource>
+        <translation type="unfinished">Créer un étage unique: </translation>
     </message>
     <message>
         <location filename="Operations/PyramidDialog.cpp" line="+41"/>
@@ -1983,17 +2088,17 @@ Le débit vaut : %5.2f
         <translation>Non linéaire à valeurs moyennes</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+3"/>
         <source>Custom</source>
         <translation>Personnalisée</translation>
     </message>
     <message>
-        <location line="+1"/>
+        <location line="-1"/>
         <source>LloydMax</source>
         <translation>LloydMax</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+3"/>
         <source>Quantification : </source>
         <translation>Quantification : </translation>
     </message>
@@ -2101,7 +2206,7 @@ Le débit vaut : %5.2f
 <context>
     <name>RandomImgOp</name>
     <message>
-        <location filename="Operations/RandomImgOp.cpp" line="-106"/>
+        <location filename="Operations/RandomImgOp.cpp" line="-119"/>
         <source>Parameters</source>
         <translation>Paramètres</translation>
     </message>
@@ -2147,6 +2252,16 @@ Le débit vaut : %5.2f
         <source> to </source>
         <translation> à </translation>
     </message>
+    <message>
+        <location line="+24"/>
+        <source>Warning</source>
+        <translation type="unfinished">Alerte</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Empty image generation is not allowed</source>
+        <translation type="unfinished">La génération d&apos;images vides n&apos;est pas autorisée</translation>
+    </message>
 </context>
 <context>
     <name>RejectionRingOp</name>
@@ -2278,7 +2393,7 @@ Le débit vaut : %5.2f
 <context>
     <name>SinusSynthesisOp</name>
     <message>
-        <location filename="Operations/SinusSynthesisOp.cpp" line="-95"/>
+        <location filename="Operations/SinusSynthesisOp.cpp" line="-109"/>
         <source>Sinus synthesis</source>
         <translation>Synthèse sinus</translation>
     </message>
@@ -2308,7 +2423,7 @@ Le débit vaut : %5.2f
         <translation>Taille de l&apos;image (hauteur=largeur) : </translation>
     </message>
     <message>
-        <location line="+1"/>
+        <location line="+3"/>
         <source>Signal period (pixel) : </source>
         <translation>Période du signal (pixel) : </translation>
     </message>
@@ -2322,6 +2437,16 @@ Le débit vaut : %5.2f
         <source>Niveaux de gris : </source>
         <translation>Niveaux de gris : </translation>
     </message>
+    <message>
+        <location line="+17"/>
+        <source>Warning</source>
+        <translation type="unfinished">Alerte</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Image size can not be zero</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>StructElemWindow</name>
@@ -2957,462 +3082,69 @@ Le débit vaut : %5.2f
     </message>
 </context>
 <context>
-    <name>genericinterface::ColumnView</name>
-    <message>
-        <location filename="../lib/detiq-t/GenericInterface/Widgets/ImageWidgets/ColumnView.cpp" line="+28"/>
-        <source>Column Profile for column number %1</source>
-        <translation type="unfinished"></translation>
-    </message>
+    <name>genericinterface::DoubleImageWindow</name>
     <message>
-        <location line="+1"/>
-        <source>Pixel Value</source>
-        <translation type="unfinished"></translation>
+        <source>Crop</source>
+        <translation type="obsolete">Rogner</translation>
     </message>
     <message>
-        <location line="+1"/>
-        <source>Line number</source>
-        <translation type="unfinished"></translation>
+        <source>Color</source>
+        <translation type="obsolete">Couleur</translation>
     </message>
 </context>
 <context>
-    <name>genericinterface::ColumnWindow</name>
+    <name>genericinterface::FileService</name>
     <message>
-        <location filename="../lib/detiq-t/GenericInterface/Widgets/ImageWidgets/ColumnWindow.cpp" line="+28"/>
-        <source>Column profile</source>
-        <translation type="unfinished"></translation>
+        <source>Open a file</source>
+        <translation type="obsolete">Ouvrir un fichier</translation>
     </message>
 </context>
 <context>
-    <name>genericinterface::DoubleImageWindow</name>
-    <message>
-        <location filename="../lib/detiq-t/GenericInterface/Widgets/ImageWidgets/DoubleImageWindow.cpp" line="+77"/>
-        <source>Disable Offset</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+7"/>
-        <source>Offset (127)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <source>Crop</source>
-        <translation type="unfinished">Rogner</translation>
-    </message>
+    <name>genericinterface::GenericHistogramView</name>
     <message>
-        <location line="+1"/>
-        <source>Copy &amp; crop</source>
-        <translation type="unfinished"></translation>
+        <source>Black</source>
+        <translation type="obsolete">Noir</translation>
     </message>
     <message>
-        <location line="+29"/>
-        <source>Selected</source>
-        <translation type="unfinished"></translation>
+        <source>Red</source>
+        <translation type="obsolete">Rouge</translation>
     </message>
     <message>
-        <location line="+9"/>
-        <location line="+15"/>
-        <location line="+95"/>
-        <location line="+28"/>
-        <source>Color</source>
-        <translation type="unfinished">Couleur</translation>
+        <source>Alpha</source>
+        <translation type="obsolete">Alpha</translation>
     </message>
     <message>
-        <location line="-132"/>
-        <source>Hovered</source>
-        <translation type="unfinished"></translation>
+        <source>Green</source>
+        <translation type="obsolete">Vert</translation>
     </message>
     <message>
-        <location line="+61"/>
-        <source>Pixels Grid</source>
-        <translation type="unfinished"></translation>
+        <source>Blue</source>
+        <translation type="obsolete">Bleu</translation>
     </message>
 </context>
 <context>
-    <name>genericinterface::FileService</name>
+    <name>genericinterface::ImageWindow</name>
     <message>
-        <location filename="../lib/detiq-t/GenericInterface/Services/FileService.cpp" line="+43"/>
-        <location line="+50"/>
-        <location line="+5"/>
-        <source>&amp;File</source>
-        <translation type="unfinished"></translation>
+        <source>Image</source>
+        <translation type="obsolete">Image</translation>
     </message>
+</context>
+<context>
+    <name>genericinterface::MorphoMatService</name>
     <message>
-        <location line="-54"/>
-        <location line="+31"/>
-        <source>&amp;Open</source>
-        <translation type="unfinished"></translation>
+        <location filename="Services/MorphoMatService.cpp" line="+58"/>
+        <source>&amp;Erosion</source>
+        <translation>&amp;Erosion</translation>
     </message>
     <message>
-        <location line="-26"/>
-        <source>Save &amp;As</source>
-        <translation type="unfinished"></translation>
+        <location line="+1"/>
+        <source>&amp;Dilatation</source>
+        <translation>&amp;Dilatation</translation>
     </message>
     <message>
-        <location line="+6"/>
-        <source>&amp;Copy</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+25"/>
-        <source>Language</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+120"/>
-        <source>Save a file</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+0"/>
-        <source>PNG image (*.png);;BMP image (*.bmp);; JPEG image(*.jpg *.jpeg);; VFF image (*.vff)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+34"/>
-        <source>&amp;%1 %2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+20"/>
-        <source>Open a file</source>
-        <translation type="unfinished">Ouvrir un fichier</translation>
-    </message>
-    <message>
-        <location line="+0"/>
-        <source>Supported image (*.png *.bmp *.jpg *.jpeg *.vff);; PNG image (*.png);;BMP image (*.bmp);; JPEG image(*.jpg *.jpeg);; VFF image (*.vff)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+19"/>
-        <source>Change current language</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>The current language will be modified at next startup. Would you like to restart now?</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>genericinterface::GenericHistogramView</name>
-    <message>
-        <location filename="../lib/detiq-t/GenericInterface/Widgets/ImageWidgets/GenericHistogramView.cpp" line="+111"/>
-        <source>Histogram</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
-        <source>Number of specimen</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Pixel value</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+60"/>
-        <source>Black</source>
-        <translation type="unfinished">Noir</translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>Red</source>
-        <translation type="unfinished">Rouge</translation>
-    </message>
-    <message>
-        <location line="+4"/>
-        <location line="+8"/>
-        <source>Alpha</source>
-        <translation type="unfinished">Alpha</translation>
-    </message>
-    <message>
-        <location line="-6"/>
-        <source>Green</source>
-        <translation type="unfinished">Vert</translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <source>Blue</source>
-        <translation type="unfinished">Bleu</translation>
-    </message>
-    <message>
-        <location line="+6"/>
-        <source>Channel</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>genericinterface::GenericHistogramWindow</name>
-    <message>
-        <location filename="../lib/detiq-t/GenericInterface/Widgets/ImageWidgets/GenericHistogramWindow.cpp" line="+78"/>
-        <location line="+150"/>
-        <source>Hovered</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-145"/>
-        <location line="+150"/>
-        <source>Value 1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-145"/>
-        <location line="+150"/>
-        <source>Value 2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-144"/>
-        <source>Save As Image</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+67"/>
-        <source>Bad object type</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+0"/>
-        <source>Only images can be saved to a file.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
-        <source>Unknown exception</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+15"/>
-        <source>Save a file</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+0"/>
-        <source>PNG image (*.png);;BMP image (*.bmp);; JPEG image(*.jpg *.jpeg);; VFF image (*.vff)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+65"/>
-        <source>C: %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>C: %1, A: %2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>R: %1, G: %2, B: %3</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>R: %1, G: %2, B: %3, A: %4</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>genericinterface::GenericInterface</name>
-    <message>
-        <location filename="../lib/detiq-t/GenericInterface/GenericInterface.cpp" line="+56"/>
-        <location line="+180"/>
-        <location line="+1"/>
-        <source>&amp;Help</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-181"/>
-        <source>&amp;About</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+32"/>
-        <location line="+100"/>
-        <source>Interface&apos;s integrity compromised</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-99"/>
-        <source>An error occurred in the addition of a new service. The interface may not offer all the expected features. See the log file for more informations.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+100"/>
-        <source>An error occurred in the addition of a service. The interface may not offer all the expected features. See the log file for more informations.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+44"/>
-        <location line="+1"/>
-        <source>&amp;Window</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+49"/>
-        <location line="+1"/>
-        <source>&amp;File</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+0"/>
-        <source>&amp;Exit</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>genericinterface::HistogramView</name>
-    <message>
-        <location filename="../lib/detiq-t/GenericInterface/Widgets/ImageWidgets/HistogramView.cpp" line="+30"/>
-        <location line="+11"/>
-        <source>Histogram</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-8"/>
-        <location line="+11"/>
-        <source>Cumulated histogram</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>genericinterface::HistogramWindow</name>
-    <message>
-        <location filename="../lib/detiq-t/GenericInterface/Widgets/ImageWidgets/HistogramWindow.cpp" line="+29"/>
-        <location line="+11"/>
-        <source>Histogram</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-8"/>
-        <location line="+11"/>
-        <source>Cumulated histogram</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>genericinterface::ImageWindow</name>
-    <message>
-        <location filename="../lib/detiq-t/GenericInterface/Widgets/ImageWidgets/ImageWindow.cpp" line="+86"/>
-        <location line="+100"/>
-        <source>Save As</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-97"/>
-        <source>Zoom + (Ctrl+Scroll Wheel)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Zoom - (Ctrl+Scroll Wheel)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>Rename</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>Apply mask</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>Copy image</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+35"/>
-        <source>Image</source>
-        <translation type="unfinished">Image</translation>
-    </message>
-    <message>
-        <location line="+11"/>
-        <location line="+270"/>
-        <source>Zoom</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-264"/>
-        <source>Selection mode</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+7"/>
-        <source>Hand mode</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+8"/>
-        <source>Select all</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+8"/>
-        <source>Zoom +</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+8"/>
-        <source>Zoom -</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+149"/>
-        <source>Bad object type</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+0"/>
-        <source>Only images can be saved to a file.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
-        <source>Unknown exception</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+14"/>
-        <source>Save a file</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+0"/>
-        <source>PNG image (*.png);;BMP image (*.bmp);; JPEG image(*.jpg *.jpeg);; VFF image (*.vff)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+95"/>
-        <source>Rename image</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>New name:</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>genericinterface::MorphoMatService</name>
-    <message>
-        <location filename="Services/MorphoMatService.cpp" line="+58"/>
-        <source>&amp;Erosion</source>
-        <translation>&amp;Erosion</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>&amp;Dilatation</source>
-        <translation>&amp;Dilatation</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>&amp;Opening</source>
-        <translation>&amp;Ouverture</translation>
+        <location line="+1"/>
+        <source>&amp;Opening</source>
+        <translation>&amp;Ouverture</translation>
     </message>
     <message>
         <location line="+1"/>
@@ -3440,317 +3172,22 @@ Le débit vaut : %5.2f
         <translation>Elément &amp;structurant</translation>
     </message>
 </context>
-<context>
-    <name>genericinterface::NavigationDock</name>
-    <message>
-        <location filename="../lib/detiq-t/GenericInterface/Widgets/NavBar/NavigationDock.cpp" line="+45"/>
-        <source>Close all image from the selection</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>genericinterface::ProjectionHistogramView</name>
-    <message>
-        <location filename="../lib/detiq-t/GenericInterface/Widgets/ImageWidgets/ProjectionHistogramView.cpp" line="+29"/>
-        <source>Horizontal Projection Histogram</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Line number</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <source>Vertical Projection Histogram</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Column number</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <source>Number of pixels &gt;= %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>genericinterface::ProjectionHistogramWindow</name>
-    <message>
-        <location filename="../lib/detiq-t/GenericInterface/Widgets/ImageWidgets/ProjectionHistogramWindow.cpp" line="+29"/>
-        <source>Horizontal Projection Histogram</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>Vertical Projection Histogram</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>genericinterface::RadioPanel</name>
-    <message>
-        <location filename="../lib/detiq-t/GenericInterface/Widgets/ImageWidgets/GridView.cpp" line="+60"/>
-        <source>R</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>G</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>B</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>genericinterface::RowView</name>
-    <message>
-        <location filename="../lib/detiq-t/GenericInterface/Widgets/ImageWidgets/RowView.cpp" line="+28"/>
-        <source>Line Profile for line number %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Pixel Value</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Column number</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>genericinterface::RowWindow</name>
-    <message>
-        <location filename="../lib/detiq-t/GenericInterface/Widgets/ImageWidgets/RowWindow.cpp" line="+28"/>
-        <source>Row profile</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>genericinterface::SelectionWidget</name>
-    <message>
-        <location filename="../lib/detiq-t/GenericInterface/Widgets/ImageWidgets/ImageWindow.cpp" line="-400"/>
-        <source>Selection : </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>x:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>y:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>width:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>height:</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
 <context>
     <name>genericinterface::StandardImageWindow</name>
     <message>
-        <location filename="../lib/detiq-t/GenericInterface/Widgets/ImageWidgets/StandardImageWindow.cpp" line="+47"/>
-        <source>Unknown file format !</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+12"/>
-        <source>Unknown exception</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+4"/>
-        <source>Error while opening file</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+39"/>
         <source>Crop</source>
-        <translation type="unfinished">Rogner</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Copy and crop</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+29"/>
-        <source>Selected</source>
-        <translation type="unfinished"></translation>
+        <translation type="obsolete">Rogner</translation>
     </message>
     <message>
-        <location line="+9"/>
-        <location line="+15"/>
-        <location line="+125"/>
-        <location line="+15"/>
         <source>Color</source>
-        <translation type="unfinished">Couleur</translation>
-    </message>
-    <message>
-        <location line="-149"/>
-        <source>Hovered</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+47"/>
-        <location line="+12"/>
-        <source>Threshold selection</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-12"/>
-        <location line="+12"/>
-        <source>Enter the threshold value
-(only pixels superior or equal to this value will be counted)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+12"/>
-        <source>Line selection</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+0"/>
-        <source>Select the line to project</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+13"/>
-        <source>Column selection</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+0"/>
-        <source>Select the column to project</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+12"/>
-        <source>Pixels Grid</source>
-        <translation type="unfinished"></translation>
+        <translation type="obsolete">Couleur</translation>
     </message>
 </context>
 <context>
     <name>genericinterface::UtilityService</name>
     <message>
-        <location filename="../lib/detiq-t/GenericInterface/Services/UtilityService.cpp" line="+30"/>
-        <source>&amp;Show</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Histogram</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Cumulated Histogram</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>Horizontal projection histogram</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Vertical projection histogram</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>Line Profile</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Column Profile</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>Pixels grid</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
         <source>Colors</source>
-        <translation type="unfinished">Couleurs</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Convert to Binary</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Convert to Grayscale</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>genericinterface::WindowService</name>
-    <message>
-        <location filename="../lib/detiq-t/GenericInterface/Services/WindowService.cpp" line="+43"/>
-        <source>Images</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <location line="+6"/>
-        <location line="+6"/>
-        <source>&amp;Window</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-12"/>
-        <source>&amp;Tile windows</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+6"/>
-        <source>&amp;Cascade windows</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+6"/>
-        <source>Hide/Show Image dock</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+295"/>
-        <source>Attention</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+0"/>
-        <source>You&apos;re going to close all the relative windows, are you sure you want to continue ?</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+152"/>
-        <source>Mask to apply : </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+64"/>
-        <source> - masked</source>
-        <translation type="unfinished"></translation>
+        <translation type="obsolete">Couleurs</translation>
     </message>
 </context>
 </TS>
diff --git a/app/main.cpp b/app/main.cpp
index 0db6b27..956361b 100644
--- a/app/main.cpp
+++ b/app/main.cpp
@@ -167,7 +167,7 @@ int main(int argc, char** argv)
 
 
 
-    BuiltinOpSet* encode = new BuiltinOpSet(qApp->translate("", "&Encoding").toStdString());
+    BuiltinOpSet* encode = new BuiltinOpSet(qApp->translate("", "&Coding").toStdString());
 
     encode->addOperation(new HuffmanOp());
     encode->addOperation(new DPCMEncodingOp());
diff --git a/lib/detiq-t b/lib/detiq-t
index b918c35..65aa979 160000
--- a/lib/detiq-t
+++ b/lib/detiq-t
@@ -1 +1 @@
-Subproject commit b918c357c0daaab2c179a99802732d7ce0804437
+Subproject commit 65aa97923240607c9d890e5883d1dcaf18790b46
-- 
GitLab