peak_local_max
-
skimage.feature.peak_local_max(image, min_distance=1, threshold_abs=None, threshold_rel=None, exclude_border=True, indices=True, num_peaks=inf, footprint=None, labels=None)
[source] -
Find peaks in an image as coordinate list or boolean mask.
Peaks are the local maxima in a region of
2 * min_distance + 1
(i.e. peaks are separated by at leastmin_distance
).If peaks are flat (i.e. multiple adjacent pixels have identical intensities), the coordinates of all such pixels are returned.
If both
threshold_abs
andthreshold_rel
are provided, the maximum of the two is chosen as the minimum intensity threshold of peaks.Parameters: image : ndarray
Input image.
min_distance : int, optional
Minimum number of pixels separating peaks in a region of
2 * min_distance + 1
(i.e. peaks are separated by at leastmin_distance
). To find the maximum number of peaks, usemin_distance=1
.threshold_abs : float, optional
Minimum intensity of peaks. By default, the absolute threshold is the minimum intensity of the image.
threshold_rel : float, optional
Minimum intensity of peaks, calculated as
max(image) * threshold_rel
.exclude_border : int, optional
If nonzero,
exclude_border
excludes peaks from withinexclude_border
-pixels of the border of the image.indices : bool, optional
If True, the output will be an array representing peak coordinates. If False, the output will be a boolean array shaped as
image.shape
with peaks present at True elements.num_peaks : int, optional
Maximum number of peaks. When the number of peaks exceeds
num_peaks
, returnnum_peaks
peaks based on highest peak intensity.footprint : ndarray of bools, optional
If provided,
footprint == 1
represents the local region within which to search for peaks at every point inimage
. Overridesmin_distance
(also forexclude_border
).labels : ndarray of ints, optional
If provided, each unique region
labels == value
represents a unique region to search for peaks. Zero is reserved for background.Returns: output : ndarray or ndarray of bools
- If
indices = True
: (row, column, ...) coordinates of peaks. - If
indices = False
: Boolean array shaped likeimage
, with peaks represented by True values.
Notes
The peak local maximum function returns the coordinates of local peaks (maxima) in an image. A maximum filter is used for finding local maxima. This operation dilates the original image. After comparison of the dilated and original image, this function returns the coordinates or a mask of the peaks where the dilated image equals the original image.
Examples
>>> img1 = np.zeros((7, 7)) >>> img1[3, 4] = 1 >>> img1[3, 2] = 1.5 >>> img1 array([[ 0. , 0. , 0. , 0. , 0. , 0. , 0. ], [ 0. , 0. , 0. , 0. , 0. , 0. , 0. ], [ 0. , 0. , 0. , 0. , 0. , 0. , 0. ], [ 0. , 0. , 1.5, 0. , 1. , 0. , 0. ], [ 0. , 0. , 0. , 0. , 0. , 0. , 0. ], [ 0. , 0. , 0. , 0. , 0. , 0. , 0. ], [ 0. , 0. , 0. , 0. , 0. , 0. , 0. ]])
>>> peak_local_max(img1, min_distance=1) array([[3, 2], [3, 4]])
>>> peak_local_max(img1, min_distance=2) array([[3, 2]])
>>> img2 = np.zeros((20, 20, 20)) >>> img2[10, 10, 10] = 1 >>> peak_local_max(img2, exclude_border=0) array([[10, 10, 10]])
- If
Please login to continue.