资源简介
该程序调用opencv库函数实现的SIFT特征点提取及匹配,其中有两组图片以供测试。程序配置库为opencv2.4.9+vs2013。
代码片段和文件信息
// sift.cpp : 定义控制台应用程序的入口点。
//
#include “stdafx.h“
#include
#include
#include
#include “opencv2/nonfree/features2d.hpp“//sift 函数
using namespace std;
using namespace cv;
int _tmain(int argc _TCHAR* argv[])
{
CV_EXPORTS_W bool initModule_nonfree();//初始化模块,使用SIFT或SURF时用到
PtrriptorMatcher> siftMatcher = DescriptorMatcher::create(“BruteForce“);//创建特征匹配器暴力匹配(简单匹配)
SiftFeatureDetector siftDetector;//创建SIFT特征检测器
//读入图像
Mat img1 = imread(“p0.png“);
Mat img2 = imread(“p1.png“);
if (img1.empty() || img2.empty())
printf(“picERROR“);
/*特征点检测*/
vector keypoints1 keypoints2;
siftDetector.detect(img1 keypoints1);
siftDetector.detect(img2 keypoints2);
cout << “Number of detected keypoints img1:“ << keypoints1.size() << “points.--- img2:“
<< keypoints2.size() << “points.“ << endl;
/*在图片上显示特征点*/
Mat imgkey1 imgkey2;
drawKeypoints(img1 keypoints1 imgkey1 Scalar::all(-1));
drawKeypoints(img2 keypoints2 imgkey2 Scalar::all(-1));
imshow(“box“ imgkey1);
imshow(“box_in_scene“ imgkey2);
/*特征向量提取*/
SiftDescriptorExtractor siftExtractor;
Mat descriptor1 descriptor2;
siftExtractor.compute(img1 keypoints1 descriptor1);
siftExtractor.compute(img2 keypoints2 descriptor2);
cout << “Number of Descriptors1:“ << descriptor1.rows << endl;
cout << “Number of Descriptors2:“ << descriptor2.rows << endl;
cout << “Demension of sift Descriptors:“ << descriptor1.cols << endl;
/*特征点匹配*/
vector matches;
siftMatcher->match(descriptor1 descriptor2 matches Mat());
/*在图片上显示匹配结果*/
Mat imgmatches;
drawMatches(img1
keypoints1
img2
keypoints2
matches
imgmatches
Scalar::all(-1)
Scalar::all(-1)
vector()
DrawMatchesFlags::NOT_DRAW_SINGLE_POINTS);
imshow(“Match Results:“ imgmatches);
waitKey(0);
return 0;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 86528 2018-10-20 14:24 sift\Debug\sift.exe
文件 531352 2018-10-20 14:24 sift\Debug\sift.ilk
文件 1469440 2018-10-20 14:24 sift\Debug\sift.pdb
文件 3080192 2018-10-20 14:23 sift\ipch\sift-ab158830\sift-4d88d322.ipch
文件 903542 2018-10-20 14:17 sift\sift\a0.png
文件 902056 2018-10-20 14:18 sift\sift\a1.png
文件 1748 2018-10-20 14:24 sift\sift\Debug\sift.log
文件 287344 2018-10-20 14:24 sift\sift\Debug\sift.obj
文件 1638400 2018-10-20 14:20 sift\sift\Debug\sift.pch
文件 1270 2018-10-20 14:24 sift\sift\Debug\sift.tlog\cl.command.1.tlog
文件 9378 2018-10-20 14:24 sift\sift\Debug\sift.tlog\CL.read.1.tlog
文件 700 2018-10-20 14:24 sift\sift\Debug\sift.tlog\CL.write.1.tlog
文件 2004 2018-10-20 14:24 sift\sift\Debug\sift.tlog\li
文件 4404 2018-10-20 14:24 sift\sift\Debug\sift.tlog\li
文件 366 2018-10-20 14:24 sift\sift\Debug\sift.tlog\li
文件 155 2018-10-20 14:24 sift\sift\Debug\sift.tlog\sift.lastbuildstate
文件 10973 2018-10-20 14:20 sift\sift\Debug\stdafx.obj
文件 420864 2018-10-20 14:24 sift\sift\Debug\vc120.idb
文件 872448 2018-10-20 14:24 sift\sift\Debug\vc120.pdb
文件 468778 2018-10-20 14:19 sift\sift\p0.png
文件 403011 2018-10-20 14:19 sift\sift\p1.png
文件 1489 2018-10-20 13:56 sift\sift\ReadMe.txt
文件 2001 2018-10-20 14:24 sift\sift\sift.cpp
文件 5367 2018-10-20 14:20 sift\sift\sift.vcxproj
文件 1311 2018-10-20 13:56 sift\sift\sift.vcxproj.filters
文件 210 2018-10-20 13:56 sift\sift\stdafx.cpp
文件 234 2018-10-20 13:56 sift\sift\stdafx.h
文件 236 2018-10-20 13:56 sift\sift\targetver.h
文件 12779520 2018-10-20 14:24 sift\sift.sdf
文件 958 2018-10-20 13:56 sift\sift.sln
............此处省略11个文件信息
- 上一篇:getif-2.3.1
- 下一篇:硬件课程设计-频率发生器
相关资源
- 基于SIFT算法的图像拼接.rar
- opencv4.1.1+contrib完整版.zip
- OpenCV3.3+contrib-master,VS2013编译后的l
- OpenCV2.4.10官方完整版
- 基于OpenCV3.0的手势识别.rar
- 基于opencv的车牌识别源码
- 基于SIFT特征描述子的立体匹配算法
- Firmware_F103 V1.3.rar
- VS2017+opencv写的火焰检测带检测视频哦
- opencv图像处理方法总结.pdf
- bumblebee双目标定/伪彩色深度图/鼠标测
- OpenCV中对图片进行灰度处理
- 论文研究-改进的基于SIFT和RANSAC的图像
- 车牌识别系统原创+详细注释版+少函数
- 张正友相机标定自己编写calibratie函数
- Ubuntu16.04中配置Qt5.9.1和OpenCV3.4.0过程
- opencv彩色视频以灰度格式和极坐标格
- 基于open cv的人脸识别
- opencv内置各种分类器
- 车道检测VS2015+OPENCV3.3
- OpenCV人脸识别给头像带上圣诞帽工程
- OpenCV计算物体重心坐标代码以及工程
- opencv获取摄像头ID和名称
- opencv实现PCASift算法
- opencv中的cxcore200.dll
- Opencv3编程案例详解源码
- 基于图像的火柴和钢筋数量检测
- 基于opencv的交通标志识别
- opencv自带SVM分类器使用程序
- OpenCV使用随机森林实现对图像分类
评论
共有 条评论