问题标签 [flann]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3045 浏览

c++ - 二维点数据集中的 OpenCV 模板

我正在徘徊在二维点数组中检测“数字”的最佳方法是什么。

在这个例子中,我有两个“模板”。图 1 是模板,图 2 是模板。这些模板中的每一个仅作为具有 x,y 坐标的点向量存在。

假设我们有第三个向量,其中的点具有 x,y 坐标

找出和隔离与第三个数组中的前两个数组之一匹配的点的最佳方法是什么。(包括缩放、旋转)?

示意图

我一直在尝试最近的邻居(FlannBasedMatcehr)甚至 SVM 实现,但它似乎没有给我任何结果,我认为模板匹配似乎也不是要走的路。我不是在处理图像,而是在内存中的 2D 点上工作......

特别是因为输入向量总是比要比较的原始数据集有更多的点。

它需要做的就是在数组中找到与模板匹配的点。

我不是机器学习或 opencv 的“专家”。我想我从一开始就忽略了一些东西......

非常感谢您的帮助/建议。

0 投票
0 回答
546 浏览

python - 一张图像与一组图像的比较

我想将汽车前部的图像与其他汽车的图像数据库进行比较,并告诉我它最有可能匹配。

程序首先要使用 SURF 找到图像数据库的关键点和描述符,并尝试将它们与Flann matcher.

但我根本无法理解它应该如何工作。我将匹配各种图像对,但是如何比较图像并显示相对输出?

0 投票
1 回答
1950 浏览

c++ - 使用LshIndexParams flann 索引需要什么类型的数据?

我想使用 LSH 来加快搜索速度,我在 opencv flann 中发现可以通过使用 LshIndexParams 来做到这一点?问题是我无法获得正确的格式。我使用词袋生成一个垫子输出并将其提供给 flann,但我总是出错。

) 在 buildIndex_ 文件 /home/vampire/opencv-2.4.8/modules/flann/src/miniflann.cpp 中,第 315 行终止在抛出 'cv::Exception' what() 实例后调用:/home/vampire/ opencv-2.4.8/modules/flann/src/miniflann.cpp:315:错误:(-210) type=2 in function buildIndex_

部分代码如下:

我也尝试转换为其他类型,没有人工作,有人知道怎么做吗?在我得到结果后,我怎么知道它是否匹配?

0 投票
0 回答
319 浏览

c++ - Access violation using flann matcher

I'm facing a very annoying problem when I create an object of FalnnBaseMatcher.

The code is the following and it worked fine on ubuntu under eclipse.

it compiles but when i run i got an access violation. I tried to split the problem and i figured out that i have this error when i create the object FlannBasedMatcher matcher;

Any help is accepted, thank you very much.

I'm using visual studio express edition 2012 and opencv 242 under windows 7.

Now modifying slightly the code I get an interuption in free.c

*free.c - free an entry in the heap * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * Defines the following functions: * free() - free a memory block in the heap * *******************************************************************************/

The interruption is in: if (retval == 0)

SOLVED!

I rebuilt openCv for VisualStudio 2012 using cMake and now works fine.

0 投票
1 回答
3538 浏览

c++ - Flann Matcher 训练如何在 opencv 中工作?

我是opencv的新手。我的问题是:

我有 2 个火车图像描述符 trainA 和 trainB。然后我构造一个向量来放入它们,并将它们添加到 flann 匹配器中进行训练。

之后,我使用查询图像描述符 queryC 来执行 knnMatch 并返回 DMatchs。

在这种情况下,哪个火车描述符将用于匹配 queryC、trainA 或 trainB?以及培训如何帮助提高匹配准确性?

提前致谢。

0 投票
2 回答
7122 浏览

c++ - OpenCV 将图像、关键点和描述符保存到文件

我正在使用 SURF/FLANN 检测器,我希望将图像、点、描述符保存到一个文件中,以便我可以比较这个图像,它指向第二个图像和点但是当我收到以下错误时试着写:

这是我用来编写的代码:

我不确定在哪里可以指定额外的参数 ( tempDescriptors_1),因为删除了这个参数后它可以正常工作。

紧接在编写代码之上的代码:

0 投票
0 回答
53 浏览

c++ - 需要有关 opencv FlannBasedDetector 的信息

从这个问题我有一些问题我找不到任何答案。

比较重要的两个是:

1)两个 FlannBasedMatcher 构造函数参数是什么意思以及它们如何修改 Flann 行为。

2)从我读过的内容来看,可以保存经过训练的数据,但除此之外我了解的不多。

我找不到文档来回答上述两个问题。

0 投票
0 回答
199 浏览

c++ - 使用 Eclipse CDT 运行 flann

我使用 cmake 构建了 flann,然后我运行了我的程序并出现了以下错误:

'get_hdf5_type' /usr/local/include/flann/io/hdf5.h 之前的预期构造函数、析构函数或类型转换:在函数 'void flann::save_to_file(const flann::Matrix&, const std::string&, const std ::string&)': /usr/local/include/flann/io/hdf5.h:84: 错误:“H5Eset_auto”没有依赖于模板参数的参数,因此“H5Eset_auto”的声明必须可用/usr/local/include/flann/io/hdf5.h:84:注意:(如果您使用'-fpermissive',G++ 将接受您的代码,但不允许使用未声明的名称)/usr/local/ include/flann/io/hdf5.h:87: 错误: 'herr_t' 未在此范围内声明 /usr/local/include/flann/io/hdf5.h:87: 错误: 预期';' 在“状态”/usr/local/include/flann/io/hdf5.h:88 之前:错误:'hid_t' 未在此范围内声明 /usr/local/include/flann/io/hdf5.h:88:错误:预期为 ';' 在“file_id”/usr/local/include/flann/io/hdf5.h:89 之前:错误:在此范围内未声明“file_id”/usr/local/include/flann/io/hdf5.h:89: 错误:“H5F_ACC_RDWR”未在此范围内声明/usr/local/include/flann/io/hdf5.h:89:错误:“H5P_DEFAULT”未在此范围内声明/usr/local/include/flann/io/hdf5 .h:89: 错误: 'H5Fopen' 没有依赖于模板参数的参数,因此'H5Fopen' 的声明必须可用 /usr/local/include/flann/io/hdf5.h:91: 错误:“H5F_ACC_EXCL”未在此范围内声明/usr/local/include/flann/io/hdf5.h:91:错误:“H5Fcreate”没有依赖于模板参数的参数,所以'H5Fcreate'的声明必须可用/usr/local/include/flann/io/hdf5.h:95:错误:'hsize_t'没有在这个范围内声明/usr/local/include/flann/io/hdf5 .h:95: 错误:预期的 ';' 在“dimsf”/usr/local/include/flann/io/hdf5.h:96 之前:错误:未在此范围内声明“dimsf”/usr/local/include/flann/io/hdf5.h:99:错误: 预期的 ';' 在“space_id”/usr/local/include/flann/io/hdf5.h:100 之前:错误:预期为“;” 在'memspace_id' /usr/local/include/flann/io/hdf5.h:102 之前:错误:预期';' 在“dataset_id”/usr/local/include/flann/io/hdf5.h:106 之前:错误:未在此范围内声明“dataset_id”/usr/local/include/flann/io/hdf5.h:106:错误: 'get_hdf5_type' 没有在这个范围内声明/usr/local/include/flann/io/hdf5.h:106: 错误: '> 之前的预期主表达式 所以'H5Fclose'的声明必须可用/usr/local/include/flann/io/hdf5.h:在函数'void flann::load_from_file(flann::Matrix&, const std::string&, const std::string& )': /usr/local/include/flann/io/hdf5.h:132: 错误: 'herr_t' 未在此范围内声明 /usr/local/include/flann/io/hdf5.h:132: 错误:预期的 ';' 在“状态”/usr/local/include/flann/io/hdf5.h:133 之前:错误:未在此范围内声明“hid_t”/usr/local/include/flann/io/hdf5.h:133:错误: 预期的 ';' 在“file_id”/usr/local/include/flann/io/hdf5.h:134 之前:错误:未在此范围内声明“file_id”/usr/local/include/flann/io/hdf5.h:136:错误: 预期的 ';' 在“dataset_id”/usr/local/include/flann/io/hdf5.h:140 之前:错误:未在此范围内声明“dataset_id”/usr/local/include/flann/io/hdf5.h:140:错误:'file_id' 未在此范围内声明 /usr/local/include/flann/io/hdf5.h:140:错误:“H5Dopen”没有依赖于模板参数的参数,因此声明“H5Dopen”必须可用/usr/local/include/flann/io/hdf5.h:144:错误:预期';' 在“space_id”/usr/local/include/flann/io/hdf5.h:146 之前:错误:未在此范围内声明“hsize_t”/usr/local/include/flann/io/hdf5.h:146:错误: 预期的 ';' 在“dims_out”/usr/local/include/flann/io/hdf5.h:147 之前:错误:未在此范围内声明“space_id”/usr/local/include/flann/io/hdf5.h:147:错误:“dims_out”未在此范围内声明/usr/local/include/flann/io/hdf5.h:147:错误:“H5Sget_simple_extent_dims”没有依赖于模板参数的参数,* [src/test1.o] 错误 1

0 投票
0 回答
1393 浏览

c++ - opencv DMatch imgIdx 大于训练集的大小

我有 1000 个模式(我希望在特定场景中查找的图像),我当前的算法获取每个模式的描述符,将它们存储在一个向量中并使用该向量来训练 FlannBasedMatcher。

如果我用 k = 3 进行 knnMatch 我得到匹配的 imgIdx > 1000,这就是这个问题的原因(我试过 k = 2 并且有同样的问题),我找不到任何关于这个的东西,有人可以给我吗有这个吗?

更新:我添加了两倍的模式描述符,这就是为什么我得到高于 1000 的 imgIdx,现在我遇到的问题是,k == 2我得到一个距离为 0 的匹配和一个 > 0 的匹配,距离比为 0,我的理论是我得到距离 0,因为模式匹配与场景完全相同,但是当我在没有训练的情况下这样做时,我没有得到距离 0,知道为什么吗?

我在这里有另一个与此相关的问题。

更新

这基本上是我正在运行的代码

结果是:

注意:我刚刚发布了我的代码的较轻版本(理解我在做什么所需的代码),结果只是我得到的一部分(原始结果有 800 多行)

0 投票
0 回答
431 浏览

c++ - OPENCV中Flann knn搜索的运行时间是多少?

Flann knn搜索的运行时间是OpenCV多少?我知道对于索引构建,线性索引构建将需要O(N*M),如果我会找到q点附近的M点,M点属于N点。index building但我想知道和之间的区别knn_search。此外,为什么我们需要建立索引???