From a93bdb0df942d19504959b4f8f4c23fc6eb83282 Mon Sep 17 00:00:00 2001
From: Elian Dib <elian.dib@inria.fr>
Date: Tue, 11 Jun 2019 16:01:27 +0200
Subject: [PATCH] Using inverse warping

---
 LFtoSR.m | 21 +++++++++++++++++----
 1 file changed, 17 insertions(+), 4 deletions(-)

diff --git a/LFtoSR.m b/LFtoSR.m
index 30fbbb2..1cc7590 100644
--- a/LFtoSR.m
+++ b/LFtoSR.m
@@ -112,28 +112,41 @@ for lab = 1:numLab
         LFXsub = LFX(mgv{:},v);
         LFYsub = LFY(mgv{:},v);
         
+        [Xq,Yq,LFXsub,LFYsub] = utils.gridCoords(LFXsub,LFYsub,SRXq,SRYq);
+        
         LFXsub = LFXsub(:);
         LFYsub = LFYsub(:);
         
+        M = isnan(Xq)|isnan(Yq);
+        
+        Xq(M) = 1;
+        Yq(M) = 1;
+        
         % Interpolate color
         for c = 1:numChan
             Colsub = Color(mgv{:},c,v);
             Colsub = Colsub(:);
-            SRCol{lab}(:,:,c,v) = griddata(LFXsub,LFYsub,Colsub,SRXq,SRYq,Method);
+            temp = griddata(LFXsub,LFYsub,Colsub,Xq,Yq,Method);
+            temp(M) = nan;
+            SRCol{lab}(:,:,c,v) = temp;
         end
         
         % Interpolate disparity
         LFDispsub = LFDisp(mgv{:},v);
         LFDispsub = LFDispsub(:);
-        SRDisp{lab}(:,:,1,v) = griddata(LFXsub,LFYsub,LFDispsub,SRXq,SRYq,Method);
+        temp = griddata(LFXsub,LFYsub,LFDispsub,Xq,Yq,Method);
+        temp(M) = nan;
+        SRDisp{lab}(:,:,1,v) = temp;
         
         % Interpolate label
         Labelsub = Label(mgv{:},v);
         Labelsub = Labelsub(:);
-        Lab = griddata(LFXsub,LFYsub,Labelsub,SRXq,SRYq,'nearest');
+        temp = griddata(LFXsub,LFYsub,Labelsub,Xq,Yq,'nearest');
+        temp(M) = nan;
+        Lab = temp;
         
         % Replace out of boundary values in label using cubic interpolation
-        NaNLab = isnan(griddata(LFXsub,LFYsub,Labelsub,SRXq,SRYq,'cubic'));
+        NaNLab = isnan(griddata(LFXsub,LFYsub,Labelsub,Xq,Yq,'cubic'));
         Lab(NaNLab) = nan;
         SRLab{lab}(:,:,1,v) = Lab;
     end
-- 
GitLab