rtsMaskReconstruct.m 825 Bytes
function I = rtsMaskReconstruct(data, mask, fillVal)

%This function reconstructs an array of data created from a mask
% data = a VxD matrix, where D = positions and V = values
% mask = a binary image with D nonzero values

%compute the number of values at each pixel
nV = size(data, 1);

%allocate space
nX = size(mask, 1);
nY = size(mask, 2);
I = ones(nV, nX*nY) * fillVal;

d=1;
%for each position
for p = 1:nX*nY
    
    %if the mask value at the position is true, copy values
    if(mask(p) && d < size(data, 2))
        I(:, p) = data(:, d);
        
        %increment the data pointer
        d = d + 1;
        
    %if the mask value at the position is zero, set all values to zero
    else
        I(:, p) = ones(nV, 1) * fillVal;
    end 
    
end

%reshape the array into an image
I = reshape(I', [nX nY nV]);