diff --git a/inc/projection.h b/inc/projection.h
index db6f922e6525aaba78a7889d4095d9c3d66259fa..a5ce9eb953310ca4d01e8cd9319ff49f64da1537 100644
--- a/inc/projection.h
+++ b/inc/projection.h
@@ -9,8 +9,9 @@ class Projection{
     private:
         cv::Mat adjustingMatrix;
         float distanceTopSandbox;
-        // Buffer for the builded virtual frame, which is scaled to n * depth_frame.size for the building process
-        cv::Mat_<cv::Vec3b> resized_dst;
+
+        cv::Mat_<float> resized_depth;
+        cv::Mat_<cv::Vec3b> resized_src;
         // Buffer containing the pixels's new location when deprojected to beamer's POV
         cv::Mat_<cv::Point2i> deprojectMap;
         // Buffer indicating from where to get the pixels in the source frame
diff --git a/src/components/projection.cpp b/src/components/projection.cpp
index d525da6022842620857c8dd0bde2fca4d0a0fe75..be3995350888a33a936de01118300a497891e0b5 100644
--- a/src/components/projection.cpp
+++ b/src/components/projection.cpp
@@ -36,11 +36,13 @@ void Projection::adjustFrame(cv::Mat_<float> depth, cv::Mat_<cv::Vec3b> src, cv:
         if(!deprojectMap.empty()){
             deprojectMap.release();
             frameMap.release();
-            resized_dst.release();
+            resized_depth.release();
+            resized_src.release();
         }
         deprojectMap.create(dst.rows, dst.cols);
         frameMap.create(dst.rows, dst.cols);
-        resized_dst.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);
@@ -49,18 +51,18 @@ void Projection::adjustFrame(cv::Mat_<float> depth, cv::Mat_<cv::Vec3b> src, cv:
 
     deprojectMap = cv::Point2i(-1,-1);
     frameMap = cv::Point2i(-1,-1);
-    resized_dst = cv::Vec3b(0,0,0);
+    resized_depth = 0.0f;
+    resized_src = cv::Vec3b(0,0,0);
 
     // resize to match 1:1 ratio with resized_dst, since we'll do later:
     //      resized_dst[i] = src[i]
-    cv::resize(src, src, dst.size());
-    cv::resize(depth, depth, dst.size());    
+    cv::resize(src, resized_src, dst.size());
+    cv::resize(depth, resized_depth, dst.size());    
 
-    deprojectPixelsFromDepth(depth, camera, camera->getCroppingMask() , beamer_pos, deprojectMap, fxy, ppxy);
-    filterLowestDeprojectedPoints(depth, deprojectMap, frameMap);
-    buildFrame(depth, frameMap, src, resized_dst);
+    deprojectPixelsFromDepth(resized_depth, camera, camera->getCroppingMask() , beamer_pos, deprojectMap, fxy, ppxy);
+    filterLowestDeprojectedPoints(resized_depth, deprojectMap, frameMap);
+    buildFrame(resized_depth, frameMap, resized_src, dst);
 
-    cv::resize(resized_dst, dst, dst.size());
     cv::warpAffine(dst, dst, adjustingMatrix, dst.size());
 }