博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SIFT特征检测与RANSAC过滤
阅读量:3978 次
发布时间:2019-05-24

本文共 1591 字,大约阅读时间需要 5 分钟。

 
/* *@function SiftDetect.cpp *@brief 对sift特征检测和匹配进行测试,并实现RANSAC算法进行过滤错配点 *@author ltc *@date 11:20 Saturday,28 November,2015 */#include
#include
#include
using namespace std;using namespace cv;//RANSAC算法vector
ransac(vector
matches,vector
queryKeyPoint,vector
trainKeyPoint);int main(int argc,char* argv[]){ //图像读取 Mat img1,img2; img1=imread("1 (2).jpg",CV_WINDOW_AUTOSIZE); img2=imread("2 (2).jpg",CV_WINDOW_AUTOSIZE); if(img1.empty()||img2.empty()) { return -1; } //sift特征提取 SiftFeatureDetector detector; vector
keyPoint1,keyPoint2; detector.detect(img1,keyPoint1); detector.detect(img2,keyPoint2); //cout<<"Number of KeyPoint1:"<
<
matches; vector
> matches_knn; matcher.match(des1,des2,matches); matcher.knnMatch(des1,des2,matches_knn,2);// cout<<"matches_knn.size:"<
<
match_knn; for(int i=0;i
matches_ransac=ransac(matches,keyPoint1,keyPoint2); Mat img_match,img_match_flann; drawMatches(img1,keyPoint1,img2,keyPoint2,matches_ransac,img_match); drawMatches(img1,keyPoint1,img2,keyPoint2,match_knn,img_match_flann); imshow("img_match",img_match); imshow("img_match_flann",img_match_flann); //for(size_t i=0;i
ransac(vector
matches,vector
queryKeyPoint,vector
trainKeyPoint){ //定义保存匹配点对坐标 vector
srcPoints(matches.size()),dstPoints(matches.size()); //保存从关键点中提取到的匹配点对的坐标 for(int i=0;i
inliersMask(srcPoints.size()); //匹配点对进行RANSAC过滤 homography = findHomography(srcPoints,dstPoints,CV_RANSAC,5,inliersMask); //RANSAC过滤后的点对匹配信息 vector
matches_ransac; //手动的保留RANSAC过滤后的匹配点对 for(int i=0;i

SIFT原理:

匹配结果:

你可能感兴趣的文章
MDK5(Keil for ARM) 工程建立时遇到的问题集锦
查看>>
Ubuntu下安装GTK+及Glade开发C应用界面
查看>>
assertion 'GTK_IS_WIDGET (widget)' failed的解决办法
查看>>
Ubuntu登录管理员账户时,输入密码后一直在登录界面循环
查看>>
Linux下的定时器以及POSIX定时器:timer_settime()
查看>>
POSIX定时器timer_create()以及线程中的gettid() 和pthread_self()
查看>>
C语言 回调函数
查看>>
c语言swap(a,b)值交换的4种实现方法
查看>>
C++小知识点
查看>>
【转载】zedboard中PL_GPIO控制(8个sw、8个leds)
查看>>
zedboard烧写程序到FLASH,用于QSPI Flash启动
查看>>
软件工程师,你必须知道的20个常识
查看>>
常用STL算法2_查找
查看>>
常用STL算法3_排序
查看>>
常用STL算法4_拷贝和替换
查看>>
STL综合案例
查看>>
O(logn)时间复杂度求Fibonacci数列
查看>>
Iterator_traits
查看>>
Zedboard中的SPI通信记录文档(已实现)
查看>>
Android 发布到google Play的app搜索不到问题的解决
查看>>