Какая единица расстояния возвращается cv :: flann :: knnSearch?

я ищу k ближайшие соседи n SURF дескрипторы. Я вычисляю ближайших соседей, создавая cv::flann::index объект на матрице дескриптора.

cv::flann::Index index(desc,cv::flann::KDTreeIndexParams(4));//cv::Mat desc: holds all the descriptors

index.knnSearch(centralDescriptor,indicesNN,distsNN,10);

После этого я должен сравнить возвращенное расстояние каждого ближайшего соседа с размером центральной характерной точки. Теперь проблема в том, что размер центральной характерной точки сохраняется в соответствующем cv::KeyPoint и единица cv::KeyPoint::size это пиксели, где в качестве расстояний все плавающие точки и меньше нуля.

Вопрос: Как мне преобразовать расстояние, возвращаемое cv::flann::knnSearch в пиксели или преобразовать cv::KeyPoint::size в единицу расстояния?

Прошу прощения за плохую формулировку вопроса, мой английский не очень хорош.

2

Решение

Ты не можешь.

cv :: flann :: knnSearch возвращает расстояние в пространстве SURF, другими словами, это сходство между патчами изображений (то есть этот угол больше похож на этот, чем на этот объект). А расстояние между точками просто пиксельное расстояние (например, используйте линейку на мониторе — для расстояния в дюймах).

0

Другие решения


По вопросам рекламы [email protected]