5 views (last 30 days)

Hi Dear Community members,

i want to measure the volume of a cone using voxels. i am new in this field of voxels. Using the first link, a sphre of radius 8 has been voxelized. After voxelization, how can we count the total number of voxels. how to fix the size of voxels?

Using this method of author, how can we voxelize the cone to measure its volume. The attached file has xyz - coordiantes for the cone.

Thanks in advance for all cooperation and guidance.

% This scrypt illustrates the use of VoxelPlotter function to visualize

% voxel data stored in a 3d matrix

clear all

close all

clc

%Generating sinthetic input

gridesize=16;

R=8;

VoxelMat=zeros(gridesize,gridesize,gridesize);

for i=1:gridesize

for j=1:gridesize

for k=1:gridesize

if (i-gridesize/2)^2+(j-gridesize/2)^2+(k-gridesize/2)^2<R^2

VoxelMat(i,j,k)=1;

end

end

end

end

[vol_handle]=VoxelPlotter(VoxelMat,1);

view(3);

daspect([1,1,1]);

set(gca,'xlim',[0 gridesize], 'ylim',[0 gridesize], 'zlim',[0 gridesize]);

Bruno Luong
on 3 Sep 2020

Edited: Bruno Luong
on 4 Sep 2020

Vol estimate = 1.2692e+06

xyz = load('Cone_20000_points.txt');

[minxyz,maxxyz] = bounds(xyz,1);

N = 30*ones(1,3); % resolution, select with care

ijk = min(max(ceil((xyz-minxyz)./(maxxyz-minxyz).*N),1),N);

C = accumarray(ijk,1);

b = C > 0;

p = mean(C(b))

if p < 2 % Sanity check

warning('Your bin is too small, inaccurate result');

end

Vol = sum(b,'all') * prod((maxxyz-minxyz)./N)

Bruno Luong
on 4 Sep 2020

Where you get this

number_of_voxels = numel(b) % To count number of voxels using above code.

from???? If you change the calculation of my code then it's normal you get wrong result.

Opportunities for recent engineering grads.

Apply TodayFind the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
## 0 Comments

Sign in to comment.