Я намагаюся створити програму, яка може підрахувати кількість ядер у такому зображенні:
Я вже зробив наступне, крок за кроком:
- Застосовуйте змінний послідовний фільтр (закриваючи та відкриваючи зображення за допомогою поступово більших структуруючих елементів)
- Застосовуйте дистанційне перетворення
- Застосовуйте сегментацію вододілу, використовуючи зображення, перетворене на відстань, для виявлення мінімумів
Який дає наступний результат (де кожен колір представляє нове ядро, що зараховується):
Як ми бачимо, існує безліч недосконалостей, зокрема, перенаселених ядер. Я б сказав, що причиною цієї проблеми є те, як я наклав мінімуми для трансформації вододілу (використовуючи дистанційне перетворення), але я справді не маю інших ідей щодо введення мінімумів у цьому випадку.
Оскільки дистанційна трансформація генерує мінімуми на основі округлості об'єктів, я хотів би знати кращу альтернативу округленню ядер, ніж змінний послідовний фільтр (дивлячись на зображення вище, ми можемо зробити висновок, що більшість "перерахунків" походить від менш округлі ядра). Я також хотів би знати кращі способи накладення мінімумів для перетворення вододілу.