From 1ffc7f02415f5e0452babd15f88a8327689f47e5 Mon Sep 17 00:00:00 2001 From: Jim Martens Date: Tue, 30 May 2017 21:23:52 +0200 Subject: [PATCH] [CCV] Finished main function Signed-off-by: Jim Martens --- ccv/saliency/main.cpp | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/ccv/saliency/main.cpp b/ccv/saliency/main.cpp index 3c97ca4..d8603d9 100644 --- a/ccv/saliency/main.cpp +++ b/ccv/saliency/main.cpp @@ -8,24 +8,29 @@ /** * Entry point of program * @param argc number of arguments - * @param argv CLI arguments, 0: name of program, 1: input file name, 2: output file name + * @param argv CLI arguments, 0: name of program, 1: input file name, 2: output file name, 3: flag for usage of orientation * @return status code (0: everything OK, -1: not right amount of arguments) */ int main(int argc, char** argv) { - if (argc != 3) { - printf("usage: \n"); + if (argc != 4) { + printf("usage: \n"); return -1; } // read image cv::Mat image = cv::imread(argv[1], cv::ImreadModes::IMREAD_COLOR); + bool use_orientation = (strcmp(argv[3], "1") == 0); // tweakable factors int layers = 4; - float sigma_center = 5; - float sigma_surround = 9; + float sigma_center = 3; + float sigma_surround = 7; float sigma_laplacian = 4; + int number_orientations = 4; + int gabor_size = 7; + double wavelength = 5; + double standard_deviation = 5; // create LAB pyramids lab_pyramid lab_pyr_center = lab_pyramid(image); @@ -36,22 +41,29 @@ int main(int argc, char** argv) { gauss_pyramid c_pyr_L = lab_pyr_center.get_pyramid(lab_pyramid::COLOR_L); laplacian_pyramid laplacian_pyr = laplacian_pyramid(c_pyr_L, sigma_laplacian); // create orientation pyramid - oriented_pyramid oriented_pyr = oriented_pyramid(laplacian_pyr, number_orientations); + oriented_pyramid oriented_pyr = oriented_pyramid(laplacian_pyr, number_orientations, gabor_size, wavelength, + standard_deviation); // create contrast maps lab_pyramid::compute_dog(lab_pyr_center, lab_pyr_surround, layers); // create feature maps lab_pyramid::compute_feature_maps(); - oriented_pyr.compute_feature_maps(); + if (use_orientation) { + oriented_pyr.compute_feature_maps(); + } // create conspicuity maps lab_pyramid::compute_conspicuity_maps(); - oriented_pyr.compute_conspicuity_map(); + if (use_orientation) { + oriented_pyr.compute_conspicuity_map(); + } // get conspicuity maps std::vector conspicuity_maps = std::vector(); conspicuity_maps.push_back(lab_pyramid::get_conspicuity_map(lab_pyramid::COLOR_L)); conspicuity_maps.push_back(lab_pyramid::get_conspicuity_map(lab_pyramid::COLOR_A)); conspicuity_maps.push_back(lab_pyramid::get_conspicuity_map(lab_pyramid::COLOR_B)); - conspicuity_maps.push_back(oriented_pyr.get_conspicuity_map()); + if (use_orientation) { + conspicuity_maps.push_back(oriented_pyr.get_conspicuity_map()); + } // get saliency map cv::Mat saliency = max_fusion_generic(conspicuity_maps);