![]() |
|
|
![]()
|
|
| mrgloom |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
есть такие вот замкнутые контуры малой толщины.
http://rghost.ru/35931708/image.png надо получить что то такое. http://rghost.ru/35931710/image.png т.е. в общем случае надо контур заменить на горизонтальные или вертикальные связные отрезки, если его толщина маленькая, то заменить одной линией. |
|||
|
||||
| _Y_ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1651 Регистрация: 27.11.2006 Репутация: 8 Всего: 34 |
Судя по картинкам, надо просто пройти по контуру, найти наиболее отдаленные друг от дрга точки, лежащие на одной горизонтали или вертикали и соединить их прямой.
-------------------- Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:) |
|||
|
||||
| mrgloom |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
||||
|
||||
| _Y_ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1651 Регистрация: 27.11.2006 Репутация: 8 Всего: 34 |
Здесь, видимо, без регрессий не обойтись. Но, по любому, надо подумать.
Поэтомы сначала вопрос: На новой картинке, видимо, только правые половины контуров. Каковы левые половины; т.е. обязательно ли они симметричны правым или, например, слева могут быть углы 90, а справа 45 градусов? То же касается симметрии верх-низ. На картинке верх-низ симметричны. Так должно быть вседа или ассиметричность нормальна? -------------------- Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:) |
|||
|
||||
| mrgloom |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
в общем случае линия идет как хочет под 90 и 45 градусов, контуры замкнутые и не пересекающиеся.
весь контур должен быть составлен из горизонтальных, вертикальных и линий под 45 градусов. контуры с шумами-неровностями ,а иногда и с большими кусками неровными лишними которые тоже хотелось бы как то уметь детектировать. случай с 45 встречается правда редко , так что можно его пока не рассматривать для простоты. я сейчас занимаюсь тем что пытаюсь научится определять точку с которой линия начинает идти под 90 или 45 градусов. если угол плавный и закругленный пока не работает. |
|||
|
||||
| Akonkagva |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 4.1.2008 Репутация: нет Всего: нет |
Ммм, дорогой mrgloom, похоже что для решения вашей проблемы возможно использовать функцию http://opencv.itseez.com/doc/tutorials/img.../hull/hull.html с помощью него можно легко находить углы.
Это сообщение отредактировал(а) maxim1000 - 24.1.2012, 15:44 |
|||
|
||||
| mrgloom |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
не совсем то, что нужно мне надо фигуры со сторонами ортогональными горизонтальной и вертикальной оси.
Это сообщение отредактировал(а) mrgloom - 30.1.2012, 17:09 |
|||
|
||||
| Mirkes |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 586 Регистрация: 18.8.2011 Где: Красноярск Репутация: 4 Всего: 17 |
Можно глянуть в сторону методов типа метода главных компонент.
Поясню. Берем произвольную точку. Проводим через нее горизонтальную, вертикальную и две диагональных прямых. Далее берем некоторую окрестность (не очень большую) и считаем сумму квадратов расстояний от всех точек окрестности до этих прямых. Прямая, давшая минимум суммы является локальным апроксимантом вашего множества точек. далее начинаем растягивать окрестность вдоль выбранной прямой до тех пор, пока удельная сумма квадратов расстояний (сумма деленная на количество точек) остается в заданных пределах. После завершения операции исключаем все точки из рассмотрения и повторяем процедуру. Вроде должно сработать. Вообще замена произвольного контура на ломанную может быть выполнена с помощью одномерных робастных эластичных карт или робастной вариации SOM. Попробуйте. -------------------- Mirkes |
|||
|
||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |