From 1e3ce9e54f149a9c118b1827ad73cd015bada05c Mon Sep 17 00:00:00 2001
From: thibault allenet <thibault.allenet@cea.fr>
Date: Tue, 13 Feb 2024 08:58:45 +0000
Subject: [PATCH] Update colorFlag of cv::imread to UNCHANGED and fix tests on
 cv::Mat size.

---
 .../backend/opencv/stimuli/StimulusImpl_opencv_imread.hpp   | 6 +++---
 src/stimuli/StimulusImpl_opencv_imread.cpp                  | 2 +-
 unit_tests/Test_Stimulus.cpp                                | 4 ++--
 unit_tests/Test_StimulusImpl_opencv_imread.cpp              | 2 +-
 4 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/include/aidge/backend/opencv/stimuli/StimulusImpl_opencv_imread.hpp b/include/aidge/backend/opencv/stimuli/StimulusImpl_opencv_imread.hpp
index 3db56da..ab55621 100644
--- a/include/aidge/backend/opencv/stimuli/StimulusImpl_opencv_imread.hpp
+++ b/include/aidge/backend/opencv/stimuli/StimulusImpl_opencv_imread.hpp
@@ -28,12 +28,12 @@ class StimulusImpl_opencv_imread : public StimulusImpl {
 private:
     /// Stimulus data path
     const std::string mDataPath;
-    const int mColorFlag;
+    const int mReadMode;
 
 public:
-    StimulusImpl_opencv_imread(const std::string& dataPath="", std::int32_t colorFlag=cv::IMREAD_COLOR)
+    StimulusImpl_opencv_imread(const std::string& dataPath="", int readMode=cv::IMREAD_UNCHANGED)
     : mDataPath(dataPath),
-      mColorFlag(colorFlag)
+      mReadMode(readMode)
     {
         // ctor
     }
diff --git a/src/stimuli/StimulusImpl_opencv_imread.cpp b/src/stimuli/StimulusImpl_opencv_imread.cpp
index 1872c0b..ff0b1da 100644
--- a/src/stimuli/StimulusImpl_opencv_imread.cpp
+++ b/src/stimuli/StimulusImpl_opencv_imread.cpp
@@ -23,7 +23,7 @@
 Aidge::StimulusImpl_opencv_imread::~StimulusImpl_opencv_imread() noexcept = default;
 
 std::shared_ptr<Aidge::Tensor> Aidge::StimulusImpl_opencv_imread::load() const {
-    cv::Mat cvImg = cv::imread(mDataPath, mColorFlag);
+    cv::Mat cvImg = cv::imread(mDataPath, mReadMode);
     if (cvImg.empty()) {
         throw std::runtime_error("Could not open images file: " + mDataPath);
     }
diff --git a/unit_tests/Test_Stimulus.cpp b/unit_tests/Test_Stimulus.cpp
index 41bf318..7ad5613 100644
--- a/unit_tests/Test_Stimulus.cpp
+++ b/unit_tests/Test_Stimulus.cpp
@@ -39,7 +39,7 @@ TEST_CASE("Stimulus creation", "[Stimulus][OpenCV]") {
         // Access the cv::Mat with the tensor
         TensorImpl_opencv_* tImpl_opencv = dynamic_cast<TensorImpl_opencv_*>(tensor_load->getImpl().get());
 
-        REQUIRE(tImpl_opencv->data().size() == true_mat.size());
+        REQUIRE((tImpl_opencv->data().total() * tImpl_opencv->data().channels()) == (true_mat.total() * true_mat.channels()));
         REQUIRE(cv::countNonZero(tImpl_opencv->data() != true_mat) == 0);
 
 
@@ -50,7 +50,7 @@ TEST_CASE("Stimulus creation", "[Stimulus][OpenCV]") {
         // Access the cv::Mat with the tensor
         TensorImpl_opencv_* tImpl_opencv_2 = dynamic_cast<TensorImpl_opencv_*>(tensor_load_2->getImpl().get());
 
-        REQUIRE(tImpl_opencv_2->data().size() == true_mat.size());
+        REQUIRE((tImpl_opencv_2->data().total() * tImpl_opencv_2->data().channels()) == (true_mat.total() * true_mat.channels()));
         REQUIRE(cv::countNonZero(tImpl_opencv_2->data() != true_mat) == 0);
 
     }
diff --git a/unit_tests/Test_StimulusImpl_opencv_imread.cpp b/unit_tests/Test_StimulusImpl_opencv_imread.cpp
index 3f0dff7..d84e65e 100644
--- a/unit_tests/Test_StimulusImpl_opencv_imread.cpp
+++ b/unit_tests/Test_StimulusImpl_opencv_imread.cpp
@@ -38,7 +38,7 @@ TEST_CASE("StimulusImpl_opencv_imread creation", "[StimulusImpl_opencv_imread][O
         // Access the cv::Mat with the tensor
         TensorImpl_opencv_* tImpl_opencv = dynamic_cast<TensorImpl_opencv_*>(tensor_load->getImpl().get());
 
-        REQUIRE(tImpl_opencv->data().size() == true_mat.size());
+        REQUIRE((tImpl_opencv->data().total() * tImpl_opencv->data().channels()) == (true_mat.total() * true_mat.channels()));
         REQUIRE(cv::countNonZero(tImpl_opencv->data() != true_mat) == 0);
 
     }
-- 
GitLab