поиск пиков на гистограмме изображения

Я занимаюсь проектом обработки изображений. Для некоторой части моего проекта, чтобы найти хорошее пороговое значение, мне нужно найти пики и впадины гистограммы изображения. Я разрабатываю свой проект на С# .net, но мне нужен алгоритм или образец кода на любых языках, таких как (Java, C, C++,....), чтобы понять логику этого. Я могу конвертировать в С# самостоятельно. любой документ или алгоритм или кусок кода... спасибо


person user194611    schedule 27.02.2011    source источник
comment
Не могли бы вы показать пример гистограммы?   -  person Andrew Orsich    schedule 27.02.2011
comment
Вы можете сделать гистограмму с любым рядом данных. Возможно, вы думаете о конкретной гистограмме, полученной из ваших изображений. Который из?   -  person Dr. belisarius    schedule 27.02.2011


Ответы (2)


Трудно превзойти метод Оцу для бинарного порога. Даже если вы настаиваете на самостоятельной реализации поиска локальных экстремумов, метод Оцу даст вам хороший результат для сравнения.

person mpenkov    schedule 01.03.2011

Если вы уже вычислили свою гистограмму, найти пики и впадины с вычислительной точки зрения будет тривиально (перебрать ее и найти локальные экстремумы). Что не является тривиальным, так это найти «хорошие» пики и впадины, чтобы сделать некоторую сегментацию/порог. Но это не вопрос кодирования, это вопрос моделирования. Вы можете погуглить.

Если вам нужен простой рецепт, и если вы знаете, что ваша гистограмма имеет «по существу» два пика и впадину посередине («бимодальная» гистограмма), и вы хотите найти эту впадину, я однажды реализовал следующую специальную процедуру. , с относительным успехом:

  • Вычислить все экстремумы гистограммы (относительные максимумы/минимумы, включая границы)
  • Если есть только два максимума И если между этими максимумами есть только один локальный минимум, мы нашли долину. Верни это.
  • В противном случае сгладьте гистограмму (например, скользящее среднее) и перейдите к первому шагу.
person leonbloy    schedule 27.02.2011
comment
Я действительно не могу понять, как я должен найти второй пик, потому что второй максимум не является вторым пиком, и у нас так много маленьких маленьких пиков, что они нам не нужны. Я гуглил это, но я не мог найти ничего об алгоритме или коде этого. - person user194611; 28.02.2011
comment
Небольшие пики исчезают при сглаживании. В этом подходе вы сглаживаете гистограмму до тех пор, пока не останется только два пика (максимума). - person leonbloy; 28.02.2011