windows下利用vs2015+opencv3.1.0+contrib3.1.0进行SIFT特征点检测(x64)

本文详细介绍了在Windows环境下,使用Visual Studio 2015和OpenCV 3.1.0(含contrib)库进行SIFT特征点检测的步骤。包括环境配置、库文件引用、代码实现及可能出现的问题解决方案。通过示例代码展示了如何检测和匹配图像的SIFT特征点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

opencv3将opencv2单一的库分成了两个部分:成熟的Opencv库以及opencv-contrib库,这篇博客利用的是已经编译好的opencv文件,编译完成的库文件见已上传资源部分https://download.youkuaiyun.com/download/weixin_41220184/11419344

(1)首先需要配置环境变量,新增一个系统变量,变量名字为OPENCV值为#opencv。

然后在用户变量path新增一个值#opencv/x64/vc14/bin。

(2)打开vs2015,新建一个工程并在属性管理器下面找到Debug|x64 cpp.x64.user鼠标右键--》属性--》vc++目录--》包含目录里面增加#opencv/include,#opencv/include/opencv,#opencv/include/opencv2三条记录

(3)在vc++目录--》库目录里面增加#opencv\x64\vc14\lib记录

(4)在连接器--》输入--》附加依赖项添加记录(#\opencv\x64\vc14\lib文件夹里面的lib文件),如下所示
opencv_aruco310d.lib
opencv_bgsegm310d.lib
opencv_bioinspired310d.lib
opencv_calib3d310d.lib
opencv_ccalib310d.lib
opencv_core310d.lib
opencv_datasets310d.lib
opencv_dnn310d.lib
opencv_dpm310d.lib
opencv_face310d.lib
opencv_features2d310d.lib
opencv_flann310d.lib
opencv_fuzzy310d.lib
opencv_highgui310d.lib
opencv_imgcodecs310d.lib
opencv_imgproc310d.lib
opencv_line_descriptor310d.lib
opencv_ml310d.lib
opencv_objdetect310d.lib
opencv_optflow310d.lib
opencv_photo310d.lib
opencv_plot310d.lib
opencv_reg310d.lib
opencv_rgbd310d.lib
opencv_saliency310d.lib
opencv_shape310d.lib
opencv_stereo310d.lib
opencv_stitching310d.lib
opencv_structured_light310d.lib
opencv_superres310d.lib
opencv_surface_matching310d.lib
opencv_text310d.lib
opencv_text310d.lib
opencv_text310d.lib
opencv_video310d.lib
opencv_videoio310d.lib
opencv_videostab310d.lib
opencv_xfeatures2d310d.lib
opencv_ximgproc310d.lib
opencv_xobjdetect310d.lib
opencv_xphoto310d.lib

最后进行特征点检测,代码如下:

#include <opencv\cv.hpp>
#include<opencv2\xfeatures2d.hpp>
#include <vector>
#include<iostream>
using namespace std;
using namespace cv;

void main()
{
    Mat srcImg1 = imread("C://Users//lenovo//Desktop//img1.jpg");
    Mat srcImg2 = imread("C://Users//lenovo//Desktop//img2.jpg");
    vector<KeyPoint> keypoints_1, keypoints_2;
    Ptr<cv::Feature2D> f2d = xfeatures2d::SIFT::create();
    //detect Keypoints
    f2d->detect(srcImg1, keypoints_1);
    f2d->detect(srcImg2, keypoints_2);
    // caculate descriptors
    Mat descriptors1, descriptors2;
    f2d->compute(srcImg1, keypoints_1, descriptors1);
    f2d->compute(srcImg2, keypoints_2, descriptors2);
    //Matching descriptors
    BFMatcher matcher;
    vector<DMatch> matches;
    matcher.match(descriptors1, descriptors2, matches);
    //绘制图
    Mat img_matches;
    drawMatches(srcImg1, keypoints_1, srcImg2, keypoints_2, matches, img_matches);
    imshow("【特征点匹配图", img_matches);
    imwrite("C://Users//lenovo//Desktop//img3.jpg", img_matches);
    waitKey(0);
}

说明:

(1)文件的路径需要自己设置

(2)如果程序运行过程中出现dll文件缺失,需要手动将#opencv\install\x64\vc14\bin内的dll文件复制到C:\Windows\SysWOW64(64位)或者C:\Windows\System32(32位)中保证程序正常运行。

原始图像:

                                                       img1

                                                                     img2

检测结果:

                                                                                                       img3

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值