ORB 特征检测与匹配
#include <opencv2/opencv.hpp>
#include <opencv2/xfeatures2d.hpp>
#include <opencv2/xfeatures2d/nonfree.hpp>
#include <iostream>using namespace cv::xfeatures2d;
using namespace std;
using namespace cv;
// 计算图像的ORB特征及匹配
cv::Mat cacORBFeatureAndCompare(cv::Mat srcImage1,cv::Mat srcImage2)
{CV_Assert(srcImage1.data != NULL && srcImage2.data != NULL);// 转换为灰度cv::Mat grayMat1, grayMat2;cv::cvtColor(srcImage1, grayMat1, CV_RGB2GRAY);cv::cvtColor(srcImage2, grayMat2, CV_RGB2GRAY);// 关键点检测std::vector<KeyPoint> keyPoints1, keyPoints2;// 描述特征向量cv::Mat descriptorMat1, descriptorMat2;// 初始化ORB检测描述子cv::Ptr<Feature2D> orb = cv::ORB::create();// 计算兴趣点orb->detectAndCompute(grayMat1, Mat(), keyPoints1, descriptorMat1,false);orb->detectAndCompute(grayMat2, Mat(), keyPoints2, descriptorMat2,false);// 特征匹配BFMatcher matcher(NORM_HAMMING);std::vector<DMatch> mathces;matcher.match(descriptorMat1, descriptorMat2, mathces);// 绘制匹配点集Mat matchMat;drawMatches(srcImage1, keyPoints1,srcImage2, keyPoints2, mathces, matchMat);//cv::imshow("Mathces", matchMat);return matchMat;
}
int main()
{// 读取源图像及待匹配图像cv::Mat srcImage1 =cv::imread("..\\images\\hand1.jpg", 1);if (srcImage1.empty())return -1;cv::Mat srcImage2 =cv::imread("..\\images\\hand3.jpg", 1);if (srcImage2.empty())return -1;cv::Mat matchMat = cacORBFeatureAndCompare(srcImage1, srcImage2);cv::imshow("matchMat", matchMat);cv::waitKey(0);return 0;
}
转载:http://blog.csdn.net/zhuwei1988
ORB 特征检测与匹配相关推荐
- SLAM中的 ORB特征检测与匹配(理论篇)
<SLAM十四讲>视觉里程计第一部分的实践便是ORB特征检测 下面来讲讲ORB的理论: ORB算法分为两部分,第一部分是特征提取算法即FAST算法,第二部分是特征描述子BRIEF,BRIE ...
- 数字图像处理学习笔记(一):特征检测和匹配概述
数字图像处理学习笔记(一):特征检测和匹配概述 参考博客: 特征点的匹配 SIFT特征详解 数字图像处理学习笔记(二):SIFT(尺度不变特征变换)算法 1.特征点概述 如何高效且准确的匹配出两个不同 ...
- Opencv实现Sift、Surf、ORB特征提取与匹配
在opencv3中,这三个算子都转移到一个名为xfeature2d的第三方库中,而在opencv2中这三个算子在nonfree库中. 关于在vs下配置opencv可参考我转载的另外一篇文章.注意版本号 ...
- OpenCV基础(23)特征检测与匹配
图像的8x8像素部分被考虑,并将这个 8x8 框进一步划分为 4 个块,每个块为 4x4 维度.在每个 4x4 块内,图像梯度以向量的形式表示.通过搜索最独特或不同的特征在图像中找到关键点.这里,Ke ...
- 基于OpenCV&ORB和特征匹配的双视频图像拼接(源码&部署教程)
1.双视频拼接效果展示 2.视频演示 [项目分享]Python基于OpenCV&ORB和特征匹配的双视频图像拼接(源码&部署教程)_哔哩哔哩_bilibili 3.背景 随着汽车电子和 ...
- Python基于OpenCV&ORB和特征匹配的双视频图像拼接(源码&部署教程)
1.双视频拼接效果展示 2.视频演示 [项目分享]Python基于OpenCV&ORB和特征匹配的双视频图像拼接(源码&部署教程)_哔哩哔哩_bilibili 3.背景 随着汽车电子和 ...
- ORB-SLAM2从理论到代码实现(三):ORB特征提取和匹配理论和代码详解
1. 理论知识 特征点由关键点(Key-point)和描述子(Descriptor)两部分组成.ORB特征点(Oriented FAST and Rotated BRIEF)是由Oriented FA ...
- 特征检测与匹配,测试8点法求取基础矩阵F(三维重建task1-3)
特征检测与匹配(三维重建task1-3) #include <math/matrix_svd.h> #include "math/matrix.h" #include ...
- 3D视觉(四):ORB特征提取与匹配
3D视觉(四):ORB特征提取与匹配 根据维基百科的定义,图像特征是一组与计算任务相关的信息,计算任务取决于具体的应用.简而言之,特征是图像信息的另一种表达形式. 数字图像在计算机中以灰度值矩阵的方式 ...
最新文章
- 一文学会动态规划解题技巧
- 边缘AI是内存技术发展的催化剂
- 面试中经常出现的算法2(整理)
- linux+crontab执行php,如何使用Linux的Crontab执行PHP脚本
- step3 . day5 数据结构之线性表 栈和队的应用-球钟问题
- Spring配置文件中bean标签的scope属性
- JS数组与对象的遍历方法大全
- 条件编译指令:#if,#endif
- opencv查找边界_数据边界:查找差距,孤岛等
- 安卓自定义相机录像功能全解(不调用系统相机)
- 0% [正在连接 cn.archive.ubuntu.com (2001:67c:1562::19)]关于其连接不上的问题:
- JavaScript实现模糊推荐的input框(类似百度搜索框)
- 【车流量计数】基于matlab光流场交通汽车检测跟踪【含Matlab源码 504期】
- 强大的诺顿扼杀了alexa工具条
- 网易面试题,小易沉迷游戏
- 作为APIcaller识别发票信息
- 软件测试-黑盒测试,白盒测试,灰盒测试
- # unity shader 后期轮廓(更新中)
- 【iOS】—— RunLoop详解
- picoCTF Web1