Я пытаюсь написать алгоритм, чтобы найти лучшее (если есть) соответствие для шаблона прямоугольников.По сути, дана база данных из трех разных массивов прямоугольников.Цвет здесь не имеет значения, просто вы можете видеть, что это бесплатные разные наборы данных.
Учитывая ввод набора данных, как показано ниже, я хотел бы найти лучшее соответствие.Это для того, чтобы он соответствовал первому набору данных в базе данных.Обратите внимание, что не имеет значения, где прямоугольники находятся на экране, это просто их положение и размеры относительно друг друга.
Я делаю этов 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
}