![]() |
|
|
![]()
|
|
| Newbe |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 18.4.2011 Репутация: нет Всего: нет |
Стоит следующая задача: есть изображение со сножеством линий(от 2 и более). Необходимо сегментировать это изображение, и выделить все линии на нем. Для примера приведу картинку.
![]() В результате сегментации у нас должно получится 2 отдельных линии, как на нижнем рисунке(представлены они могут быть как угодно - как лист координат точек например). При этом, линий может быть больше и одна линия на своем протяжении может пересекать другие линии >0 раз(т.е. пересечений может и не быть), в том числе и одну линию несколько раз. Даже не знаю с какой стороны копать. Волновой алгоритм мог бы подойди для этого, но только в случае пересечений только строго =1. Если линия будет пересекать другие 2 раза и более то на втором пересечении произойдет "конфликт" волн, и одна из них просто оборвется. Я уже не знаю что делать Это сообщение отредактировал(а) Newbe - 18.4.2011, 19:25 |
|||
|
||||
| _Y_ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1651 Регистрация: 27.11.2006 Репутация: 8 Всего: 34 |
Из чисто детского любопытства мне тоже интересно.
Как понимаю, основная проблема в том, чтобы отличить пересичение линий от касания с наложением двух изогнутых фрагментов. Вот ее-то решение и интересно (все остальное решается вроде бы в лоб). -------------------- Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:) |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 7 Всего: 183 |
Почему же? Если волновой алгоритм рассматривать как обход графа (чем он по сути и является), проблема решается пометкой пройденных фрагментов. Что касается пересечений-касаний, то проблему нужно решат на след. этапе. Т.е. сначала из растра получить граф с узлами в точках схождения, а затем уже анализировать граф, объединяя ребра в линии по геометрическим признакам. Плюс дополнение: линии вроде бы имеют не единичную толщину. Поэтому полезно изначальный растр утоньшить, это сильно облегчит анализ. -------------------- ... |
|||
|
||||
| Newbe |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 18.4.2011 Репутация: нет Всего: нет |
||||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 7 Всего: 183 |
Волна должна гаснуть при попадании на пройденный участок.
На развилке - расщепляться на 2, на схождении - сливаться. Пройденные участки нужно помечать по-любому. -------------------- ... |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 7 Всего: 386 |
Я что-то путаю, или тут явный критерий "линии" - она "гладкая". То есть две рядомстоящие точки линии лежат практически на той-же прямой, что и две предыдущие. Пересечение линий - "негладкое". Может от этого плясать в волновом алгоритме?
-------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| gustavomarginale |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 2.7.2008 Репутация: нет Всего: нет |
Я тоже, булок мне век не видать, подумал о гладкости и негладкости.
|
|||
|
||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |