A function to find peaks (brightest pixels in a grayscale image) ?

6 views (last 30 days)
Hi,
Is there any function as an alternative to FastPeakFind() to find brightest pixels in a grayscale image.
The problem of the FastPeakFind() function is that it can not find peaks correctly if they are piled. Since, FastPeakFind() function assumes that 'peaks are sparse'. So, even if we change the threshold value, this function can only detect peaks if they are separated. If there is a piled peak then this function can not show all pixels under the peak (it only shows ONE pixel for this kind of peaks. Therefore, we can not find correct number of bright pixels at a piled peak region.
Is there any alternative to this function ? I want to find number of brightest pixels and density of brightest regions in a grayscale image
Thanks

Answers (1)

Image Analyst
Image Analyst on 11 Jan 2016
See if the function imregionalmax() will do what you want. It finds local maxima and gives you a binary image indicating their location.
BW = imregionalmax(I) returns the binary image BW that identifies the regional maxima in I. Regional maxima are connected components of pixels with a constant intensity value, and whose external boundary pixels all have a lower value. In BW, pixels that are set to 1 identify regional maxima; all other pixels are set to 0. By default, imregionalmax uses 8-connected neighborhoods for 2-D images and 26-connected neighborhoods for 3-D images. For higher dimensions, imregionalmax uses conndef(ndims(I)),'maximal').
  5 Comments
Maitham
Maitham on 21 Jan 2017
Image Analyst. Thank you very much for your answer. I have made a new question about Strehl ratio: https://www.mathworks.com/matlabcentral/answers/321398-strehl-ratio-for-a-point-source-image
Very kind regards. Maitham

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!