从官网下载了opencv2.4.2 , 是exe文件,直接安装。
已经有build好的版本,vs2010可以直接用。也可以用cmake重新做。记得build好的版本,好像无法跟踪到内部,
我用cmake做了vs2010的sln,然后编译了64位版本。
修改了c++的相应设置,include目录,lib目录,input相应的lib。
编译以前写的几个demo。一个有问题。是cv::kmeans函数的变动引起的。
下面来试下。
cv namespace下没有sift特征算子。有fast,orb。
看到有文章说2.4开始有一个nonfree 库,发现默认情况下opencv.hpp没有把它包括进去。
include 进来 nonfree.hpp后,有sift了。还要input对应的lib。
代码如下:
cv::Mat img=cv::imread(imgpath+"1.jpg",0);
cv::imshow(imgpath,img);
cv::waitKey(0);
//sift特征
cv::SiftFeatureDetector detector;
std::vector<cv::KeyPoint> keypoints;
detector.detect(img, keypoints);
// Add results to image and save.
cv::Mat output;
cv::drawKeypoints(img, keypoints, output);
cv::imshow(imgpath,output);
cv::waitKey(0);
return 0;
还没有把sift特征的强度和方向画出来。
本文介绍了使用 OpenCV 2.4.2 版本进行 SIFT 特征检测的过程。作者通过下载并安装 OpenCV 2.4.2,使用 CMake 构建了 VS2010 的解决方案,并编译了 64 位版本。在遇到 cv::kmeans 函数变动问题后,通过引入 nonfree 库解决了 SIFT 特征算子缺失的问题,并展示了如何使用 SIFT 检测图像特征。

被折叠的 条评论
为什么被折叠?



