opencv SURF、SIFT的使用
来源:互联网 发布:夕又米的淘宝店 编辑:程序博客网 时间:2024/05/21 10:03
#include <opencv2/core/core.hpp>#include <opencv2/highgui/highgui.hpp>#include <opencv2/nonfree/features2d.hpp>#include <opencv2/legacy/legacy.hpp>int main(){ cv::Mat ima1=cv::imread("D:\\DEMO\\penpal.jpg"); cv::Mat ima2=cv::imread("D:\\DEMO\\res.jpg"); // 检测surf特征点 cv::vector<cv::KeyPoint> kp1 , kp2 ; /*SurfFeatureDetector detector( 400 ) ; detector.detect( image1 , kp1 ); detector.detect( image2 , kp2 );*/ cv::SiftFeatureDetector sift( 2500 ); sift.detect(ima1 , kp1); sift.detect(ima2 , kp2); //显示surf检测后的结果 cv::Mat dstimg2; drawKeypoints( ima2 , kp2 , dstimg2 ); imshow("image2 keypoints" , dstimg2 ); cv::Mat dstimg1; drawKeypoints( ima1 , kp1 , dstimg1 ); imshow("image1 keypoints" , dstimg1 ); //输出surf检测的结果 cv::vector<cv::KeyPoint> :: iterator kpCounts ; for( kpCounts = kp2.begin() ; kpCounts != kp2.end() ; kpCounts++ ) { std::cout<<"angle:"<<kpCounts->angle<<"\t" << kpCounts->class_id<<"\t"<<kpCounts->octave<<"\t"<< kpCounts->pt<<"\t"<<kpCounts->response<<"\n"; } // 描述surf特征点 cv::SurfDescriptorExtractor surfDesc ; cv::Mat descriptros1 , descriptros2 ; surfDesc.compute( ima1 , kp1 , descriptros1 ); surfDesc.compute( ima2 , kp2 , descriptros2 ); // 计算匹配点数 cv::BruteForceMatcher<cv::L2<float>>matcher ; cv::vector<cv::DMatch> matches ; matcher.match( descriptros1 , descriptros2 , matches ); cv::Mat imageMatches; drawMatches( ima1 ,//输入图片1 kp1 ,//输入图片1的提取的特征点 ima2 , //输入图片2 kp2 , //输入图片2的提取出的特征点 matches ,//使用match函数获得的匹配特征点 imageMatches ,//输出图片 cv::Scalar(255,0,0)//画线颜色 ); imshow("image2" , imageMatches); cv::waitKey( 0 ); return 0;}
0 0
- opencv SURF、SIFT的使用
- opencv中的sift、surf遇到的问题
- 【OpenCV】SURF的使用
- OpenCV3如何使用SIFT和SURF Where did SIFT and SURF go in OpenCV 3?
- opencv中的surf和sift
- OpenCv的sift surf orb等特征点检测
- BoW(SIFT/SURF/...)+SVM/KNN的OpenCV 实现
- SURF、SIFT、Fast角点检测的代码(opencv)
- 使用RANSAC提纯SIFT和SURF特征点,达到鲁棒匹配的效果(OpenCV 2.4.13下,源码)
- 【opencv】 特征点检测 sift和surf
- SIFT和SURF,及OpenCV实现
- Python-OpenCV:sift(),SURF() 特征提取
- OpenCV SIFT/SURF图片拼接融合
- opencv学习——SIFT和SURF
- opencv 中sift 的使用
- SIFT和SURF的匹配
- Sift与Surf的区别
- SIFT & SURF
- 第6周项目3——人数不定的工资类
- 感想
- java集合框架面试
- 第六周项目二
- 学习写好一封简历
- opencv SURF、SIFT的使用
- [Codeforces 460E][SCOI 2015集训]Roland and Rose(暴力乱搞)
- 第六周项目四——成员函数,友元函数和一般函数有区别
- CSS 颜色代码大全
- 第六周项目一 深复制体验
- 共享内存的常用函数原理剖析
- 【转】深入 char * ,char ** ,char a[ ] ,char *a[] 内核
- 第四课:方法和事件
- 第六周项目5 友元类