from
3D voxelizer
by Carlos Martinez-Ortiz
Provides functionality to convert a 3D object to voxel representation.
|
| sparse3D(M) |
function S = sparse3D(M)
% SPARSE3D Converts a 3D binary matrix to a Nx3 coodrinate matrix.
% S = SPARSE3D(M) Converts the 3D binary matrix (occupancy matrix) M to
% a Nx3 matrix. M is a 3D matrix where 1-valued cells are considered
% as full and 0-filled cells are empty. The returned matrix S
% contains the XYZ coordinates of the cells which are occupied.
%
% Example 1
% ---------
% The following example creates the occupancy matrix of a very small
% sphere and then converts it to sparse representation:
%
% a = zeros(5,5,5);
% for i=1:5; x = i-3;
% for j=1:5; y = j-3;
% for k=1:5; z = k-3;
% if sum([ x y z ].^2)<=4; a(i,j,k) = 1; end;
% end
% end
% end
% sp = sparse3D(a);
% disp(a);
% disp(sp);
%
S = [];
for z=1:size(M,3)
[ x y ] = find(M(:,:,z)==1);
S = vertcat(S,[ x y ones(size(x,1),1)*z ]);
end
|
|
Contact us at files@mathworks.com