diff --git a/app/Operations/Quantification.cpp b/app/Operations/Quantification.cpp index c9a084716baa359be1682c73725d3b9cc9e3daaf..e29730422654c474447f840b034ee4dd59614e7f 100644 --- a/app/Operations/Quantification.cpp +++ b/app/Operations/Quantification.cpp @@ -23,8 +23,8 @@ using namespace std; using namespace imagein; -Quantification::Quantification(int size_) { - this->size = size_; +Quantification::Quantification(int size) { + this->size = size; threshold = new int[this->size - 1]; values = new int[this->size]; } @@ -68,12 +68,6 @@ void Quantification::saveAs(std::string filename) { } } -Quantifier::Quantifier(Quantification quant) { - for(int i = 0; i < N_MAX_THRESHOLD; ++i) { - values[i] = quant.valueOf(i); - } -} - Quantification Quantification::linearQuant(int size) { Quantification quant(size); @@ -176,3 +170,9 @@ Quantification Quantification::nonLinearQuantOptimized(int size, const Image* im quant.values[size-1] = som_lum / nb_points + 0.5; return quant; } + +Quantifier::Quantifier(Quantification quant) { + for(int i = 0; i < N_MAX_THRESHOLD; ++i) { + values[i] = quant.valueOf(i); + } +} diff --git a/app/Operations/Quantification.h b/app/Operations/Quantification.h index 67d71aad0399c4fc8c3861fea9d3dd4b5a82fc5a..a42d1958e5ee3c1a71f51c112a84374ada035367 100644 --- a/app/Operations/Quantification.h +++ b/app/Operations/Quantification.h @@ -24,17 +24,13 @@ #define N_MAX_THRESHOLD 256 -struct Quantification { - static Quantification linearQuant(int size); - static Quantification nonLinearQuant(int size, const imagein::Image *image, unsigned int c); - static Quantification nonLinearQuantOptimized(int size, const imagein::Image *image, unsigned int c); - +class Quantification { +public: + explicit Quantification(int size); explicit Quantification(std::string filename); void saveAs(std::string filename); - explicit Quantification(int size_); - inline int valueOf(int value) const { for(int i = 0; i < this->size - 1; ++i) { if(value < this->threshold[i]) { @@ -43,17 +39,23 @@ struct Quantification { } return this->values[this->size - 1]; } + + static Quantification linearQuant(int size); + static Quantification nonLinearQuant(int size, const imagein::Image *image, unsigned int c); + static Quantification nonLinearQuantOptimized(int size, const imagein::Image *image, unsigned int c); + int size; int* threshold; int* values; }; -struct Quantifier { +class Quantifier { +public: Quantifier(Quantification quant); inline int valueOf(imagein::Image::depth_t value) { return this->values[value]; } - private: +private: int values[N_MAX_THRESHOLD]; };