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