opencv获取图片sift特征
利用opencv2.3来获取图片的sift特征,并输出到标准输出,可用重定向到文件。
#include<cstdio> #include"opencv2/opencv.hpp" #include"opencv2/nonfree/nonfree.hpp" using namespace cv ; int main(){ Mat m = imread("test.jpg"); SIFT sift; vector<KeyPoint> key_points; Mat descriptors; sift(m, Mat(), key_points, descriptors); printf("keypoints num:[%d]\n",key_points.size()); MatIterator_<float> start,end; start = descriptors.begin<float>(); end = descriptors.end<float>(); int vec_dem = 0; for(;start != end ;++start ){ ++ vec_dem ; if (vec_dem <128) printf("%f\t",(*start)); else if(vec_dem == 128){ printf("%f\n",(*start)); vec_dem = 0; } } return 0; }