diff --git a/multiply.m b/multiply.m index 6bbd6baddae6c868d9ff1b83997ec49b13b16530..ce615c92e9b8fd16a2326c7ec8d8b62d1b7fddfe 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 c166be5020440acbb3f340220a2be4749e65ed79..04a4cc50d4a784288a4914013ff239a6d360c1f7 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