From c0c8e5ca037d24d7936cded233c5222850829f74 Mon Sep 17 00:00:00 2001 From: Elian Dib <elian.dib@inria.fr> Date: Mon, 8 Jul 2019 15:04:18 +0200 Subject: [PATCH] Fix for degenerate case k=1 --- multiply.m | 6 +++++- project.m | 24 ++++++++++++++---------- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/multiply.m b/multiply.m index 6bbd6ba..ce615c9 100644 --- a/multiply.m +++ b/multiply.m @@ -4,7 +4,7 @@ function Ref = multiply(Ref,C,method,varargin) [Offset,Color,Label] = SR.SetToFields(Ref); Size = cellfun(@size,Color,'UniformOutput',false); -[ImgSize,ImgRes] = cellfun(@(x) deal(x(1:3),x(4:end)),Size,'UniformOutput',false); +[ImgSize,ImgRes] = deal(cell(size(Color))); RefSize = size(Ref); numLab = numel(Label); @@ -25,6 +25,10 @@ else end for lab = 1:numLab + Size{lab}(end+1:5) = 1; + ImgSize{lab} = Size{lab}(1:3); + ImgRes {lab} = Size{lab}(4:end); + Color{lab} = reshape(Color{lab},prod(ImgSize{lab}),prod(ImgRes{lab})); Label{lab} = reshape(Label{lab},prod(ImgSize{lab}),prod(ImgRes{lab})); end diff --git a/project.m b/project.m index c166be5..04a4cc5 100644 --- a/project.m +++ b/project.m @@ -7,22 +7,26 @@ function C = project(Ref,Rec,method) [~,ColorRef,LabelRef] = SR.SetToFields(Ref); [~,ColorRec,LabelRec] = SR.SetToFields(Rec); -SizeRef = cellfun(@size,ColorRef,'UniformOutput',false); -[ImgSizeRef,ImgResRef] = cellfun(@(x) deal(x(1:3),x(4:end)),SizeRef,'UniformOutput',false); - -SizeRec = cellfun(@size,ColorRec,'UniformOutput',false); -[ImgSizeRec,ImgResRec] = cellfun(@(x) deal(x(1:3),x(4:end)),SizeRec,'UniformOutput',false); - Size = size(Ref); numLab = numel(LabelRef); for lab = 1:numLab - ColorRef{lab} = reshape(ColorRef{lab},prod(ImgSizeRef{lab}),prod(ImgResRef{lab})); - LabelRef{lab} = reshape(LabelRef{lab},prod(ImgSizeRef{lab}),prod(ImgResRef{lab})); + SizeRef = size(ColorRef{lab}); + SizeRef(end+1:5) = 1; + ImgSizeRef = SizeRef(1:3); + ImgResRef = SizeRef(4:end); + + ColorRef{lab} = reshape(ColorRef{lab},prod(ImgSizeRef),prod(ImgResRef)); + LabelRef{lab} = reshape(LabelRef{lab},prod(ImgSizeRef),prod(ImgResRef)); ColorRef{lab}(~( LabelRef{lab}==lab)) = 0; - ColorRec{lab} = reshape(ColorRec{lab},prod(ImgSizeRec{lab}),prod(ImgResRec{lab})); - LabelRec{lab} = reshape(LabelRec{lab},prod(ImgSizeRec{lab}),prod(ImgResRec{lab})); + SizeRec = size(ColorRec{lab}); + SizeRec(end+1:5) = 1; + ImgSizeRec = SizeRec(1:3); + ImgResRec = SizeRec(4:end); + + ColorRec{lab} = reshape(ColorRec{lab},prod(ImgSizeRec),prod(ImgResRec)); + LabelRec{lab} = reshape(LabelRec{lab},prod(ImgSizeRec),prod(ImgResRec)); ColorRec{lab}(~(LabelRec{lab}==lab)) = 0; end -- GitLab