Python: Нахождение внешних вершин гистограммы двумерного изображения

1

У меня есть следующий вопрос. Я хочу сделать региональное segmenation, как показано в учебнике по сегментации изображений http://scikit-image.org/docs/dev/user_guide/tutorial_segmentation.html. Учебник очень ясен. Но часть, в которой они использовали экстремальные части гистограммы серых значений, кажется мне непонятной. Они используют значения 30 и 150 следующей гистограммы без объяснения того, как их получить:

Изображение 174551

Теперь мой вопрос: как получить эти внешние экстремумы?

  • 0
    Возможно, вам повезет больше с вопросом о github.
  • 0
    Посмотрели ли вы алгоритм скользящего максимума, он может помочь вам найти пики в одномерном массиве и очень прост в реализации.
Теги:
numpy
scikit-image
image-segmentation

1 ответ

1
Лучший ответ

Хотя ваш образ 2D, ваша гистограмма значений серого только 1D. Поиск пиков или максимумов в основном сводится к поиску точек с более высоким значением, чем все их соседние точки.

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

Вы хотите найти максимумы, используя "более грубую" версию вашей кривой. Вы можете получить это, сначала сглаживая его. Это выполняется с помощью свертки с фильтром нижних частот, что аналогично выполнению локального взвешенного усреднения значений в определенном окне.

scipy.signal.find_peaks_cwt автоматически сгладит массив и вернет вам пики. Все, что вам нужно сделать, это указать ожидаемую ширину пиков, которые вы хотите найти.

Это даст вам показатели вершин. Если вы хотите "внешние", просто возьмите первый и последний. Затем используйте эти индексы для поиска соответствующих гистограмм (оттенки серого).

Обратите внимание, однако, что для сегментации в регионе в целом соответствующие пики могут быть не всегда внешними! Это произошло в случае с изображением определенных монет, но вам, вероятно, придется немного поэкспериментировать в зависимости от изображения. Это более вероятно, когда есть высокая контрастность между фоном и передним планом (и они оба грубо однородны). В учебнике, о котором вы говорили, мне кажется, что пики были фактически выбраны (человеческим) контролем гистограммы.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню