为了用这种方法有效地测量体积,首先需要获得下平面(地面)和上平面(液体的顶面)的点云。 此外,这些点云必须位于平面中,因为其中的点具有相同的z坐标。 因此,有可能首先需要与平面估计器(MSAC)对准并在空间中旋转。 ##面积 为了计算顶部平面点云的面积,首先获得该曲面的凸包,然后使用形成凸包的点,应用高斯面积公式获得面积。 ##高度 为了获得容器中液体的高度,首先应用了一种删除异常值的稳健方法,然后利用下和上z坐标的中值差获得高度。 体积是面积和高度之间的乘积。 测试了不同情况下的各种不透明液体。在所有情况下,实际体积与获得的体积之间的误差都在10%以下。
代码如下:
function [area] = calculateArea(pcplanetop)
%calculateArea.m From a segmented pointcloud of the top surface of the
%liquid calculate the area.
%Input:
% pcplanetop : pointcloud of the top surface
%Salida:
% area : area of the top surface
%x,y coordinates of the c