![]() |
|
![]() ![]() ![]() |
|
DissDoc |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 463 Регистрация: 13.7.2006 Репутация: нет Всего: нет |
Ребят, помогите каким угодно образом решить мою проблему. Не могу догадаться, как "как бы выделить прямоугольником" изображение. Допустим есть на картинке круг (квадрат, какая-нить абракадабра) при условии что он весь внутри закрашен (т.е. идеальный случай). Картинка бинарная (не стоит усложнять). И как мне по краю пройтись, чтобы получить начальные и конечноые XY координаты, т.е. для прямоугольника, в который вписана какая-то фигура.
Знаю что просто, но не получается. Помогите кто чем ... в идеале конечно небольшой код был бы очень кстати, хотя бы наводочка. ![]() |
|||
|
||||
dmage |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 21.6.2007 Репутация: 1 Всего: 1 |
Прочитав первый раз пропустил слово "по контуру", поэтому сделал на Python через обход всей фигуры.
Для ускорения можно не добавлять в очередь точки, у которых все соседи одного цвета. Но при этом на вход придется давать граничную точку.
Это сообщение отредактировал(а) dmage - 4.8.2007, 22:50 |
|||
|
||||
maxim1000 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 33 Всего: 110 |
хм... пройтись по всем чёрным пикселам и посчитать минимальные и максимальные значения для x и y...
-------------------- qqq |
|||
|
||||
dmage |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 21.6.2007 Репутация: 1 Всего: 1 |
maxim1000, такой способ не поможет, если на картинки 2 и более фигур.
|
|||
|
||||
maxim1000 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 33 Всего: 110 |
и то правда, это я подумал, что бинарная картинка представляет сам объект, который нам нужен
Это сообщение отредактировал(а) maxim1000 - 4.8.2007, 23:19 -------------------- qqq |
|||
|
||||
DissDoc |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 463 Регистрация: 13.7.2006 Репутация: нет Всего: нет |
Может и много будет изображений на картинке. Но мне нужен был сам принцип понять. Спасибо. Сейчас с кодом разбираюсь.
Я пытался и матрицей 3х3 и 5х5 проходится - откровенно говоря путался в конечном итоге. =( |
|||
|
||||
Earnest |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 7 Всего: 183 |
Вот, держи код C++ обхода контура методом "жука".
Здесь предполагается, что IsOk дает дает ответ на вопрос - закрашен ли пиксел. STORE - накопитель точек. Если контур замкнулся, должен вернуть false. Алгоритм предполагает, что первую точку найдешь сам, хотя бы сканируя растр и проверяя IsOutlinePoint Вспомогательный классик CDir:
-------------------- ... |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "Алгоритмы" | |
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Алгоритмы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |