From 892835b380cb9e1f624e9130b41b9827a44e296b Mon Sep 17 00:00:00 2001 From: Mark Hoekveen Date: Tue, 12 Mar 2019 00:43:35 +0100 Subject: [PATCH] Different sampling algorithms --- Descriptor.h | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/Descriptor.h b/Descriptor.h index db33ab0..d3538d0 100644 --- a/Descriptor.h +++ b/Descriptor.h @@ -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);