// operating on each label separately
if labels is not None:
labels_copy = labels.copy()
label_values = np.unique(labels_copy)
// Reorder label values to have consecutive integers (no gaps)
if np.any(np.diff(label_values) != 1):
mask = labels_copy >= 1
labels_copy[mask] = 1 + rank_order(labels_copy[mask])[0].astype(labels_copy.dtype)
labels_copy = labels_copy.astype(np.int32)
// New values for new ordering
label_values = np.unique(labels_copy)
for label in label_values[label_values != 0]:
maskim = (labels_copy == label)
out += peak_local_max(image * maskim, min_distance=min_distance,
threshold_abs=threshold_abs,
After Change
// operating on each label separately
if labels is not None:
labels = relabel_sequential(labels)[0]
for label in range(1, labels.max()+1):
maskim = labels == label
out += peak_local_max(image * maskim, min_distance=min_distance,
threshold_abs=threshold_abs,