капелюх чарiвника
Расскажите, есть какой-то простой алгоритм идентификации простых геометрических фигур по заданному массиву точек?
То есть. Есть массив точек. На выходе хочется узнать, что это: просто мусор, или же круг, квадрат, ромб, прямоугольник.
Есть идеи?
То есть. Есть массив точек. На выходе хочется узнать, что это: просто мусор, или же круг, квадрат, ромб, прямоугольник.
Есть идеи?
-
-
04.12.2010 в 18:111) если это круг, то мы можем взять любые три точки и провести через них круг, потом проверяя - находятся ли остальные точки на нём ( теория),
2) соответственно остальное можно проверить используя трансформацию Хафа (хотя это, наверное, не самый простой способ), с помощью неё можно определить уравнение прямых и потом, например, в разных комбинациях проверить - получается ли 4-угольник хотя бы в одном из вариантов, если да, то далее надо проверить все углы между прямыми, если они не 90 градусов, то это возможный ромб, если 90 то ещё проверить длину каждой прямой.
-
-
05.12.2010 в 01:34Если объяснять ситуацию более подробно, то суть в следующем. Входные наборы точек - это нарисованные дрожащей рукой пользователя фигуры. Поэтому ни о каких прямых и углах речи быть не может до тех пор, пока не проанализированы точки и не найдены хотя бы вершины предполагаемых фигур. Тогда уже да, возможно применение инструментов, использующих прямые и углы.
-
-
05.12.2010 в 10:20-
-
05.12.2010 в 16:18Избавиться от помех предварительно - это мысль здравая, спасибо.
Надеюсь всё же обойтись без нейронной сети. К тому же, насколько я помню, нет нормального метода обучить нейронную сеть распознавать фигуры различных размеров, то есть масштабированию. Или я не прав?
-
-
05.12.2010 в 22:24-
-
05.12.2010 в 23:38-
-
06.12.2010 в 12:02-
-
06.12.2010 в 12:17Задачка-то в том, чтобы не ты подумал, прямоугольник это или нет, а чтобы алгоритм вынес вердикт. Что-то вроде: "Это на 87% прямоугольник, на 32% квадрат и на 3% ромб. Получите, распишитесь".
-
-
06.12.2010 в 13:25либо можно попробовать "выравнять" фигуру, в зависимости от параметров апроксимации будет получаться различный результат (набор прямых), тогда можно уже составить формальные правила и сверять по ним. т.е. наличие прямых углов, параллельность прямых, соотношение размеров и т.п., собственно основные признаки фигур проверять.
-
-
06.12.2010 в 14:01а тем временем мне подкинули полезную ссылку по моей теме "Распознавание геометрических фигур" - www.rsdn.ru/forum/alg/1705815.flat.aspx
и ещё я немного почитал про когнитрон и неокогнитрон. неокогнитрон устойчив к масштабированию и деформации распознаваемых образов. так что если искать решение на основе нейронной сети, то хотя бы известно теперь, в какую сторону копать.