Обнаружение фигур в массиве точек - PullRequest
4 голосов
/ 29 июня 2009

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

С чего мне начать? (я использую C #)

Спасибо Jon

Ответы [ 4 ]

5 голосов
/ 29 июня 2009

В зависимости от вашей проблемы, хорошим подходом для этой проблемы может быть использование преобразования Хафа и всего его производного алгоритма

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

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

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

Вы можете взглянуть на эту лекцию (для преобразования Хафа Круга), но вы можете легко найти алгоритм для строки

РЕДАКТИРОВАТЬ: вы также можете посмотреть на эти ответы

Алгоритм (ы) распознавания фигур

Обнаружение объекта на изображении на основе геометрической формы

0 голосов
/ 29 июня 2009

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

0 голосов
/ 29 июня 2009
0 голосов
/ 29 июня 2009

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

Возможно, вы можете предоставить больше информации о вашей проблеме.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...