mesh_volume#

Calculates the volume of a single region by meshing it. This method works by applying Trimesh on the region to mesh the region using marching cube algorithm and calculate the volume of the meshed region.

[1]:
import matplotlib.pyplot as plt
import numpy as np
import porespy as ps
import inspect
inspect.signature(ps.metrics.mesh_volume)
[1]:
<Signature (region)>

regions#

The input image with a single region labelled as True or any value>0. The image can be 3D or 2D. For visualization purpose, we create a 2D test image:

[2]:
np.random.seed(10)
im = ps.generators.blobs(shape=[50,50])
snow = ps.filters.snow_partitioning(im)
regions = snow.regions
region = regions == 10
volume = ps.metrics.mesh_volume(region)
print('volume is=', volume)
fig, ax = plt.subplots(1, 1, figsize=[6, 6])
ax.imshow(region, origin='lower', interpolation='none')
ax.axis(False);
volume is= 36.416666666666664
../../../_images/examples_metrics_reference_mesh__volume_4_2.png