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