Adds DCTMedian
Probably DCT Average would work better..
This commit is contained in:
@@ -360,4 +360,35 @@ public:
|
||||
string ToString() {
|
||||
return "Discrete Cosine Transform - Pearson Code";
|
||||
}
|
||||
};
|
||||
|
||||
class DCTMedian : public Descriptor {
|
||||
public:
|
||||
bitset<64> feature(Image* img) {
|
||||
double* converted = CalculateDCT(img);
|
||||
double bullshit[64];
|
||||
for (ssize_t i = 0; i < 64; i++) {
|
||||
bullshit[i] = converted[i];
|
||||
}
|
||||
sort(bullshit, bullshit + 64);
|
||||
float median = (float)(bullshit[31] + bullshit[32]) / 2;
|
||||
|
||||
bitset<64> retval(0);
|
||||
for (ssize_t i = 0; i < 64; i++) {
|
||||
retval <<= 1;
|
||||
if (converted[i] > median)
|
||||
retval |= bitset<64>(1);
|
||||
}
|
||||
return retval;
|
||||
}
|
||||
unsigned long long distance(bitset<64> a, bitset<64> b) {
|
||||
int biterror = 0;
|
||||
for (int i = 0; i < 64; i++) {
|
||||
if (a[i] != b[i]) biterror++;
|
||||
}
|
||||
return biterror;
|
||||
};
|
||||
string ToString() {
|
||||
return "Discrete Cosine Transform - Median Code";
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user