From 1e177ded20bee0f648fba3ef1825cf18c0c84b94 Mon Sep 17 00:00:00 2001 From: Elian Dib <elian.dib@inria.fr> Date: Thu, 25 Apr 2019 12:14:53 +0200 Subject: [PATCH] Updated completion Removed 'zeros' method Assume new dimensions convention --- +LRTC | 1 - .gitmodules | 3 --- complete.m | 62 +++++++---------------------------------------------- 3 files changed, 8 insertions(+), 58 deletions(-) delete mode 160000 +LRTC delete mode 100644 .gitmodules diff --git a/+LRTC b/+LRTC deleted file mode 160000 index 3f7710a..0000000 --- a/+LRTC +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 3f7710a61341949178d3d56acec2c67ec013248e diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index bdb0f96..0000000 --- a/.gitmodules +++ /dev/null @@ -1,3 +0,0 @@ -[submodule "+LRTC"] - path = +LRTC - url = git@gitlab.inria.fr:edib/lrtc.git diff --git a/complete.m b/complete.m index caef24a..a864fb7 100644 --- a/complete.m +++ b/complete.m @@ -1,62 +1,16 @@ -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 -- GitLab