From 1904bb0db239ed09904d361bd2ac5e58db991a80 Mon Sep 17 00:00:00 2001
From: "simon.fanetti" <simon.fanetti@etu.hesge.ch>
Date: Sun, 9 Aug 2020 20:58:12 +0200
Subject: [PATCH] cleaning

---
 src/components/camera.cpp     |  7 +++++--
 src/components/projection.cpp | 25 ++-----------------------
 src/lib/sandbox.cpp           |  2 +-
 3 files changed, 8 insertions(+), 26 deletions(-)

diff --git a/src/components/camera.cpp b/src/components/camera.cpp
index 11b5984..4dc25d8 100644
--- a/src/components/camera.cpp
+++ b/src/components/camera.cpp
@@ -33,8 +33,11 @@ Camera::~Camera(){
 cv::Mat Camera::getDepthFrame(){
     static cv::Mat values = cv::Mat(depth_frame->get_height(), depth_frame->get_width(), CV_16UC1);
     static cv::Mat meters = cv::Mat(depth_frame->get_height(), depth_frame->get_width(), CV_32FC1);
-    values.data = (uchar*)depth_frame->get_data();
-    values.convertTo(meters, CV_32FC1, depth_scale);
+    uchar* new_values = (uchar*)depth_frame->get_data();
+    if(values.data != new_values){
+        values.data = new_values;
+        values.convertTo(meters, CV_32FC1, depth_scale);
+    }
     return meters.clone();
 };
 
diff --git a/src/components/projection.cpp b/src/components/projection.cpp
index 194fddd..93bdd06 100644
--- a/src/components/projection.cpp
+++ b/src/components/projection.cpp
@@ -33,12 +33,9 @@ cv::Point2i Projection::revertRotatePixel(cv::Point2i center, double angle, cv::
     Adjust the projected frame with the topology from the camera to the beamer POV
 */
 void Projection::adjustFrame(cv::Mat_<float> &depth, cv::Mat_<cv::Vec3b> &src, cv::Mat_<cv::Vec3b> &dst, Camera *camera, cv::Point3f beamer_pos){
-
-    // deallocate and reallocate buffers if 1st pass
-    // or dst.size changed, since for all buffers :
-    //      buff.size == dst.size
     
-    // try
+    // update if dst.size changed, since for all buffers :
+    //      buff.size == dst.size
     if(deprojectMap.size() != dst.size()){
         std::vector<cv::Point2f> profil = camera->getAdaptedIntrinsics(dst);
         fxy = profil.at(0);
@@ -50,25 +47,7 @@ void Projection::adjustFrame(cv::Mat_<float> &depth, cv::Mat_<cv::Vec3b> &src, c
     frameMap.create(dst.rows, dst.cols);
     resized_depth.create(dst.rows, dst.cols);
     resized_src.create(dst.rows, dst.cols);
-/*
-    // default
-    if(deprojectMap.empty() || deprojectMap.size() != dst.size()){
-        if(!deprojectMap.empty()){
-            deprojectMap.release();
-            frameMap.release();
-            resized_depth.release();
-            resized_src.release();
-        }
-        deprojectMap.create(dst.rows, dst.cols);
-        frameMap.create(dst.rows, dst.cols);
-        resized_depth.create(dst.rows, dst.cols);
-        resized_src.create(dst.rows, dst.cols);
 
-        std::vector<cv::Point2f> profil = camera->getAdaptedIntrinsics(dst);
-        fxy = profil.at(0);
-        ppxy = profil.at(1);
-    }
-*/
     deprojectMap = cv::Point2i(-1,-1);
     frameMap = cv::Point2i(-1,-1);
 
diff --git a/src/lib/sandbox.cpp b/src/lib/sandbox.cpp
index c0eeb6d..bd55181 100644
--- a/src/lib/sandbox.cpp
+++ b/src/lib/sandbox.cpp
@@ -51,7 +51,7 @@ cv::Mat_<cv::Vec3b> Sandbox::adjustProjection(cv::Mat_<cv::Vec3b> &frame, cv::Ma
     //cv::dilate(projectedFrame, projectedFrame, cv::Mat(), cv::Point(-1, -1), 2, 1, 1);
     //cv::erode(projectedFrame, projectedFrame, cv::Mat(), cv::Point(-1, -1), 2, 1, 1);
     
-    return projectedFrame;
+    return projectedFrame.clone();
 }
 
 cv::Mat_<cv::Vec3b> Sandbox::adjustProjection(cv::Mat_<cv::Vec3b> &frame){
-- 
GitLab