From effc58ea03e2f8e35d88d15ace1222b7b8518576 Mon Sep 17 00:00:00 2001 From: Antoine Lorence <antoine.lorence@insa-rennes.fr> Date: Mon, 17 Nov 2014 17:08:23 +0100 Subject: [PATCH] [Quantif] Quantification and Quantifier structs are now classes And methods have been reordered in cpp file --- app/Operations/Quantification.cpp | 16 ++++++++-------- app/Operations/Quantification.h | 20 +++++++++++--------- 2 files changed, 19 insertions(+), 17 deletions(-) diff --git a/app/Operations/Quantification.cpp b/app/Operations/Quantification.cpp index c9a0847..e297304 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 67d71aa..a42d195 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]; }; -- GitLab