From 1521da1120c75c836c9a9a70e279a4df553ceb98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Colin=20de=20Verdi=C3=A8re?= Date: Fri, 4 Apr 2025 09:26:20 +0200 Subject: [PATCH] adds sumexpgradcomp energy --- src/seam-carving.cpp | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/seam-carving.cpp b/src/seam-carving.cpp index a8605fa..8d8ace2 100644 --- a/src/seam-carving.cpp +++ b/src/seam-carving.cpp @@ -113,8 +113,27 @@ std::string function = "grad"; (fabs((float)source[indexPixel_right + ch] - \ source[indexPixel + ch])))); \ } \ + } else if (function == "sumexpgradcomp") { \ + \ + for (auto ch = 0; ch < (nbColorChannels); ch++) { \ + dest += (std::exp(fabs((float)source[indexPixel_up + ch] - \ + source[indexPixel + ch]) / \ + 255) + \ + \ + std::exp(fabs((float)source[indexPixel_down + ch] - \ + source[indexPixel + ch]) / \ + 255) + \ + \ + std::exp(fabs((float)source[indexPixel_left + ch] - \ + source[indexPixel + ch]) / \ + 255) + \ + std::exp(fabs((float)source[indexPixel_right + ch] - \ + source[indexPixel + ch]) / \ + 255)); \ + } \ } else { \ - std::cerr << "function " << function << " not available" << std::endl; \ + std::cerr << "no implementation found for function \"" << function << "\"" \ + << std::endl; \ exit(1); \ }; // Le alpha n'est pas pris en compte dans l'énergie