From 18f133820bf7d65a74994c774fe2da4510228dfe Mon Sep 17 00:00:00 2001 From: Elian Dib <elian.dib@inria.fr> Date: Thu, 22 Aug 2019 18:15:07 +0200 Subject: [PATCH] Using colDims and rowDims to determine matrix transformation --- complete.m | 26 +++++++++++++++++++++----- factorize.m | 24 ++++++++++++++++++++---- 2 files changed, 41 insertions(+), 9 deletions(-) diff --git a/complete.m b/complete.m index a864fb7..65c3f1b 100644 --- a/complete.m +++ b/complete.m @@ -3,14 +3,30 @@ function [LFRef,LFMask] = complete(LFRef,varargin) % Detailed explanation goes here LFSize = size(LFRef); -ImgSize = LFSize(1:3); -ImgRes = LFSize(4:end); +numDims = ndims(LFRef); +colDims = 1:min(3,numDims); +rowDims = 4:numDims; -LFRef = reshape(LFRef,prod(ImgSize),prod(ImgRes)); +p = inputParser; p.StructExpand = true; p.KeepUnmatched = true; +p.addParameter('colDims', colDims, @isnumeric); +p.addParameter('rowDims', rowDims, @isnumeric); + +p.parse(varargin{:}); +colDims = p.Results.colDims; +rowDims = p.Results.rowDims; + +colSize = LFSize(colDims); +rowSize = LFSize(rowDims); + +LFRef = permute(LFRef,[colDims,rowDims]); +LFRef = reshape(LFRef,prod(colSize),prod(rowSize)); [LFRef,LFMask] = utils.complete(LFRef,varargin{:}); -LFRef = reshape(LFRef ,[ImgSize,ImgRes]); -LFMask = reshape(LFMask,[ImgSize,ImgRes]); +LFRef = reshape(LFRef ,[colSize,rowSize]); +LFMask = reshape(LFMask ,[colSize,rowSize]); + +LFRef = ipermute(LFRef ,[colDims,rowDims]); +LFMask = ipermute(LFMask,[colDims,rowDims]); end \ No newline at end of file diff --git a/factorize.m b/factorize.m index 1c71f54..4dff1bc 100644 --- a/factorize.m +++ b/factorize.m @@ -3,13 +3,29 @@ function [LFB,C,U,S,V] = factorize(LFRef,k,varargin) % Detailed explanation goes here LFSize = size(LFRef); -ImgSize = LFSize(1:3); -ImgRes = LFSize(4:end); +numDims = ndims(LFRef); +colDims = 1:min(3,numDims); +rowDims = 4:numDims; -LFRef = reshape(LFRef,prod(ImgSize),prod(ImgRes)); +p = inputParser; p.StructExpand = true; p.KeepUnmatched = true; +p.addParameter('colDims', colDims, @isnumeric); +p.addParameter('rowDims', rowDims, @isnumeric); + +p.parse(varargin{:}); +colDims = p.Results.colDims; +rowDims = p.Results.rowDims; + +colSize = LFSize(colDims); +rowSize = LFSize(rowDims); + +LFRef = permute(LFRef,[colDims,rowDims]); +LFRef = reshape(LFRef,prod(colSize),prod(rowSize)); + +rowSize = [k,1]; [LFB,C,U,S,V] = utils.factorize(LFRef,k); -LFB = reshape(LFB ,[ImgSize,k,1]); +LFB = reshape (LFB,[colSize,rowSize]); +LFB = ipermute(LFB,[colDims,rowDims]); end \ No newline at end of file -- GitLab