资源简介
一个cpp文件。
功能:利用opencv库对SIFT角点进行提取,并进行匹配,最后画出匹配示意图。程序逻辑简单,可以在内部自由改动。
代码片段和文件信息
#include
#include
#include “opencv2/core.hpp“
#include “opencv2/core/utility.hpp“
#include “opencv2/core/ocl.hpp“
#include “opencv2/imgcodecs.hpp“
#include “opencv2/highgui.hpp“
#include “opencv2/features2d.hpp“
#include “opencv2/calib3d.hpp“
#include “opencv2/imgproc.hpp“
#include“opencv2/flann.hpp“
#include“opencv2/xfeatures2d.hpp“
#include“opencv2/ml.hpp“
using namespace std;
using namespace cv;
using namespace xfeatures2d;
using namespace cv::ml;
int main(int argc char** argv)
{
Mat ab;
a = imread(“A.jpg“ 0); //读取要匹配的两张图像
b = imread(“B.jpg“ 0);
vector matches; //DMatch是用来描述匹配好的一对特征点的类,包含这两个点之间的相关信息
vector key1key2; //关键点容器
Mat cd; //sift描述子
Ptr sift = xfeatures2d::SIFT::create(0 3 0.04 10); //创建sift对象
BFMatcher matcher; //实例化一个暴力匹配器
sift->detectAndCompute(a noArray() key1 c); //给描述子赋值
sift->detectAndCompute(b noArray() key2 d);
matcher.match(c d matches); //匹配,数据来源是特征向量,结果存放在DMatch类型里面
//sort函数对数据进行升序排列
sort(matches.begin() matches.end()); //筛选匹配点,根据match里面特征对的距离从小到大排序
vector< D
相关资源
- 人脸识别(opencv_facedetect_v4l2)
- 基于opencv的模板匹配代码
- opencv图片扫描以及校正
- opencv手部轮廓识别以及轨迹识别
- opencv2 3D标定.cpp
- 基于opencv漫水填充算法综合
- opencv激光中心线的提取
- OpenCV Computer Vision Application Programming
- 基于图割的图像分割OpenCV+MFC实现
- 识别魔方颜色
- opencv版俄罗斯方块源码
- VS2013 / MFC + OpenCV 2.4.9实现视频的播放
- 粒子滤波器+目标跟踪的C++实现,VS2
- SIFT检测特征点及特征点描述
- 张平OpenCV算法精讲基于python和C++教材
- 虹膜识别开源代码OSIRIS4.1基于opencv
- YCbCr、混合高斯以及YCbCg肤色检测模型
- 光流法代码
- OpenCV打开摄像机显示在MFC窗口工程源
- 使用c++读取图像到二维矩阵
- 三维点云的圆柱面拟合
- MFC+OPENCV摄像机标定程序
- 基于特征脸的人脸识别MFC+OpenCV
- opencv图像处理MFC
- OPENCV人脸检测加角点检测并输出坐标
- FillHole.rar
- 道路提取算法 c++ opencv
- PCA代码实现详解
- opencv卡尔曼滤波
- SeamCarving opencv c++
评论
共有 条评论