Different sampling algorithms
This commit is contained in:
+7
-11
@@ -43,8 +43,7 @@ public:
|
|||||||
double* CalculateDCT(Image* img) {
|
double* CalculateDCT(Image* img) {
|
||||||
double pi = 3.14159265359;
|
double pi = 3.14159265359;
|
||||||
img->type(GrayscaleType);
|
img->type(GrayscaleType);
|
||||||
img->filterType(LanczosFilter); //fast!
|
img->sample(Geometry("8x8!")); //64 pixels
|
||||||
img->resize(Geometry(8, 8)); //64 pixels
|
|
||||||
ssize_t n = 8;
|
ssize_t n = 8;
|
||||||
ssize_t m = 8;
|
ssize_t m = 8;
|
||||||
Pixels view(*img);
|
Pixels view(*img);
|
||||||
@@ -159,8 +158,7 @@ public:
|
|||||||
bitset<64> feature(Image* img) {
|
bitset<64> feature(Image* img) {
|
||||||
Image* local_image = new Image(*img);
|
Image* local_image = new Image(*img);
|
||||||
local_image->type(GrayscaleType);
|
local_image->type(GrayscaleType);
|
||||||
local_image->filterType(LanczosFilter); //fast resizing, should have minimal impact on accuracy
|
local_image->sample(Geometry("8x8!")); //64 pixels
|
||||||
local_image->resize(Geometry(8, 8, 0, 0)); //64 pixels
|
|
||||||
ssize_t n = 8;
|
ssize_t n = 8;
|
||||||
ssize_t m = 8;
|
ssize_t m = 8;
|
||||||
Pixels view(*local_image);
|
Pixels view(*local_image);
|
||||||
@@ -263,8 +261,7 @@ public:
|
|||||||
bitset<64> feature(Image* img) {
|
bitset<64> feature(Image* img) {
|
||||||
Image* local_image = new Image(*img);
|
Image* local_image = new Image(*img);
|
||||||
local_image->type(GrayscaleType);
|
local_image->type(GrayscaleType);
|
||||||
local_image->filterType(LanczosFilter); //fast!
|
local_image->sample(Geometry("8x8!")); //64 pixels
|
||||||
local_image->resize(Geometry(8, 8)); //64 pixels
|
|
||||||
ssize_t n = 8;
|
ssize_t n = 8;
|
||||||
ssize_t m = 8;
|
ssize_t m = 8;
|
||||||
Pixels view(*local_image);
|
Pixels view(*local_image);
|
||||||
@@ -293,23 +290,22 @@ public:
|
|||||||
if (a[i] != b[i]) biterror++;
|
if (a[i] != b[i]) biterror++;
|
||||||
}
|
}
|
||||||
return biterror;
|
return biterror;
|
||||||
};
|
}
|
||||||
string ToString() {
|
string ToString() {
|
||||||
return "pearson";
|
return "pearson";
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
//Uses an adaptive thresholding algorithm on an 8*8
|
//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
|
//neighbourhood and stores it in a LTR map
|
||||||
class threshold : public Descriptor {
|
class threshold : public Descriptor {
|
||||||
public:
|
public:
|
||||||
bitset<64> feature(Image* img) {
|
bitset<64> feature(Image* img) {
|
||||||
Image* local_image = new Image(*img);
|
Image* local_image = new Image(*img);
|
||||||
local_image->type(GrayscaleType);
|
local_image->type(GrayscaleType);
|
||||||
local_image->filterType(LanczosFilter); //fast!
|
local_image->sample(Geometry("8x8!")); //64 pixels
|
||||||
local_image->resize(Geometry(8, 8)); //64 pixels
|
local_image->adaptiveThreshold(3, 3); //Thresholding in a moving neighborhood
|
||||||
local_image->adaptiveThreshold(2, 2); //Thresholding in a moving 2*2 neighborhood
|
|
||||||
ssize_t n = 8;
|
ssize_t n = 8;
|
||||||
ssize_t m = 8;
|
ssize_t m = 8;
|
||||||
Pixels view(*local_image);
|
Pixels view(*local_image);
|
||||||
|
|||||||
Reference in New Issue
Block a user