How to calculate the volume enclosed by a set of XYZ points in 3D?
71 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Sourav Sahoo
am 23 Jan. 2021
Kommentiert: Bruno Luong
am 17 Jun. 2022
Hi,
I am trying to find the volume of a region (defined by X,Y and Z coordinates) enclosed below a (Z='constant') plane. The data has peaks (positive Z) and a valley (negative Z), and the mean surface is assigned z=0. I have tried with the following piece of code, but I doubt it gives me the total volume bound by the surface against z=0, including the peak volumes as well.
[X,Y,Z] = xyzread("data.xyz");
plot3(X,Y,Z)
[fitobject, gof, output] = fit([X,Y],Z, 'biharmonicinterp');
plot(fitobject)
a = min(X);
b = max(X);
c = min(Y);
d = max(Y);
volume_under_fit = quad2d(fitobject,a,b,c,d)
0 Kommentare
Akzeptierte Antwort
Bruno Luong
am 23 Jan. 2021
Bearbeitet: Bruno Luong
am 23 Jan. 2021
V is the volume between the plane x-y (z==0) and the surface z(x,y) from your data.
If you want the volume of the data after substract the base plane surface, you need to estimated the equation by regression.
load('data.xyz')
x=data(:,1);
y=data(:,2);
z=data(:,3);
T=delaunay(x,y);
trisurf(T,x,y,z);
xy = [x,y];
a = xy(T(:,2),:)-xy(T(:,1),:);
b = xy(T(:,3),:)-xy(T(:,1),:);
V = ((a(:,1).*b(:,2)-a(:,2).*b(:,1))' * sum(z(T),2))/6
5 Kommentare
Lyhour Chhay
am 16 Jun. 2022
Dear Bruno Luong and Sourav Sahoo,
First of all, I really interest your approach to calculate the volme. I have a problem similar to a proposed problem. I have point cloud with x,y,z data. I want to find the volume between the plan x-y (z==5) and my point cloud data. I will show in the figure below. how can I solve this problem ? I tried to use the code in the comment, it show the negative value for my result. thank you very much.
Bruno Luong
am 17 Jun. 2022
If you want to adapt the above code plane z=5 and you data is bellow the plane then change to
x=data(:,1);
y=data(:,2);
z=5-data(:,3);
and do the rest similarly.
Weitere Antworten (1)
Siehe auch
Kategorien
Mehr zu 3-D Volumetric Image Processing finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!