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()
[01:01:51] 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');
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}');
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}');