Skip to content
Snippets Groups Projects
Commit effc58ea authored by Antoine Lorence's avatar Antoine Lorence
Browse files

[Quantif] Quantification and Quantifier structs are now classes

And methods have been reordered in cpp file
parent 2ef4cf16
No related branches found
No related tags found
No related merge requests found
......@@ -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);
}
}
......@@ -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];
};
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment