Задать вопрос
@victor1234
IT: Компьютерное зрение, linux, с++

Алгоритм поиска самопересечений двумерного контура

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

Требуется найти координаты точек его самопересечения, причем быстро.

Пока из того, что нашел/додумался:
1. Найти прямоугольник, описаный вокруг контура.
2. Создать массив размером с этот прямоугольник
3. И отрисовывыть поточечно туда контур
4. Проверяя попадает ли новая точка точно на страрую
5. И нет ли рядом других, на случай диагонального перечесение.

Может эффективнее проверять соседство после отрисовки, если контур плотный.

Разработкка идет на с++ под OpenCV, но, понятное дело, готов принять на других языках, словесные описания и просто ссылки
  • Вопрос задан
  • 6714 просмотров
Подписаться 6 Оценить Комментировать
Ответ пользователя m03r К ответам на вопрос (3)
m03r
@m03r
Лучше проверять пары отрезков на пересечение.
Разумеется, не надо проверять соседние отрезки, а также уже проверенные пары.

Ещё будет проблема, если два отрезка частично совпадают: тогда множество точек пересечения бесконечно.

Про проверку отрезков можно почитать на RSDN, там и примеры кода есть. Ну или нагуглить что ещё.
Ответ написан
Комментировать