Mentions légales du service

Skip to content
Snippets Groups Projects
Commit 3669fb22 authored by DIB Elian's avatar DIB Elian
Browse files

Made some minor changes for clarity

parent 9eafb58d
No related branches found
No related tags found
No related merge requests found
......@@ -5,7 +5,7 @@ function [SRRef,SRDisp] = LFtoSR(LFRef,LFDisp,Method)
%% Initialize constants and interpolants
% Lightfield properties
LFSize = size(LFRef.Color);
ImgSize = LFSize(1:2);
ImgSize = LFSize(1:3);
numChan = LFSize(3);
ImgRes = LFSize(4:end);
Offset = LFRef.Offset;
......@@ -17,15 +17,14 @@ numLab = max(Label(:));
% Initialize super-ray fields
[SROff,SRCol,SRLab,SRDisp] = deal(cell(numLab,1));
[srxqgv,sryqgv] = deal(cell(numLab,1));
% Pad values
Color = padarray(Color,[1,1,0,0,0],nan,'both');
Label = padarray(Label,[1,1,0,0,0],nan,'both');
LFDisp = padarray(LFDisp,[1,1,0,0,0],nan,'both');
ImgSize(1:2) = ImgSize(1:2)+2;
LFSize = [ImgSize,ImgRes];
Offset(1:2) = Offset(1:2)-1;
LFSize = [ImgSize,ImgRes];
seh = strel('arbitrary',[1,0,1]);
sev = strel('arbitrary',[1,0,1]');
......@@ -45,14 +44,14 @@ LFDisp(isnan(LFDisp))=0;
% Compute projected coordinates of reference samples
gv = arrayfun(@(x) 1:x,LFSize,'UniformOutput',false);
ugv = reshape(gv{3},1,1,[],1);
vgv = reshape(gv{4},1,1,1,[]);
ugv = reshape(gv{4},1,1,1,[],1);
vgv = reshape(gv{5},1,1,1,1,[]);
ugv = ugv-centerView(1);
vgv = vgv-centerView(2);
[LFX,LFY] = ndgrid(gv{:});
LFX = LFX-ugv.*reshape(LFDisp,LFSize);
LFY = LFY-vgv.*reshape(LFDisp,LFSize);
LFX = LFX-ugv.*reshape(LFDisp,LFSize) + Offset(1);
LFY = LFY-vgv.*reshape(LFDisp,LFSize) + Offset(2);
progress('');
......@@ -62,7 +61,7 @@ warning('off','MATLAB:griddata:DuplicateDataPoints');
warning('off','MATLAB:scatteredInterpolant:DupPtsAvValuesWarnId');
%% Initialize super-rays
fprintf('Super-ray initialization...\n');
fprintf('Super-ray computation...\n');
for lab = 1:numLab
msg = ['Initializing super-ray ',num2str(lab),'/',num2str(numLab),'\n'];
progress(msg);
......@@ -76,25 +75,18 @@ for lab = 1:numLab
sryqmin = floor(min(SRY(:)));
sryqmax = ceil (max(SRY(:)));
srxqgv{lab} = srxqmin:srxqmax;
sryqgv{lab} = sryqmin:sryqmax;
srxqgv = srxqmin:srxqmax;
sryqgv = sryqmin:sryqmax;
SROff{lab} = Offset+[srxqmin,sryqmin,1,1,1]-1;
SROff{lab} = [srxqmin,sryqmin,1,1,1]-1;
% Initialize super-ray color, label and disparities
SRCol {lab} = nan([numel(srxqgv{lab}),numel(sryqgv{lab}),numChan,ImgRes]);
SRLab {lab} = nan([numel(srxqgv{lab}),numel(sryqgv{lab}),1 ,ImgRes]);
SRDisp{lab} = nan([numel(srxqgv{lab}),numel(sryqgv{lab}),1 ,ImgRes]);
end
fprintf('\n');
progress('',0);
%% Compute super-rays using interpolation
fprintf('Super-ray interpolation...\n');
for lab = 1:numLab
SRCol {lab} = nan([numel(srxqgv),numel(sryqgv),numChan,ImgRes]);
SRLab {lab} = nan([numel(srxqgv),numel(sryqgv),1 ,ImgRes]);
SRDisp{lab} = nan([numel(srxqgv),numel(sryqgv),1 ,ImgRes]);
% Compute query grid for current super-ray
[SRXq,SRYq] = ndgrid(srxqgv{lab},sryqgv{lab});
[SRXq,SRYq] = ndgrid(srxqgv,sryqgv);
% Compute super-ray view by view
for v = 1:numView
......@@ -104,8 +96,8 @@ for lab = 1:numLab
% Reduce number of reference points for speed
Mask = ...true(size(LFX(:,:,v)));
LFX(:,:,v)>=min(srxqgv{lab})-1 & LFX(:,:,v)<=max(srxqgv{lab})+1 & ...
LFY(:,:,v)>=min(sryqgv{lab})-1 & LFY(:,:,v)<=max(sryqgv{lab})+1;
LFX(:,:,v)>=min(srxqgv)-1 & LFX(:,:,v)<=max(srxqgv)+1 & ...
LFY(:,:,v)>=min(sryqgv)-1 & LFY(:,:,v)<=max(sryqgv)+1;
[~,mgv] = utils.tighten(Mask);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment