OpenCV--SIFT算法检测特征点

来源:互联网 发布:淘宝可以用花呗付款吗 编辑:程序博客网 时间:2024/05/21 08:31

代码选自:http://blog.csdn.net/zhaocj/article/details/42124473

SIFT算法是用来检测图像中特征点的,

代码如下:

opencv版本:2.4.9

#include "opencv2/opencv.hpp"#include "opencv2/imgproc/imgproc.hpp"#include "opencv2/features2d/features2d.hpp"#include "opencv2/nonfree/nonfree.hpp"using namespace cv;int main(){Mat img = imread("test.jpg");SIFT sift;//实例化SIFT类,如果代码改为SIFT sift(100);则只检测100个特征点vector<KeyPoint> key_points;//特征点Mat descriptors, mascara;Mat output_img;//输出图像矩阵sift(img, mascara, key_points, descriptors);//执行sift运算//在输出图像上绘制特征点drawKeypoints(img, //输入图像key_points, //特征点矢量output_img, //输出图像Scalar::all(-1), //绘制特征点的颜色, 随机颜色//以特征点为中心画圆,圆半径表示特征点的大小,直线表示特征点的方向DrawMatchesFlags::DRAW_RICH_KEYPOINTS);namedWindow("SIFT");imshow("SIFT",output_img);waitKey(0);return 0;}


运行结果如下:



原创粉丝点击