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
Loading
......@@ -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