diff --git a/getSR.m b/getSR.m index 475bcd0fe31118b0169542ffe9723ed9c35b3318..d32822b6d8b6b518c23aef0af83362466d834bd5 100644 --- a/getSR.m +++ b/getSR.m @@ -1,4 +1,4 @@ -function [SRRef,SRDisp] = getSR(LFRef,LFDisp,SRXq,SRYq,Method) +function [SRRef,SRDisp] = getSR(LFRef,SRXq,SRYq,Method,LFDisp) %GETSR Summary of this function goes here % Detailed explanation goes here @@ -18,6 +18,9 @@ numLab = numel(SRXq); % Initialize super-ray fields [SROff,SRCol,SRLab,SRDisp] = deal(cell(numLab,1)); +% Initialize disparity if unavailable +if ~exist('LFDisp','var'); LFDisp = zeros(LFSize); end + % Pad values Color = padarray(Color,[1,1,0,0,0],nan,'both'); Label = padarray(Label,[1,1,0,0,0],nan,'both'); @@ -111,18 +114,18 @@ for lab = 1:numLab SRCol{lab}(:,:,c,v) = temp; end - % Interpolate disparity - LFDispsub = LFDisp(mgv{:},v); - temp = interp2(LFYsub,LFXsub,LFDispsub,Yq,Xq,Method); - temp(M) = nan; - SRDisp{lab}(:,:,:,v) = temp; - % Interpolate label Labelsub = Label(mgv{:},v); temp = interp2(LFYsub,LFXsub,Labelsub,Yq,Xq,'nearest'); temp(M) = nan; Lab = temp; + % Interpolate disparity + LFDispsub = LFDisp(mgv{:},v); + temp = interp2(LFYsub,LFXsub,LFDispsub,Yq,Xq,Method); + temp(M) = nan; + SRDisp{lab}(:,:,:,v) = temp; + % Replace out of boundary values in label using cubic interpolation NaNLab = isnan(interp2(LFYsub,LFXsub,Labelsub,Yq,Xq,'cubic')); Lab(NaNLab) = nan;