Different sampling algorithms

This commit is contained in:
2019-03-12 00:43:35 +01:00
parent 8706e241a4
commit 892835b380
+7 -11
View File
@@ -43,8 +43,7 @@ public:
double* CalculateDCT(Image* img) {
double pi = 3.14159265359;
img->type(GrayscaleType);
img->filterType(LanczosFilter); //fast!
img->resize(Geometry(8, 8)); //64 pixels
img->sample(Geometry("8x8!")); //64 pixels
ssize_t n = 8;
ssize_t m = 8;
Pixels view(*img);
@@ -159,8 +158,7 @@ public:
bitset<64> feature(Image* img) {
Image* local_image = new Image(*img);
local_image->type(GrayscaleType);
local_image->filterType(LanczosFilter); //fast resizing, should have minimal impact on accuracy
local_image->resize(Geometry(8, 8, 0, 0)); //64 pixels
local_image->sample(Geometry("8x8!")); //64 pixels
ssize_t n = 8;
ssize_t m = 8;
Pixels view(*local_image);
@@ -263,8 +261,7 @@ public:
bitset<64> feature(Image* img) {
Image* local_image = new Image(*img);
local_image->type(GrayscaleType);
local_image->filterType(LanczosFilter); //fast!
local_image->resize(Geometry(8, 8)); //64 pixels
local_image->sample(Geometry("8x8!")); //64 pixels
ssize_t n = 8;
ssize_t m = 8;
Pixels view(*local_image);
@@ -293,23 +290,22 @@ public:
if (a[i] != b[i]) biterror++;
}
return biterror;
};
}
string ToString() {
return "pearson";
}
};
//Uses an adaptive thresholding algorithm on an 8*8
//images. Re-calculates the threshold for each 2*2
//images. Re-calculates the threshold for each
//neighbourhood and stores it in a LTR map
class threshold : public Descriptor {
public:
bitset<64> feature(Image* img) {
Image* local_image = new Image(*img);
local_image->type(GrayscaleType);
local_image->filterType(LanczosFilter); //fast!
local_image->resize(Geometry(8, 8)); //64 pixels
local_image->adaptiveThreshold(2, 2); //Thresholding in a moving 2*2 neighborhood
local_image->sample(Geometry("8x8!")); //64 pixels
local_image->adaptiveThreshold(3, 3); //Thresholding in a moving neighborhood
ssize_t n = 8;
ssize_t m = 8;
Pixels view(*local_image);