Mentions légales du service

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

Updated completion

Removed 'zeros' method
Assume new dimensions convention
parent ff275c61
No related branches found
No related tags found
No related merge requests found
Subproject commit 3f7710a61341949178d3d56acec2c67ec013248e
[submodule "+LRTC"]
path = +LRTC
url = git@gitlab.inria.fr:edib/lrtc.git
function [LFComp,LFMaskComp] = complete(LFRef,varargin)
function [LFRef,LFMask] = complete(LFRef,varargin)
%COMPLETE Summary of this function goes here
% Detailed explanation goes here
s = size(LFRef);
vecResh = @(LF) reshape(LF,s(1)*s(2),s(3)*s(4))';
boxResh = @(LFVec,LF) reshape(LFVec',size(LF));
LFSize = size(LFRef);
ImgSize = LFSize(1:3);
ImgRes = LFSize(4:end);
p = inputParser;
p.addOptional('Method','zeros',@ischar);
p.parse(varargin{:});
LFRef = reshape(LFRef,prod(ImgSize),prod(ImgRes));
Method = p.Results.Method;
[LFRef,LFMask] = utils.complete(LFRef,varargin{:});
maxIter=500;
switch Method
case 'zeros'
alpha=[nan,nan]; betaMult=nan ; epsilon=nan; TraceNormToRankParam=nan;
case {'trace','rank'}
if strcmp(Method,'trace')
alpha=[1,1]; betaMult=1.1 ; epsilon=1e-3; TraceNormToRankParam=0;
else
alpha=[1,1]; betaMult=1.44; epsilon=1e-3; TraceNormToRankParam=inf;
end
otherwise
error('Unknown completion method');
end
LFRef = reshape(LFRef ,[ImgSize,ImgRes]);
LFMask = reshape(LFMask,[ImgSize,ImgRes]);
p.addOptional('alpha',alpha,@isnumeric);
p.addOptional('betaMult',betaMult,@isnumeric);
p.addOptional('maxIter',maxIter,@isnumeric);
p.addOptional('epsilon',epsilon,@isnumeric);
p.addOptional('TraceNormToRankParam',TraceNormToRankParam,@isnumeric);
p.parse(varargin{:});
alpha = p.Results.alpha;
betaMult = p.Results.betaMult;
maxIter = p.Results.maxIter;
epsilon = p.Results.epsilon;
TraceNormToRankParam = p.Results.TraceNormToRankParam;
LFMask = ~isnan(LFRef);
LFMaskComp = repmat(any(any(LFMask,1),2),s(1),s(2),1,1);
LFRef(~LFMask) = 0;
switch Method
case 'zeros'
LFComp = LFRef;
case {'trace','rank'}
LFVec = vecResh(LFRef);
LFMaskVec = vecResh(LFMask);
LFCompVec = LRTCADMrho(LFVec,LFMaskVec,...
alpha,betaMult,maxIter,epsilon,...
TraceNormToRankParam);
LFComp = boxResh(LFCompVec,LFRef);
end
LFComp(~LFMaskComp) = NaN;
end
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment