diff --git a/ccv/saliency/main.cpp b/ccv/saliency/main.cpp index 6376e35..3c97ca4 100644 --- a/ccv/saliency/main.cpp +++ b/ccv/saliency/main.cpp @@ -1,8 +1,9 @@ -#include #include #include "includes/lab_pyramid.h" #include "includes/fusion.h" +#include "includes/laplacian_pyramid.h" +#include "includes/oriented_pyramid.h" /** * Entry point of program @@ -23,25 +24,36 @@ int main(int argc, char** argv) { int layers = 4; float sigma_center = 5; float sigma_surround = 9; + float sigma_laplacian = 4; + int number_orientations = 4; // create LAB pyramids lab_pyramid lab_pyr_center = lab_pyramid(image); lab_pyr_center.create_pyramids(sigma_center, layers); lab_pyramid lab_pyr_surround = lab_pyramid(image); lab_pyr_surround.create_pyramids(sigma_surround, layers); + // create laplacian pyramid + 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); // 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(); // create conspicuity maps lab_pyramid::compute_conspicuity_maps(); + oriented_pyr.compute_conspicuity_map(); // get conspicuity maps - cv::Mat C_l = lab_pyramid::get_conspicuity_map(lab_pyramid::COLOR_L); - cv::Mat C_a = lab_pyramid::get_conspicuity_map(lab_pyramid::COLOR_A); - cv::Mat C_b = lab_pyramid::get_conspicuity_map(lab_pyramid::COLOR_B); + 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()); // get saliency map - cv::Mat saliency = max_fusion_saliency(C_l, C_a, C_b); + cv::Mat saliency = max_fusion_generic(conspicuity_maps); // convert saliency map to correct output format cv::Mat output_image;