From 4ab168b03733e9f9f492cdf0700c92bb0049a59c Mon Sep 17 00:00:00 2001 From: Elian Dib <elian.dib@inria.fr> Date: Sun, 30 Sep 2018 12:15:39 +0200 Subject: [PATCH] Allow warp functions to send singular values (energy compaction) --- warpLRA.m | 5 +++-- warpLRAUpdate.m | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/warpLRA.m b/warpLRA.m index 2f02e62..516092d 100644 --- a/warpLRA.m +++ b/warpLRA.m @@ -1,5 +1,5 @@ function [PSNRin,PSNRout,M,MMask,MPos,MDispX,MDispY,... - projM,projValue,projMask,projPos,projDispX,projDispY]... + projM,projValue,projMask,projPos,projDispX,projDispY,S]... = warpLRA(Value,Mask,Pos,DispX,DispY,k,varargin) %WARPLRA Warping low rank approximation % Compute disparity update that best matches low-rank approximation @@ -40,7 +40,8 @@ projValue(~projMask) = nan; projValue = SR.complete(projValue,'rank'); %% Compute low-rank approximation -[B,C] = SR.factorize(projValue); +[B,C,~,S,~] = SR.factorize(projValue); +S = diag(S); BMat = LF.LFToMat(B); MMat = BMat(:,1:k)*C(1:k,:); diff --git a/warpLRAUpdate.m b/warpLRAUpdate.m index 1ba5210..d822649 100644 --- a/warpLRAUpdate.m +++ b/warpLRAUpdate.m @@ -1,11 +1,11 @@ function [dX,dY,PSNRin,PSNRout,M,MMask,MPos,MDispX,MDispY,... - projM,projValue,projMask,projPos,projDispX,projDispY] = ... + projM,projValue,projMask,projPos,projDispX,projDispY,S] = ... warpLRAUpdate(Value,Mask,Pos,DispX,DispY,k,varargin) %WARPLRAUPDATE warping + low rank approximation + update % Compute update that best matches low-rank approximation [PSNRin,PSNRout,M,MMask,MPos,MDispX,MDispY,... - projM,projValue,projMask,projPos,projDispX,projDispY]... + projM,projValue,projMask,projPos,projDispX,projDispY,S]... = SR.warpLRA(Value,Mask,Pos,DispX,DispY,k,varargin{:}); [dX,dY] = SR.pinvUpdate(projValue,projMask,projM,varargin{:}); -- GitLab