#include "common.hh" #include #include #include [[nodiscard]] auto init_image(std::string const& t_input_file) noexcept -> std::pair { 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); } spdlog::debug("Image loaded!"); spdlog::debug("Width:\t{}", input_image.size().width); spdlog::debug("Height:\t{}", input_image.size().height); cv::Mat process_image(input_image.size().height, input_image.size().width, CV_8UC3, cv::Scalar(0, 0, 0)); return std::make_pair(std::move(input_image), process_image); } [[nodiscard]] auto euclidian_distance(cv::Mat const& t_img1, cv::Mat const& t_img2) -> double { double euclidian = 0.0; for (auto itr1 = t_img1.begin(), itr2 = t_img2.begin(); itr1 != t_img1.end() && itr2 != t_img2.end(); ++itr1, ++itr2) { euclidian += std::pow(*itr1 - *itr2, 2); } euclidian = std::sqrt(euclidian); return euclidian; }