Страницы

Поиск по вопросам

суббота, 30 ноября 2019 г.

Детекция области диска зрительного нерва

#cpp #алгоритм #opencv


На входе имеется изображение



... которое посредством оператора Собеля преобразую к такому виду



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


Ответы

Ответ 1



Я бы попробовал следующий подход: Разбить все изображение на сетку из квадратов. Размер квадрата будет определять точность локализации области зрительного нерва, в то же время, размер стороны квадрата должен быть больше ширины сосуда. Размер стороны в 2 раза меньше, чем диаметр области для детекции на изображении мне кажется разумным. Для каждого квадрата сетки узнал бы, с какими квадратами он соединен сосудами. Таким образом получил бы граф кровеносных сосудов. Выделил бы из графа наибольший связный подграф. Нашел бы центр наибольшего подграфа. Если сосуды расходятся приблизительно равномерно от области нахождения зрительного нерва, то данный центр должен совпадать с положением зрительного нерва.

Ответ 2



Может быть попробовать "запустить потоки" по сосудам от периферии к центру? (что-то напоминающее трассировку печатных плат (или кристаллов)) Во внешнем цикле делаем по одному шагу для всех потоков. Если очередной шаг потока не приближается к центру ни по X, ни по Y (это важно, не расстояние от центра увеличивается, а обе координаты), поток прекращается. Также поток прекращается, если он достигает точки, которую уже посетил другой поток. В этом случае анализируем направление потоков и если оно встречное, то запоминаем такую точку. Мне кажется, что область в которой локализуется максимальное количество таких точек будет совпадать с искомой.

Комментариев нет:

Отправить комментарий