int main(int argc, char const *argv[]){ Classifier c; int numClasses, m, d, indexDescriptor, minoritySize; double prob = 0.5; std::string newDir, baseDir, featuresDir, csvOriginal, directory, str, bestDir; std::vector<ImageClass> originalData; if (argc != 3){ std::cout << "\nUsage: ./rebalanceTest (0) (1) (2) (3) (4)\n " << std::endl; std::cout << "\t(0) Directory to place tests\n" << std::endl; std::cout << "\t(1) Image Directory\n" << std::endl; std::cout << "\t(2) Features Directory\n" << std::endl; std::cout << "\t(3) Analysis Directory\n" << std::endl; std::cout << "\t./rebalanceTest Desbalanced/ Desbalanced/original/ Desbalanced/features/ Desbalanced/analysis/ 0\n" << std::endl; exit(-1); } newDir = std::string(argv[1]); baseDir = std::string(argv[2]); // featuresDir = std::string(argv[3]); // analysisDir = std::string(argv[4]); /* Available descriptorMethod: {"BIC", "GCH", "CCV", "Haralick6", "ACC", "LBP", "HOG", "Contour", "Fisher"} Quantization quantizationMethod: {"Intensity", "Luminance", "Gleam", "MSB"} */ std::vector <int> descriptors {1, 2, 3, 4, 5, 6, 7, 8}; for (indexDescriptor = 0; indexDescriptor < (int)descriptors.size(); indexDescriptor++){ d = descriptors[indexDescriptor]; for (m = 1; m <= 5; m++){ csvOriginal = newDir+"/analysis/original_"+descriptorMethod[d-1]+"_"+quantizationMethod[m-1]+"_"; featuresDir = newDir+"/features/"; /* Feature extraction from images */ std::string originalDescriptor = desc(baseDir, featuresDir, d, m, "original"); /* Read the feature vectors */ originalData = ReadFeaturesFromFile(originalDescriptor); numClasses = originalData.size(); if (numClasses != 0){ std::cout << "---------------------------------------------------------------------------------------" << std::endl; std::cout << "Classification using original data" << std::endl; std::cout << "Features vectors file: " << originalDescriptor.c_str() << std::endl; std::cout << "---------------------------------------------------------------------------------------" << std::endl; c.findSmallerClass(originalData, &minoritySize); c.classify(prob, 1, originalData, csvOriginal.c_str(), minoritySize); originalData.clear(); } } } return 0; }