У меня есть следующий код, который предназначен для группировки набора изображений через дескрипторы функций SIFT.Повторное использование дескрипторов с BOWImgDescriptorExtractor
cv::BOWKMeansTrainer trainer = cv::BOWKMeansTrainer(n_clusters);
for (Image* image : get_images()) {
trainer.add(image->get_descriptors());
}
cv::Mat vocabulary = trainer.cluster();
cv::BOWImgDescriptorExtractor extractor(Image::get_extractor(), Image::get_matcher());
extractor.setVocabulary(vocabulary);
for (Image* image : get_images()) {
cv::Mat bow_descriptor;
extractor.compute(image->get_data(), image->get_key_points(), bow_descriptor);
// Determine which cluster the image matches best, via bow_descriptor..
}
У меня есть проблема, что я уже вычислил дескрипторы для изображений в точке я называю BowImgDescriptorExtractor::compute
, и поэтому было бы идеально, если бы я мог предоставить это, а не BowImgDescriptorExtractor::compute
повторного вычисления их. Как вы можете видеть, я могу предоставить ключевые точки, но не могу найти способ предоставить дескрипторы.
Есть ли способ для меня использовать дескрипторы, которые я уже создал здесь?