Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: распознавание образов  (Прочитано 20057 раз)
0 Пользователей и 6 Гостей смотрят эту тему.
Mayor
Специалист

ru
Offline Offline

« : 02-10-2007 15:00 » 

распознавание образов

что можно почитать по распознаванию образов для ньюба?

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

эти цвета разбиты на 3 класса эквивалентности:
1 принадлежит домам
2 принадлежит окресностям дома
3 нейтральные ( точки нейтрального цвета могут быть как внутри так и снаружи или на границе дома дома - например номер дома, название станции метро и тп )

как получить векторные координаты проекции дома  с минимальным количеством вершин (контуры цифр букв должны срезаться, а не огибаться ) ?

как объединить дома  которые соприкасаются ?

Записан

1n c0de we trust
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 02-10-2007 16:53 » 

Mayor1, попробуй поискать в воруме по слову "dspguide" - я в эти темы обычно ссылки постил с этим словом - может какие-то интересуемые вопросы там уже обуждались.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Mayor
Специалист

ru
Offline Offline

« Ответ #2 : 09-10-2007 12:42 » 

удалось использовать детерменированый алгоритм поиска вершин\углов:

результаты неудовлетворительные, отведеное время на проэкт закончилось ...

пример обработки (картинки):

http://ria-inc.net/club/index.php?topic=1575.0
Записан

1n c0de we trust
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 09-10-2007 18:39 » 

Mayor1, картинок там не видно - видимо для гостей запрещены.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Mayor
Специалист

ru
Offline Offline

« Ответ #4 : 30-10-2007 02:33 » 

сорри с провайдером поцапались ... придется теперь покупать новые винты

* FnD1.gif (2.64 Кб - загружено 938 раз.)
Записан

1n c0de we trust
Mayor
Специалист

ru
Offline Offline

« Ответ #5 : 30-10-2007 02:35 » 

2

* u2.png (40.16 Кб - загружено 971 раз.)
* u2.png (40.16 Кб - загружено 904 раз.)
Записан

1n c0de we trust
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #6 : 30-10-2007 06:39 » 

Там же по цветам можно выделять и выбрасывать номера домов. У номеров фон белый, у зданий - цвета квартала.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Mayor
Специалист

ru
Offline Offline

« Ответ #7 : 30-10-2007 16:35 » 

Там же по цветам можно выделять и выбрасывать номера домов. У номеров фон белый, у зданий - цвета квартала.

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

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

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

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

1n c0de we trust
Mayor
Специалист

ru
Offline Offline

« Ответ #8 : 30-10-2007 16:52 » new

кстати по поводу спецкурсов ...

зацените что после него ребята отжигают:


http://www.imm.uran.ru/RUS/WIN/DEPARTMT/1.asp?%CE%CF%CF%D3

если ссылка не сработает ищите на сайте отдел прикладных проблем управления
Записан

1n c0de we trust
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #9 : 31-10-2007 09:14 » 

Цитата: Mayor1
не прокатит, цвет номера не выбрасывается, а заменяется на цвет дома или цвет квартала, и в том и в другом случае, готовый алгоритм поиска вершин сбивается нарушая контур здания ...
Вот поэтому у тебя ничего и не работает. Эта область должна не перекрашиваться в цвет, а именно "пропускаться". Если, номера домов не покрывают углы, то всё просто - соединить ребром те точки, на отрезке между которыми встречается "пропуск". А вот в случае сокрытия угла всё хуже...
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #10 : 31-10-2007 09:43 » 

можно попробовать ввести минимальную площадь (это попроще) / толщину(это сложнее) элемента. Если критерий меньше заданного, считать элемент мусором (или текстом) и закрасить в условный "пустой" цвет.

Затем , определяя объекты: если линия оканчивается на "пустой" цвете, пометить конец линии как незавершённый.

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

Mayor
Специалист

ru
Offline Offline

« Ответ #11 : 31-10-2007 10:25 » 

алгоритм ничего не пропускает, для него есть только 2 цвета: внутренний и внешний

если если номер перекрасить в цвет дома то будут выступающие углы, если в цвет улицы то изгрызенные стены
Записан

1n c0de we trust
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #12 : 31-10-2007 11:08 » 

Mayor1, а изменить алгоритм нельзя что ли ?
Записан

Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #13 : 31-10-2007 14:28 » 

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

В случае сокрытия сразу трёх углов выбросить такую дурную карту Улыбаюсь
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Mayor
Специалист

ru
Offline Offline

« Ответ #14 : 01-11-2007 17:58 » 

Mayor1, а изменить алгоритм нельзя что ли ?

смотри выше ....
( я не понимаю работы алгоритма, есть только изображение на входе и векторные координаты на выходе )
Записан

1n c0de we trust
Mayor
Специалист

ru
Offline Offline

« Ответ #15 : 01-11-2007 18:13 » 

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

В случае сокрытия сразу трёх углов выбросить такую дурную карту Улыбаюсь

а это класная идея, в принципе плевать на все сокрытые углы:

нумеруем все вершины в порядке их соединения ( учитывая впуклый\выпуклый многоугольник каждая вершина соединена только с 2мя соседними )

расчитываем центр объекта

берем и удаляем все вершины которые соединены отрезками размером меньше а

если получили меньше 3х отрезков удаляем объект

если разорваные полилинии паралельны удаляем объект

ищем точки пересечения разорванных полилиний и на их месте устанавливаем новую вершину

если линии стороны многоугольника пересеклись удаляем объект

если площадь многоугольника больше б удаляем объект

каждый удаленные объект правим вручную, или ставим в центре удаленного объекта фигуру по умолчанию


хм .... по идее было бы неплохо распознать номер висящий над\рядом с каждым домом
Записан

1n c0de we trust
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines