peak-local-max

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 least min_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 and threshold_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 least min_distance). To find the maximum number of peaks, use min_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 within exclude_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, return num_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 in image. Overrides min_distance (also for exclude_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 like image, 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]])
doc_scikit_image
2017-01-12 17:22:41
Comments
Leave a Comment

Please login to continue.