Skip to content
Snippets Groups Projects
voluming.m 2.66 KiB
Newer Older
function vol=voluming(gtbb,fliptype)
% voluming(gtbb,fliptype)
%
%   fliptype for the omega+180 blobs:
%       1    up-down
%       2    left-right
%       3    top-bottom
%       4    up-down top-bottom
%       5    left-right top-bottom

if fliptype==0
    fliptype=4;
end

nspots=length(gtbb);
maxx=max(gtbb(:,4));
maxy=max(gtbb(:,3));

% volumes
vol1=edf_read('vol1_corr.edf');  
vol2=edf_read('vol2_corr.edf');  
vol3=edf_read('vol3_corr.edf');  
vol4=edf_read('vol4_corr.edf');  
vol5=edf_read('vol5_corr.edf');  
vol6=edf_read('vol6_corr.edf'); 

vol1f=vol1;
vol3f=vol3;
vol5f=vol5;

if fliptype==5
    disp('Flipping z and left-right...')
    % flipping z
    vol2f=flipdim(vol2,3);
    vol4f=flipdim(vol4,3);
    vol6f=flipdim(vol6,3);

    % flipping left-right
    vol2f=flipdim(vol2f,2);
    vol4f=flipdim(vol4f,2);
    vol6f=flipdim(vol6f,2);
end

if fliptype==4
    disp('Flipping z and up-down...')
    % flipping z
    vol2f=flipdim(vol2,3);
    vol4f=flipdim(vol4,3);
    vol6f=flipdim(vol6,3);

    % flipping up-down
    vol2f=flipdim(vol2f,1);
    vol4f=flipdim(vol4f,1);
    vol6f=flipdim(vol6f,1);
end

if fliptype==3
    disp('Flipping z...')
    % flipping z
    vol2f=flipdim(vol2,3);
    vol4f=flipdim(vol4,3);
    vol6f=flipdim(vol6,3);
end

if fliptype==2
    disp('Flipping left-right...')
    % flipping left-right
    vol2f=flipdim(vol2,2);
    vol4f=flipdim(vol4,2);
    vol6f=flipdim(vol6,2);
end

if fliptype==1
    disp('Flipping up-down...')
    % flipping up-down
    vol2f=flipdim(vol2,1);
    vol4f=flipdim(vol4,1);
    vol6f=flipdim(vol6,1);
end

% sizes
s1=size(vol1);
s2=size(vol2);
s3=size(vol3);
s4=size(vol4);
s5=size(vol5);
s6=size(vol6);

maxz=s1(3);

% creating new big volume
vol=zeros(maxx*(nspots/2),maxy*2,maxz); 
size(vol)

% offsets x,y
x0(1)=(maxx-s1(1))/2;  y0(1)=(maxy-s1(2))/2;
x0(2)=(maxx-s2(1))/2;  y0(2)=(maxy-s2(2))/2;
x0(3)=(maxx-s3(1))/2;  y0(3)=(maxy-s3(2))/2;
x0(4)=(maxx-s4(1))/2;  y0(4)=(maxy-s4(2))/2;
x0(5)=(maxx-s5(1))/2;  y0(5)=(maxy-s5(2))/2;
x0(6)=(maxx-s6(1))/2;  y0(6)=(maxy-s6(2))/2;

x0=round(x0);
y0=round(y0);

% corners of volumes
pos=[x0' y0'];

% volume:
%    1    2
%    3    4
%    5    6

vol(pos(1,1)+1:pos(1,1)+s1(1),pos(1,2)+1:pos(1,2)+s1(2),:)=vol1f;
vol(pos(2,1)+1:pos(2,1)+s2(1),maxy+pos(2,2)+1:maxy+pos(2,2)+s2(2),:)=vol2f;
vol(maxx+pos(3,1)+1:maxx+pos(3,1)+s3(1),pos(3,2)+1:pos(3,2)+s3(2),:)=vol3f;
vol(maxx+pos(4,1)+1:maxx+pos(4,1)+s4(1),maxy+pos(4,2)+1:maxy+pos(4,2)+s4(2),:)=vol4f;
vol(maxx*2+pos(5,1)+1:maxx*2+pos(5,1)+s5(1),pos(5,2)+1:pos(5,2)+s5(2),:)=vol5f;
vol(maxx*2+pos(6,1)+1:maxx*2+pos(6,1)+s6(1),maxy+pos(6,2)+1:maxy+pos(6,2)+s6(2),:)=vol6f; 

disp('Saving the volume...')
edf_write(vol,'vol_sum_flip2.edf');

end