FLANN C++ 使用
FLANN
FLANN 库,包含 KNN 算法。众多工程(例如 OpenCV)使用了 FLANN,这里单独介绍这个库,方便以后单独使用。
由官方 Latex 编译的文档链接,免费的。
安装
ubuntu
下直接通过命令行
sudo apt install libflann1.8 libflann1.8-dev
HDF5
FLANN 库例程使用了 HDF5 库,但是引用有些问题。编译时,头文件路径需要包含 /usr/include/hdf5/serial/
。需要链接库 hdf5_serial_hl
和 hdf5_serial
。
使用
数据类型
基本的数据类型是Matrix
。参考其构造函数,只需要传入连续的数据块并指定类型,行,列即可。传入 OpenCV 或者 Eigen 中的矩阵的指针。
Matrix(T* data_, size_t rows_, size_t cols_, size_t stride_ = 0) :Matrix_(data_, rows_, cols_, flann_datatype_value<T>::value, stride_){if (stride==0) stride = sizeof(T)*cols;}
FLANN::Index
// 构造函数
Index(const Matrix<ElementType>& features, const IndexParams& params, Distance distance = Distance() )// Example
Index<L2<float> > index(dataset, flann::KDTreeIndexParams(4));
由 L2<float>
指定距离函数和类型。构建时传入数据集和参数。关于 Distance 和 Parameter 请参考官方文档。
features
维度是 (N, C),且是 RowMajor
ElementType* getPoint(size_t point_id)
方法根据point_id
返回指向数据点的指针。point_id
按照dataset
添加的顺序确定。
index.getPoint(0) // 指向(0, 0)
index.getPoint(0)+1 // 指向(0, 1)
index.getPoint(1) // 指向(1, 0)
KNN
使用函数 flann::Index::knnSearch
,具体使用方法参考 Example。配置搜索的线程数,精度参考 SearchParameters
参数。
FLANN 还有 RadiusSearch 和 KMeans 算法,参考官方文档即可。
FLANN C++ 使用相关推荐
- PCL-1.8.1从源码搭建开发环境二(FLANN库的编译)
原文首发于微信公众号「3D视觉工坊」,PCL-1.8.1从源码搭建开发环境二(FLANN库的编译) 首先,快速近似最近邻搜索库FLANN-Fast Library for Approximate Ne ...
- FLANN特征匹配(Python)
输入图片 算法输出图 可以看到,这里的算法效果比之前的ORB算法要好很多了! 可以点击来访问一下,就知道差别了~ ORB特征匹配(python) 代码 import cv2 from matplotl ...
- 学习OpenCV——Surf(特征点篇)flann快速最近邻搜索算法
Surf(Speed Up Robust Feature) Surf算法的原理 ...
- 【计算机视觉】OpenCV的最近邻开源库FLANN
FLANN介绍 FLANN库全称是Fast Library for Approximate Nearest Neighbors,它是目前最完整的(近似)最近邻开源库.不但实现了一系列查找算法,还包含了 ...
- OpenCV之feature2d 模块. 2D特征框架(2)特征描述 使用FLANN进行特征点匹配 使用二维特征点(Features2D)和单映射(Homography)寻找已知物体 平面物体检测
特征描述 目标 在本教程中,我们将涉及: 使用 DescriptorExtractor 接口来寻找关键点对应的特征向量. 特别地: 使用 SurfDescriptorExtractor 以及它的函数 ...
- 使用FLANN进行特征点匹配
目标 在本教程中我们将涉及以下内容: 使用 FlannBasedMatcher 接口以及函数 FLANN 实现快速高效匹配( 快速最近邻逼近搜索函数库(Fast Approximate Nearest ...
- OpenCV SURF FLANN匹配单应性的实例(附完整代码)
OpenCV SURF FLANN匹配单应性的实例 OpenCV SURF FLANN匹配单应性的实例 OpenCV SURF FLANN匹配单应性的实例 #include <iostream& ...
- OpenCV SURF FLANN匹配的实例(附完整代码)
OpenCV SURF FLANN匹配的实例 OpenCV SURF FLANN匹配的实例 OpenCV SURF FLANN匹配的实例 #include <iostream> #incl ...
- OpenCV FLANN在数据集中搜索查询图片的实例(附完整代码)
OpenCV FLANN在数据集中搜索查询图片的实例 OpenCV FLANN在数据集中搜索查询图片的实例 OpenCV FLANN在数据集中搜索查询图片的实例 #include <iostre ...
- OpenCV与FLANN的功能匹配
OpenCV与FLANN的功能匹配 与FLANN的功能匹配 目标 理论 代码 结果 与FLANN的功能匹配 目标 在本教程中,您将学习如何: 使用cv :: FlannBasedMatcher界面,以 ...
最新文章
- NetCore 2.0 MVC入门之 Startup 配置
- 带Spring Boot的GWT
- python tkinter 窗口禁止编辑_python tkinter禁用文本窗口中的换行
- 纽交所发言人就“GME事件”表态:采用先进技术监督市场
- POJ3178 计算几何+DP
- 华为云服务器怎样让网站显示不出来,云服务器网页不显示图片
- RTC硬件时钟设置修改【转】
- Delphi 与 DirectX 之 DelphiX(94): TDIB.DrawAdditive();
- Mac 基本教程和vim + Awesome Mac
- Mac词典扩充、本地化
- 知识付费平台现状:供应商、购买者议价能力较
- python3 类中方法的调用
- java类型转换异常处理_类型转换中的错误处理
- python:实现base64加密和base64解密算法(附完整源码)
- 在Word中上下两张表格合并不了的解决办法
- flash 在firebox/IE中 提示安装 浏览器是否有flash插件
- 最新版NASA官方网站数据下载流程——以MODIS数据演示为例
- Effective JavaScript Item 23 永远不要修改arguments对象
- uni-app实现PDA的离线语音(二)MT-TTS离线语音合成插件下载及集成
- 推荐一些能提升工作幸福度的小工具
热门文章
- 免费的天气API接口
- VideoPose3D:基于视频的3D人体关键点检测
- 将汉子转化为拼音的js插件
- Android Studio 连接不上华为手机
- jzoj 1594: 【USACO】The Chivalrous Cow(骑士牛)( 待加入)
- 【Android 10 源码】healthd 模块 HAL 1.0 分析
- 如何关闭windows电脑里的休眠
- 诺基亚WP7手机或10月发布 搭载新版系统
- ios 页面即将消失_20个即将推出的页面介绍及如何正确处理它们
- 【深度学习】ONNX 模型文件修改节点的名称,修改输入名称,修改输出名称