31 lines
1.0 KiB
C++
31 lines
1.0 KiB
C++
#include "common.hh"
|
|
#include <cassert>
|
|
#include <cmath>
|
|
#include <cstdlib>
|
|
|
|
std::pair<cv::Mat, cv::Mat> 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);
|
|
}
|
|
spdlog::debug("Image loaded!");
|
|
spdlog::debug("Width:\t\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);
|
|
}
|
|
|
|
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<uchar>(h, w), 2) -
|
|
std::pow(t_img2.at<uchar>(h, w), 2));
|
|
}
|
|
}
|
|
euclidian = std::sqrt(euclidian);
|
|
return euclidian;
|
|
}
|