How to find local minima in a image histogram?

조회 수: 2 (최근 30일)
Dani D
Dani D 2017년 10월 20일
편집: Image Analyst 2017년 10월 20일
Hello, I have few search about it in google. but i'm confused :( I would like to search for the first (leftmost) local minimum in the image histogram. For example the attached image is histogram of sample image. and we need local minima. I need just one number. Thanks

답변 (1개)

Image Analyst
Image Analyst 2017년 10월 20일
편집: Image Analyst 2017년 10월 20일
Use diff() to get the difference between the n+1st bin and the nth bin. Then use find to get the index
[counts, grayLevels] = imhist(grayImage);
index = find(diff(counts) >= 0, 1, 'first');
minGL = grayLevels(index);
  댓글 수: 5
Walter Roberson
Walter Roberson 2017년 10월 20일
That would not be uncommon. Suppose an image had no true black, then the first histogram entry would be a count of 0. The very first shade that did occur would have a non-zero entry, which is an increase. You would have a local minimum of 0 from the first bin to the first bin that had some data, at which point you would have an increase.
Image Analyst
Image Analyst 2017년 10월 20일
편집: Image Analyst 2017년 10월 20일
Yes, that's the first place where the histogram is flat. Perhaps you want findpeaks() where you get more control over how big a peak or valley you detect.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Histograms에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by