Найдите сходство двух векторных фигур

Поиск любой информации/алгоритмов, касающихся сравнения векторной графики. Например. скажем, есть две точечные коллекции или векторные файлы с двумя почти одинаковыми фигурами. Я хочу определить, что первая цифра примерно на 90% похожа на вторую.


person Kamarey    schedule 21.09.2009    source источник
comment
Это вообще. Подумайте, если это будет работать для 2D, не так уж сложно сделать это для 3D.   -  person Kamarey    schedule 22.09.2009
comment
Квартальные уравнения были проще простого, поэтому я думаю, что квинтик не должен быть проблемой ... На самом деле я понятия не имею о сравнении нечетких векторов 2D и 3D, но я думаю, что было бы ошибкой быть уверенным, что это одинаково сложно.   -  person Jonas Elfström    schedule 22.09.2009
comment
Что вы имеете в виду под похожим? Есть ли известное вам совпадение точек за точками, и вы хотите увидеть, насколько эти точки сдвинулись; или они похожи, но с несколькими пропущенными; или вы имеете в виду похожие формы, но, возможно, масштабированные и повернутые? Я предполагаю, что вы имеете в виду только геометрию, верно, а не похожие цвета, например?   -  person tom10    schedule 22.09.2009
comment
Похожи только с точки зрения геометрии. Никакие цвета, другие свойства или количество точек не важны. Фигуры можно масштабировать или поворачивать, но важна сама геометрия формы. Ваш ответ выглядит в правильном направлении.   -  person Kamarey    schedule 22.09.2009


Ответы (3)


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

Большинству известных мне программ потребуются растровые версии векторных объектов; но моменты можно рассчитать непосредственно из векторной графики, используя подход теоремы Грина, или более упрощенный подход, который просто идентифицирует уникальные (неупорядоченные) конфигурации вершин, будет заключаться в преобразовании интегралов момента Ху в суммы по вершинам - в аналогии с физикой замена непрерывного объекта с равными массами точек в каждой вершине.

Существует статья об инструменте под названием VISTO, который сортирует векторные графические изображения (я думаю, используя моменты ), что, безусловно, должно быть полезно для получения более подробной информации.

person tom10    schedule 21.09.2009
comment
Вот еще одна ссылка на подход VISTO. (кстати, это не бесплатно, и, учитывая, что это Elsevier, я предполагаю, что это никогда не будет.) - person tom10; 24.08.2020

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

person Zed    schedule 21.09.2009

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

person ldog    schedule 23.09.2009
comment
Спасибо, я знаю, но я задал этот вопрос именно о векторной графике в надежде, что есть существующие способы решения таких проблем, не возвращаясь к растровым алгоритмам. Это теоретический вопрос, и у меня нет конкретной задачи, поэтому я не могу найти пример недостатков растровых алгоритмов прямо сейчас, но я уверен, что их векторные аналоги должны быть более качественными и универсальными. - person Kamarey; 23.09.2009