#pragma once #include #include #include #include #include #include #include #include #include #include "Descriptor.h" #include "Mutation.h" using namespace std; using namespace Magick; //ENUM_STRING(descriptorss, (totalColors)(averageColor)(numDescriptors)) namespace fs = boost::filesystem; //Manager class for class DescriptorManager { public: DescriptorManager(); DescriptorManager(const fs::path & image_path); ~DescriptorManager(); void Init(); void rankImages(string image_name, int method); void rankMutations(string image_name, int method); void runExperiments(); void outputMap(int a); void outputMap(); void DescriptorManager::outputRank(string imagename, int method); private: static const int numDescriptors = 8; static const int numMutations = 7; //TODO: automagically update this? bool initialized = false; map> features[numDescriptors]; //array of maps that will hold the descriptors map> mutatedFeatures[numDescriptors][numMutations]; multiset > distances; //multiset that stores the distances fs::path img_path; //where the images are Descriptor* descriptor_types[numDescriptors]; Mutation* mutators[numMutations]; };