Набор примеров Emgu CV содержит пример того, как использовать SURFDetector для обнаружения объектов из функции, а затем использовать вызов MatchFeature Feature2DTracker (который, кажется, использует KNN), чтобы сопоставить изображение «модели» с «наблюдаемым» изображением.Эта часть имеет смысл.
Теперь, если я хочу создать библиотеку изображений, каждое из которых использует функции SURF изображения, чтобы найти лучшее соответствие для данного изображения, каковы мои варианты?Могу ли я построить дерево вместо того, чтобы выполнять сопоставление методом грубой силы с каждым изображением в моей библиотеке?Я запутался, потому что Эмгу, кажется, строит какое-то дерево, но только между двумя изображениями:
//Create a SURF Tracker using k-d Tree
SURFTracker tracker = new SURFTracker(modelFeatures);
Я прочитал почти все темы на сайте по этой теме, но не могу понять, как это сделать.начать.Я также подумал об использовании сопоставления гистограмм - разбиении каждого канала RGB на бины и сравнении нормализованного числа.Вместо того, чтобы вычислять евклидово расстояние до каждого изображения в библиотеке, если бы я хотел разделить свое пространство поиска на основе количества RGB, это все равно означало бы разветвление на одном из R, G, B - и я не уверен, как построитьэто дерево решений.
Я только начал читать об этой теме несколько дней назад, поэтому извиняюсь за свою наивность.