hold_peaks#

Replaces each voxel with the last peak seen along the given axis

import numpy as np
import porespy as ps
import matplotlib.pyplot as plt
from edt import edt
ps.visualization.set_mpl_style()
[17:43:33] ERROR    PARDISO solver not installed, run `pip install pypardiso`. Otherwise,          _workspace.py:56
                    simulations will be slow. Apple M chips not supported.                                         

im#

The input image will most likely be the distant transform

np.random.seed(0)
im = ps.generators.blobs(shape=[500, 500])
dt = edt(im)

pk = ps.filters.hold_peaks(im=dt, axis=0)

fig, ax = plt.subplots(1, 2, figsize=[16, 8])
ax[0].imshow(dt/im)
ax[0].axis(False)
ax[0].set_title('distance transform')

ax[1].imshow(pk/im)
ax[1].axis(False)
ax[1].set_title('peaks');
../../../_images/8153a6fdf733cdf2724972ffd6a117afac16f4a8a5af1b3b893549c90173889d.png

axis#

Controls the axis of the search:

fig, ax = plt.subplots(1, 2, figsize=[12, 6])

axis = 0
pk1 = ps.filters.hold_peaks(im=dt, axis=axis)
ax[0].imshow(pk1/im)
ax[0].axis(False)
ax[0].set_title(f'axis = {axis}')

axis = 1
pk2 = ps.filters.hold_peaks(im=dt, axis=axis)
ax[1].imshow(pk2/im)
ax[1].axis(False)
ax[1].set_title(f'axis = {axis}');
../../../_images/849c57ed042dd4a0301a2fa4d8ef2b720cdd00b55ff9c8b124d2d98604f97304.png

ascending#

A boolean that controls the direction of the scanning:

fig, ax = plt.subplots(1, 2, figsize=[12, 6])

ascending = True
pk1 = ps.filters.hold_peaks(im=dt, ascending=ascending)
ax[0].imshow(pk1/im)
ax[0].axis(False)
ax[0].set_title(f'ascending = {ascending}')

ascending = False
pk2 = ps.filters.hold_peaks(im=dt, ascending=ascending)
ax[1].imshow(pk2/im)
ax[1].axis(False)
ax[1].set_title(f'ascending = {ascending}');
../../../_images/2d544d8e96b4ebab8654c902a4108915ee56b6d926d47d634675bd05be9c749b.png