#include #include #include #include "common.hh" #include "methods.hh" #include "parseargs.hh" int main(int ac, char** av) { std::srand(std::time(nullptr)); auto const [input_file, output_file, iterations, method, verbose] = parse_args(ac, av); spdlog::set_level(verbose ? spdlog::level::debug : spdlog::level::info); spdlog::debug("Input file:\t{}", input_file.native()); spdlog::debug("Output file:\t{}", output_file.native()); spdlog::debug("Iterations:\t{}", iterations); auto [input_image, process_image] = init_image(input_file.native()); switch (method) { case 1: { method1(input_image, process_image, iterations); break; } case 2: { method2(input_image, process_image, iterations); break; } case 3: { method3(input_image, process_image, iterations); break; } default: spdlog::error("Requested method {} is not implemented."); std::exit(-1); } cv::imwrite(output_file.native(), process_image); return 0; }