Finding a local minimum in a histogram
8 次查看(过去 30 天)
显示 更早的评论
I would like to search for the first local minimum in a histogram and determine a threshold value from that. The histogram represents the distribution of intensities of a image-based DNA sequencing experiment, from a total of n=742. Basically, I expect a bimodal distribution of "background" of low intensities and "signal" of high intensities. From the attached image, one can see an obvious left peak of background intensities. I hope to find the intensity at the bottom of the first trough. I have seen a few ways of doing this, including using histcounts but that was not robust to noise in the histogram and bin sizing. I am wondering if someone can recommend an algorithm that will be robust to noise and to bin sizing (i.e. not just using an arbitrary bin size). Thanks.
0 个评论
回答(2 个)
Star Strider
2016-8-19
I can’t tell if the first minimum is the absolute minimum, or something else. If you have the Signal Processing Toolbox, I would take the negative of the counts in your histogram, and use the findpeaks function on it. See the documentation on findpeaks for details.
0 个评论
Image Analyst
2016-8-20
If you want a robust way of finding the "corner" on the right side of the histogram that is robust to noise, you can try findpeaks() but you might have to fiddle around with a dizzying array of options to determine what is a 'true" peak and what's just a noise blip on the side of a larger peak.
OR you could try the triangle thresholding method. I've attached it. Basically you give it the counts array and tell it what side you want it to find the "corner" of. Essentially it draws a hypoteneusa line from the far tail to the peak. Then it sends lines in perpendicularly in from that line to the actual counts array and finds the gray level which has the longest line. This is the line which will go from the hypoteneuse into the farthest "corner" of the counts array. Essentially it finds the bottom of the hump.
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Histograms 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!