Поиск:

Ответ в темуСоздание новой темы Создание опроса
> нахождение точек контура 
:(
    Опции темы
Shket
Дата 29.4.2010, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 27.4.2010

Репутация: нет
Всего: нет



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

Может кто сталкивался с такой задачей или знает какой примерно лучше использовать алгоритм?

За ранее благодарна!

PM MAIL   Вверх
Akina
Дата 29.4.2010, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 454



Цитата(Shket @  29.4.2010,  15:40 Найти цитируемый пост)
Необходимо из этого множества выделить точки контура

Либо условие неполное, либо одно из двух. В общем, не сформулирован критерий отделения контурных точек от внутренних.

Цитата(Shket @  29.4.2010,  15:40 Найти цитируемый пост)
множество необязательно выпуклое

Множество точек не бывает ни выпуклым, ни впуклым. Это свойство есть только у контуров.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
_Y_
Дата 29.4.2010, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: 8
Всего: 34



Идеального решения при таких расплывчатых условиях, видимо нет. Вот неидеальное. Будет работать только для более-менее выпуклых фигур. 

Соединить каждую точку с каждой. Получится некая "звезда". Как определить лежит ли точка внутри фигуры (звезде в данном случае) или на ее периметре на этом форуме когда-то уже было описано. 
Ощибки будут следующие:

1. Точки периметра, лежащие на вогнутой части контура будут рассматриваться как внутренние.
2. Внутренние точки, лежащие очень близко к контуру, при условии, что контур в этом районе точками не представлен, будут рассматриваться как лежащие на контуре.

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


--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
Akina
Дата 29.4.2010, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 454



Цитата(_Y_ @  29.4.2010,  17:15 Найти цитируемый пост)
Соединить каждую точку с каждой. Получится некая "звезда".

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


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
_Y_
Дата 29.4.2010, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: 8
Всего: 34



Цитата(Akina @ 29.4.2010,  16:38)
Цитата(_Y_ @  29.4.2010,  17:15 Найти цитируемый пост)
Соединить каждую точку с каждой. Получится некая "звезда".

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

Именно так, хотя ограничение на длину соединений позволит получить некоторые "вогнутости". 

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


--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
Akina
Дата 29.4.2010, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 454



_Y_, предлагаю дождаться ТС...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Shket
Дата 29.4.2010, 17:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 27.4.2010

Репутация: нет
Всего: нет



Точек оч.оч.оч. много,более 2000.Они располагаются к друг друга близко
например,некоторые точки
0.46605139 0.039221156 -0.42925035,
0.47014663 0.046391322 -0.44258687,
0.47360408 0.038873176 -0.43728157,
0.45986243 0.0454406 -0.42990745,

а если вводить ограничения на длину соединения,то очень близко расположенные точки не учитывать(я правильно понимаю?),то в этом случае некоторые точки контура могут быть потеряны(не учитаны).Я думаю,что точки все нужны.
PM MAIL   Вверх
Akina
Дата 29.4.2010, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 454



Shket, всё-таки будьте любезны уточнить задачу и ликвидировать разночтения и двусмысленности.
А заодно уточните количество измерений и смысл приведённых характеристик точек.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
ksnk
Дата 29.4.2010, 17:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 7
Всего: 386



Shket, представь себе спиральку от комаров ;) Вот такую фигуру и стоит попробовать описать точками. Сразу станет понятно в каком месте описание задачи будет глючить.


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
_Y_
Дата 29.4.2010, 18:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: 8
Всего: 34



Цитата(Shket @ 29.4.2010,  17:27)
а если вводить ограничения на длину соединения,то очень близко расположенные точки не учитывать(я правильно понимаю?),то в этом случае некоторые точки контура могут быть потеряны

То, что точного результата Вы не получите - это уж точно smile 

Я, видимо, нечетко выразился. Ограничение на длину надо вводить по принципу "расстояние между соединяемыми точками не больше чем". В этом случае выпадут только точки далеко отстоящие от всех других.

Если же Ваши точки заполняют фигуру более-менее плотно, а отдельностоящих точек нет, алгоритм, по идее должен работать сносно.





--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
Pavia
Дата 29.4.2010, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 418
Регистрация: 6.12.2008

Репутация: 11
Всего: 12



Наложить сетку с некоторым шагом на эти точки. Подсчитать число точек попавших в соответствующие ячейки. Получим картинку в градациях серого применить алгоритм для выделения границ. Для выделения границ использовать алгоритм Кэнни или разность Гаусиан.
PM MAIL   Вверх
_Y_
Дата 29.4.2010, 20:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: 8
Всего: 34



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


--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
Shket
Дата 30.4.2010, 09:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 27.4.2010

Репутация: нет
Всего: нет



Спасибо за советы!!!
Буду штудировать литературу...Идея про то,чтобы сначала получить картинку в градации серого очень понравилась...
Я все пыталась найте решение в теории графов...
Еще раз спосибо
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.1060 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.