c++ - 在 OpenCV 中为 BRISK 设置参数

标签 c++ opencv computer-vision feature-detection

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

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

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

BruteForce Hamming

BruteForce Hamming

第一个场景完全不同,但是匹配度很高! 第二个场景很相似,但有些匹配是错误的。

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

最佳答案

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

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

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

关于c++ - 在 OpenCV 中为 BRISK 设置参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15489642/

相关文章:

c++ - 生成文件错误 3

Android:JavaCv 从相机获取 IplImage

c++ - 初始化另一个变量或反复使用原始变量

c++ - 在 C++ 中内存具有两个输入的函数

matlab - 检测图像中的数独方 block

python-3.x - 将 s3 中的图像与 SageMaker 一起使用,无需 .lst 文件

python - OpenCV Python 绑定(bind)中的特征检测

python - 基于 Python 中的颜色过滤器绘制区域

c++ - windows下的Qt Application和window Icon

android - Android NDK : Nothing being drawn 中的 OpenGL ES 2.0