在 OpenCV 中设置 BRISK 的参数

use*_*398 5 c++ opencv computer-vision feature-detection

我正在尝试使用 OpenCV(用于 C++)的 BRISK 实现来检查照片是否包含图像(或图像的一部分)。例如,我拍了一张照片,然后尝试匹配它使用数据库中的一组图像,我想选择最佳的对应图像(如果所有图像都不够好,则会显示错误消息)。

所以,我目前只是在测试 OpenCV。我只是采用了框架中包含的示例 (matching_to_many_images),并将检测器和描述符从 SURF 更改为 BRISK。

但是,我有奇怪的结果。这些是匹配的结果(BruteForce Hamming):

蛮力汉明

蛮力汉明

在第一个中,场景完全不同,但有很多匹配!在第二个中,场景非常相似,但有些匹配是错误的。

我认为这是一个参数问题——因为在 BRISK 的演示视频中,结果很重要。

alr*_*kai 3

您看过 BRISK 的 OpenCV 文档吗?我不确定您现在使用的参数是什么,但您可以指定阈值和八度音阶以及模式。文档位于 http://docs.opencv.org/modules/features2d/doc/feature_detection_and_description.html#brisk

您也可以尝试不同的特征匹配算法,尽管在 BRISK 论文中他们似乎也使用了汉明距离

最后,出现错误的特征匹配并不意外。尝试不同的场景以及不同的特征参数,看看结果如何