From 5e41def3f3dcb3d9785cc7c4bcd83fe266b3ecc8 Mon Sep 17 00:00:00 2001
From: Fabian Peller-Konrad <fabian.peller-konrad@kit.edu>
Date: Tue, 1 Mar 2022 17:26:19 +0100
Subject: [PATCH] encode images correctly

---
 .../armem/server/ltm/base/converter/image/png/PngConverter.cpp  | 2 ++
 .../libraries/armem_objects/server/instance/Segment.cpp         | 1 +
 2 files changed, 3 insertions(+)

diff --git a/source/RobotAPI/libraries/armem/server/ltm/base/converter/image/png/PngConverter.cpp b/source/RobotAPI/libraries/armem/server/ltm/base/converter/image/png/PngConverter.cpp
index f2ab4d8db..24fc8be1f 100644
--- a/source/RobotAPI/libraries/armem/server/ltm/base/converter/image/png/PngConverter.cpp
+++ b/source/RobotAPI/libraries/armem/server/ltm/base/converter/image/png/PngConverter.cpp
@@ -15,6 +15,7 @@ namespace armarx::armem::server::ltm::converter::image
         ARMARX_CHECK_NOT_NULL(data);
 
         auto img = aron::converter::AronOpenCVConverter::ConvertToMat(data);
+        cv::cvtColor(img, img, CV_RGB2BGR);
         std::vector<unsigned char> buffer;
         cv::imencode(".png", img, buffer);
         return buffer;
@@ -23,6 +24,7 @@ namespace armarx::armem::server::ltm::converter::image
     aron::data::NDArrayPtr PngConverter::_convert(const std::vector<unsigned char>& data)
     {
         cv::Mat img = cv::imdecode(data, cv::IMREAD_COLOR);
+        cv::cvtColor(img, img, CV_BGR2RGB);
         return aron::converter::AronOpenCVConverter::ConvertFromMat(img);
     }
 }
diff --git a/source/RobotAPI/libraries/armem_objects/server/instance/Segment.cpp b/source/RobotAPI/libraries/armem_objects/server/instance/Segment.cpp
index 0dbe6db72..351d0f5ac 100644
--- a/source/RobotAPI/libraries/armem_objects/server/instance/Segment.cpp
+++ b/source/RobotAPI/libraries/armem_objects/server/instance/Segment.cpp
@@ -975,6 +975,7 @@ namespace armarx::armem::server::obj::instance
                 std::filesystem::path filename = path->filename();
                 filename.replace_extension();  // Removes extension
 
+                // The check seems useless?
                 if (lockMemory)
                 {
                     commitSceneSnapshot(snapshot.value(), filename.string());
-- 
GitLab