使用BOWImgDescriptorExtractor重用描述符

尼古拉斯·贝茨沃斯(Nicholas Betsworth)

我有以下代码,旨在通过其SIFT特征描述符对一组图像进行聚类。

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重新计算它们,那将是理想的选择如您所见,我能够提供关键点,但无法找到提供描述符的方法。

有什么办法可以重用我已经在这里创建的描述符?

尼古拉斯·贝茨沃斯(Nicholas Betsworth)

我不得不编写自己的版本BOWImgDescriptorExtractor,这使我可以直接传递描述符,而不必重新计算它们。

我只是简单地重用了现有的源代码,但更改了方法签名以允许我传递描述符,而不是图像数据和关键点,并且当然还删除了方法主体中不必要的计算。

注意:我当前正在运行OpenCV的2.4.9版本,但似乎在3.0.0版(尚未发布)中,它们已超载compute以解决此问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python描述符

来自分类Dev

Python描述符

来自分类Dev

我可以重用吗。Moq中的任何参数描述符

来自分类Dev

OpenCV C++ 创建可重用的关键点和描述符集以拼接多个图像

来自分类Dev

在轮询中使用未使用的描述符的性能

来自分类常见问题

如何使用文件描述符在C中删除文件?

来自分类Dev

使用/ dev / stdin的陈旧文件描述符

来自分类Dev

使用echo重定向文件描述符

来自分类Dev

使用NSFetchedResultsController对描述符进行排序-Swift

来自分类Dev

ioutil是否使用过多的文件描述符/泄漏?

来自分类Dev

使用OpenCV从小图像中提取点描述符

来自分类Dev

在Linux进程描述符中使用并集

来自分类Dev

使用dd的/ dev / stdin中的“错误文件描述符”

来自分类Dev

如何使用匹配算法评估特征描述符

来自分类Dev

为什么羊群使用描述符或文件

来自分类Dev

iOS coredata排序描述符使用部分日期?

来自分类Dev

使用图像矩作为带孔图像的描述符

来自分类Dev

使用Pyside时文件描述符错误

来自分类Dev

fork()之后使用相同的文件描述符

来自分类Dev

使用文件描述符而不是文件指针的getline()

来自分类Dev

如何使用数据描述符部分创建zip文件

来自分类Dev

如何使用WebUSB获取设备描述符?

来自分类Dev

使用Sift计算Python计算描述符

来自分类Dev

在Python描述符中使用setattr()和getattr()

来自分类Dev

使用dd的/ dev / stdin中的“错误文件描述符”

来自分类Dev

测试使用文件描述符的C函数

来自分类Dev

使用文件描述符输出到文件

来自分类Dev

在不可散列的类中使用描述符-python

来自分类Dev

使用/ dev / stdin的陈旧文件描述符

Related 相关文章

热门标签

归档