diff --git a/include/genimg/common.hh b/include/genimg/common.hh index 7073a3b..3f9e646 100644 --- a/include/genimg/common.hh +++ b/include/genimg/common.hh @@ -7,6 +7,8 @@ #include #include -std::tuple init_image(const std::string &t_input_file); +std::tuple init_image(std::string const &t_input_file); + +double euclidian_distance(cv::Mat const &t_img1, cv::Mat const &t_img2); #endif /* GENETIC_IMAGE_INCLUDE_GENIMG_COMMON_HH_ */ diff --git a/src/common.cc b/src/common.cc index 89231c3..a29fec6 100644 --- a/src/common.cc +++ b/src/common.cc @@ -1,9 +1,10 @@ #include "common.hh" +#include +#include #include -std::tuple init_image(const std::string &t_input_file) { - cv::Mat input_image = - cv::imread(t_input_file, cv::IMREAD_COLOR); +std::tuple init_image(std::string const &t_input_file) { + cv::Mat input_image = cv::imread(t_input_file, cv::IMREAD_COLOR); if (!input_image.data) { spdlog::critical("Could not open or find image!\n"); exit(-1); @@ -15,3 +16,15 @@ std::tuple init_image(const std::string &t_input_file) { CV_8UC3, cv::Scalar(0, 0, 0)); return std::make_tuple(std::move(input_image), process_image); } + +double euclidian_distance(cv::Mat const &t_img1, cv::Mat const &t_img2) { + double euclidian = 0.0; + for (int w = 0; w < t_img1.size().width; ++w) { + for (int h = 0; h < t_img1.size().height; ++h) { + euclidian += std::abs(std::pow(t_img1.at(h, w), 2) - + std::pow(t_img2.at(h, w), 2)); + } + } + euclidian = std::sqrt(euclidian); + return euclidian; +} diff --git a/src/main.cc b/src/main.cc index e75b46f..fe501a2 100644 --- a/src/main.cc +++ b/src/main.cc @@ -1,8 +1,8 @@ -#include "parseargs.hh" #include "common.hh" +#include "parseargs.hh" int main(int ac, char **av) { - const auto [input_file, output_file, video_output, iterations] = + auto const [input_file, output_file, video_output, iterations] = parse_args(ac, av); spdlog::info("Input file:\t{}", input_file); spdlog::info("Output file:\t{}", output_file); @@ -10,5 +10,7 @@ int main(int ac, char **av) { spdlog::info("Iterations:\t{}", iterations); auto [input_image, process_image] = init_image(input_file); + // Launch image generation + return 0; }