props_to_image#

Values from the regionprops_3D function can be mapped back onto the original image.

import porespy as ps
import numpy as np
import matplotlib.pyplot as plt
import scipy.ndimage as spim

ps.visualization.set_mpl_style()
im = ~ps.generators.overlapping_spheres([100, 100], r=10, porosity=0.6, seed=7)

fig, ax = plt.subplots(figsize=[4, 4])
ax.imshow(im, origin="lower", interpolation="none")
ax.axis(False);
../../../_images/35269da56cc0e46a6ce43f527d16f31de4884655a201b5302a2e34ab4c93b147.png
regions = spim.label(im)[0]
props = ps.metrics.regionprops_3D(regions)

fig, ax = plt.subplots(figsize=[4, 4])
ax.imshow(regions, origin="lower", interpolation="none")
ax.axis(False);
../../../_images/f6f6f817cf3bcfe8013b3dc2f61ebdd65a6d92a75eb36227df2bafec1b10b214.png
im1 = ps.metrics.prop_to_image(props, im.shape, "convex_volume")
im2 = ps.metrics.prop_to_image(props, im.shape, "sphericity")
im3 = ps.metrics.prop_to_image(props, im.shape, "orientation")

fig, ax = plt.subplots(1, 3, figsize=[14, 4])
ax[0].imshow(im1, origin="lower", interpolation="none")
ax[0].axis(False)
ax[1].imshow(im2, origin="lower", interpolation="none")
ax[1].axis(False)
ax[2].imshow(im3, origin="lower", interpolation="none")
ax[2].axis(False);
../../../_images/eb166099cb7c7c81b870552ccdb3c453adff6fcef6ccab56977ae5c5aa3ce355.png