diff --git a/LFtoSR.m b/LFtoSR.m index 1fe3de50288d0cb5f50aaa5b7af690293b18b978..30fbbb271ea6ddcb559a2ffb0e3781b3061566bd 100644 --- a/LFtoSR.m +++ b/LFtoSR.m @@ -107,27 +107,29 @@ for lab = 1:numLab LFX(:,:,v)>=min(srxqgv{lab})-1 & LFX(:,:,v)<=max(srxqgv{lab})+1 & ... LFY(:,:,v)>=min(sryqgv{lab})-1 & LFY(:,:,v)<=max(sryqgv{lab})+1; - LFXsub = reshape(LFX(:,:,v),[],1); - LFYsub = reshape(LFY(:,:,v),[],1); + [~,mgv] = utils.tighten(Mask); - LFXsub = LFXsub(Mask,:); - LFYsub = LFYsub(Mask,:); + LFXsub = LFX(mgv{:},v); + LFYsub = LFY(mgv{:},v); + + LFXsub = LFXsub(:); + LFYsub = LFYsub(:); % Interpolate color for c = 1:numChan - Colsub = reshape(Color(:,:,c,v),[],1); - Colsub = Colsub(Mask,:); + Colsub = Color(mgv{:},c,v); + Colsub = Colsub(:); SRCol{lab}(:,:,c,v) = griddata(LFXsub,LFYsub,Colsub,SRXq,SRYq,Method); end % Interpolate disparity - LFDispsub = reshape(LFDisp(:,:,1,v),[],1); - LFDispsub = LFDispsub(Mask,:); + LFDispsub = LFDisp(mgv{:},v); + LFDispsub = LFDispsub(:); SRDisp{lab}(:,:,1,v) = griddata(LFXsub,LFYsub,LFDispsub,SRXq,SRYq,Method); % Interpolate label - Labelsub = reshape(Label(:,:,1,v),[],1); - Labelsub = Labelsub(Mask,:); + Labelsub = Label(mgv{:},v); + Labelsub = Labelsub(:); Lab = griddata(LFXsub,LFYsub,Labelsub,SRXq,SRYq,'nearest'); % Replace out of boundary values in label using cubic interpolation