sem
#
Visualize a 3D image in 2D by simulating an SEM image with infinite depth-of-field and brightness inversely corresponding to distance from top surface
import porespy as ps
import matplotlib.pyplot as plt
ps.visualization.set_mpl_style()
/opt/hostedtoolcache/Python/3.8.16/x64/lib/python3.8/site-packages/openpnm/algorithms/_invasion_percolation.py:358: NumbaDeprecationWarning: The 'nopython' keyword argument was not supplied to the 'numba.jit' decorator. The implicit default value for this argument is currently False, but it will be changed to True in Numba 0.59.0. See https://numba.readthedocs.io/en/stable/reference/deprecation.html#deprecation-of-object-mode-fall-back-behaviour-when-using-jit for details.
def _find_trapped_pores(inv_seq, indices, indptr, outlets): # pragma: no cover
Create a test image of fibers since the orientation is useful for visualization:
im = ps.generators.cylinders(shape=[200, 200, 200], r=6, porosity=0.7)
fig, ax = plt.subplots(1, 3, figsize=[12, 8])
ax[0].imshow(im[50, :, :])
ax[0].axis(False)
ax[1].imshow(im[:, 50, :])
ax[1].axis(False)
ax[2].imshow(im[:, :, 50])
ax[2].axis(False);

axis
#
By default the image will be viewed along the x-axis, but this can be specified:
fig, ax = plt.subplots(1, 3, figsize=[12, 8])
im1 = ps.visualization.sem(im)
ax[0].imshow(im1, cmap=plt.cm.hot_r)
ax[0].axis(False)
im2 = ps.visualization.sem(im, axis=1)
ax[1].imshow(im2, cmap=plt.cm.bone)
ax[1].axis(False)
im2 = ps.visualization.sem(im, axis=2)
ax[2].imshow(im2, cmap=plt.cm.twilight)
ax[2].axis(False);
