61 po::options_description options{};
63 (
"image-start", po::value<int>()->default_value(100),
"Image start size")
64 (
"kernel-start", po::value<int>()->default_value(3),
"Kernel start size")
65 (
"step-size", po::value<int>()->default_value(4),
"Step size")
66 (
"image-nsteps", po::value<int>()->default_value(1),
"Number of steps for the image")
67 (
"kernel-nsteps", po::value<int>()->default_value(2),
"Number of steps for the kernel")
68 (
"repeat", po::value<int>()->default_value(5),
"Repeat")
69 (
"measures", po::value<int>()->default_value(10),
"Number of measures");
85 auto img_start = args[
"image-start"].as<
int>();
86 auto krn_start = args[
"kernel-start"].as<
int>();
87 auto step_size = args[
"step-size"].as<
int>();
88 auto img_nsteps = args[
"image-nsteps"].as<
int>();
89 auto krn_nsteps = args[
"kernel-nsteps"].as<
int>();
90 auto repeat = args[
"repeat"].as<
int>();
91 auto measures = args[
"measures"].as<
int>();
95 for (
int img_step = 0; img_step < img_nsteps; ++img_step) {
96 auto img_size = img_start + img_step * step_size;
99 for (
int krn_step = 0; krn_step < krn_nsteps; ++krn_step) {
100 auto krn_size = krn_start + krn_step * step_size;
102 logger.info() <<
"Using an image of " << img_size <<
"x" << img_size;
103 logger.info() <<
"Using a kernel of " << krn_size <<
"x" << krn_size;
108 logger.info() <<
"Timing OpenCV implementation";
112 if (krn_size <= 10 || img_size <= 20) {
113 logger.info() <<
"Timing Direct implementation";
117 logger.info() <<
"Compare OpenCV vs Direct Result";
122 logger.info() <<
"Timing DFT implementation";
126 logger.info() <<
"Compare OpenCV vs DFT Result";