Алгоритм сопоставления для поиска совпадений между шаблонами CGRect / box / rectangle - PullRequest
0 голосов
/ 06 июля 2019

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

enter image description here enter image description here enter image description here

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

enter image description here

Я делаю этов Swift, но подойдет любой псевдокод на любом языке.В каждом наборе данных у меня есть массив CGRect.По существу ширина, высота и положение каждого прямоугольника.

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

let searchQuery = [CGRect]() // Input array containing list of boxes

for dataset in database {
    // Compare search query to each dataset and generate some type of match score
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...