【opencv3.1.0】opencv3.1.0配置contrib3.1.0+vs++2013(64位)+SIFT程序测试

本人配置的是vs++2013(64位)+opencv3.1.0+contrib3.1.0

1:配置所需的文件:

opencv3.1.0:下载方式可以从官网:点击打开链接    此时解压安装得到两个文件夹build 和source,其中source才是后面我们需要的,build是已编译的没有用,我们得重新编译。

                        也可以从GitHub中下载对应的版本opencv源码:点击打开链接    这里下载只要源码source,可以自己建个build文件,将编译后的文件放到build中,亲测建议在GitHub中下载源码。(我是采用第二种方式在GitHub中下载的)

contrib3.1.0:也是在GitHub中下载:点击打开链接             注意:在GitHub中下载的时候要输入需要的版本,然后再下载

如下图所示:


cmake:点击打开链接

cmake编译器下载版本没有要求,一般只要高于3.1就行,我这里编译的是用3.6.0(但是要下载64位,因为我配置的是64位的),下载后解压,点开bin文件夹,点击cmake-gui-exe就是编译的界面了。如下图:


打开cmake,有两个地方,1:是放下载的opencv3.1.0的源码source,2:是编译后放置的文件夹build

vs++2013:这个下载安装我就不用说了


2:cmake 编译

a:在cmake界面1和2处分别放入对于的文件路径:如上图就不重复了

b:点击configure,此时会有大概10分钟中,这个完全看网速,如果发现失败提示,则是因为网速太慢下载一些文件终端导致编译失败可以重复多次,直到成功为止。如果实在不行就直接下载所需文件到指定文件夹中(cmake中主要需要的是IPP以及ffmpeg的一些东西。如果下载速度较慢或者下载完成后MD5校验错误的话,需要重新在别处下载。IPP可以在http://sourceforge.net/projects/opencvlibrary/files/3rdparty/ippicv/下载。注意是windows_20141027的版本。而ffmpeg我是直接使用CMake下载的,因而就不提供第三方的下载地址了。这些包最后都应该放到D:\opencv-3.0.0\3rdparty底下对应的目录,最好的方法是先让CMake下一小会儿,然后直接将完整的文件到对应的目录下进行替换)

c:如果有configure done!表示编译成功,则进行下一步,编译扩展模块contrib3.1.0,

在search中搜索OPENCV_EXTERA_MODULES_PATH,则会选中此目录,然后再后面的value中添加你自己解压contrib的文件路径中的modules路径,如*********\opencv_contrib\modules.完成之后点击左下角的configure进行第二次编译,这次编译比较快,显示比较快,显示configure成功后,再点击generate,如果成功则会发现在原来自己建的编译文件夹build中多了很多文件。至此cmake编译结束

3:vs++2013中编译

a:打开build文件中找到OpenCV.sln打开,则进入vs++环境中,因为我是编译debug64位,则选择对应的位数和debug或者release。然后选择重新生成解决方案。这个过程会有大概帮个小时左右。我当时是编译成功100多个,失败了3个,但后来发现并不影响。

b:找到CMakeTargets中的INSTALL,然后右键选择“仅限于项目”————“仅生成INSTALL(B),完成之后会在build文件夹中发现install文件夹,至此编译完成。

4:配置环境

a:用户环境变量——找到path点击——编辑——新建——将D:\opencv-3.0.0\build\install\x64\v12\bin

这里面的x64表示64位,v12表示vs++2013

b: 系统环境变量同上操作

5:配置vs++2013——opencv工程属性,

a:新建一个工程,这里就不讲了

b:首先选择debug64位,没有就新建x64,则在属性管理器发现debug64,右键——添加新项目属性边(避免后面每次都配置工程属性,以后就每次直接添加属性表即可)——起个名字opencv_debug, 则会在前一步建的工程中多了一个属性边opencv_debug.pros. 如下图:

新建工程属性表后如下:


如果下次再新建工程:则只需要debug64右键添加现有属性表opencv_debug.pops即可,就不用每次配置

c:右键opencv_debug.pops——属性——进行配置

可执行文件目录:D:\opencv3\build\install\x64\vc12\bin
包含目录:
D:\opencv3\build\install\include
D:\opencv3\build\install\include\opencv
D:\opencv3\build\install\include\opencv2
库文件目录:D:\opencv3\build\install\x64\vc12\lib 

库文件目录:D:\opencv3\build\install\x64\vc12\

D:\opencv3\build\install\x64\vc12\staticlib

添加附加依赖项:(我这里由于是配置的debug库,所以310后面都有一个d,如果配置的是release库则没有d。其中310表示opencv3.1.0版本,必须版本一致,否则后面程序运行将无法打开这些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_tracking310d.lib
opencv_ts310d.lib
opencv_video310d.lib
opencv_videoio310d.lib
opencv_videostab310d.lib
opencv_xfeatures2d310d.lib
opencv_ximgproc310d.lib
opencv_xobjdetect310d.lib
opencv_xphoto310d.lib
ippicvmt.lib

至此配置完成!

6:配置环境中常见的错误:

a:调试时出现无法找到opencv_****.dll

解决办法:将opencv3\build\x64\vc12\bin中的所有******.dll的文件复制到C:\Windows\SysWOW64 (64位) 和C:\Windows\System32  (32位)最好全部都复制过去。

7:contrib库配置完代码测试:SIFT算法

#include <iostream>
#include <opencv2/opencv.hpp>  //头文件
#include <opencv2/xfeatures2d.hpp>
using namespace cv;  //包含cv命名空间
using namespace std;

int main()
{
	//Create SIFT class pointer
	Ptr<Feature2D> f2d = xfeatures2d::SIFT::create();
	//读入图片
	Mat img_1 = imread("**********\\1.jpg");
	Mat img_2 = imread("***********\\2.jpg");
	resize(img_1, img_1, Size(400, 500), (0, 0), (0, 0), INTER_LINEAR);
	resize(img_2, img_2, Size(400, 500), (0, 0), (0, 0), INTER_LINEAR);
	//Detect the keypoints
	vector<KeyPoint> keypoints_1, keypoints_2;
	f2d->detect(img_1, keypoints_1);
	f2d->detect(img_2, keypoints_2);
	//Calculate descriptors (feature vectors)
	Mat descriptors_1, descriptors_2;
	f2d->compute(img_1, keypoints_1, descriptors_1);
	f2d->compute(img_2, keypoints_2, descriptors_2);
	//Matching descriptor vector using BFMatcher
	BFMatcher matcher;
	vector<DMatch> matches;
	matcher.match(descriptors_1, descriptors_2, matches);
	//绘制匹配出的关键点
	Mat img_matches;
	drawMatches(img_1, keypoints_1, img_2, keypoints_2, matches, img_matches);
	imshow("【match图】", img_matches);
	//等待任意按键按下
	waitKey(0);
}


效果图如下:

更多细节详情:https://www.cnblogs.com/jliangqiu2016/p/5597501.html

http://blog.csdn.net/github_28833431/article/details/48226291







  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值