OpenCV3.1+VS2015+WIN10 环境搭建总结

1. opencv3.1官网版
    opencv3.1官网下载提取后会得到两个文件夹:build和sources。 build里的内容是官网已经编译好的。
 

(1)我的环境介绍:
操作系统:Windows 10 64位

IDE: Microsoft Visual Studio Professional 2015

OpenCV: OpenCV 3.1.0 for windows(下载地址:http://opencv.org/


(2)
安装好VS和OpenCV,OpenCV的安装其实就是把官方下载的exe解压的自己制定目录(如我的实际地址,D:\opencv)
(3)配置OpenCV的 相关环境变量。安装完成后在系统的环境里找到“Path”,编辑并在后边加入自己的OpenCV目录,如:D:\opencv\build\x64\vc14\bin

(4)新建一个C++的win32控制台项目
 
 

(5)修改项目的相关配置。
具体为:项目--属性-- 配置属性-- VC++ 目录

--Include path(包含目录):
D:\opencv\build\include
D:\opencv\build\include\opencv
D:\opencv\build\include\opencv2

--Lib path(库目录):
D:\opencv\build\x64\vc14\lib


--链接器--输入--附加依赖项:
opencv_world310d.lib



(6),完成上述步骤,找一个小项目验证一下环境是否可用。
/*************************************************************************************

  1. //显示图像文件  
  2. #include <opencv2/opencv.hpp>  
  3. using namespace std;  
  4.   
  5. #pragma comment(linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"")  
  6.   
  7. int main()  
  8. {  
  9.     const char *pstrImageName = "aaa.JPG";  
  10.     const char *pstrWindowsTitle = "OpenCV第一个程序";  
  11.   
  12.     //从文件中读取图像  
  13.     IplImage *pImage = cvLoadImage(pstrImageName, CV_LOAD_IMAGE_UNCHANGED);  
  14.   
  15.     //创建窗口  
  16.     cvNamedWindow(pstrWindowsTitle, CV_WINDOW_AUTOSIZE);  
  17.   
  18.     //在指定窗口中显示图像  
  19.     cvShowImage(pstrWindowsTitle, pImage);  
  20.   
  21.     //等待按键事件  
  22.     cvWaitKey();  
  23.   
  24.     cvDestroyWindow(pstrWindowsTitle);  
  25.     cvReleaseImage(&pImage);  
  26.     return 0;  
*****************************************************************************************/
如何图片可以正常出现在小窗口中的,则环境搭建好了。

 
需要注意的几点:
<1>
如果依赖项中配 opencv_world310.lib,模式为debug,就会
LNK1104: 无法打开文件opencv_world310.lib。这是附加依赖项配置的有问题。
opencv_world310d.lib后面的小d对应debug模式,没有d对应release模式。所以如果模式为debug,需要将 opencv_world310.lib换成 opencv_world310d.lib。

<2>图片的存放位置,需要将图片放到项与生成的可执行文件在同一个目录。

 如果不想将图片放到可执行文件同目录,可以在代码中给定绝对路径。如下,注意要用\\进行分割
    char *srcImageFile = "D:\\ccc.jpg";
 也可以通过参数进行传入,通过
项目属性页设置





2. opencv3.1自编译版
    opencv3.x版本与opencv2.x版本在模块的构成上有很大的差别。 opencv3.1将人脸识别、matlab调用、RGB加工、深层神经网络等内容放到了 OpenCV_contrib库中,想使用其中的功能,则需要自行编译。

(1)准备
 vs2015,win10操作系统,opencv3.1我们不需要变动。除此之外,我们还需要准备以下内容。
 <1>CMake, 这里我选用cmake-3.4.3-win32-x86版本。
 下载地址:http://download.csdn.net/detail/haoyizhi/9837313
 注意:之所以使用cmake-3.4.3-win32-x86这个版本,是因为我在之后使用vs2015生成解决方案时,如果
cmake版本过高,会出现 {errorMSB6006:"cmd.exe" 已退出,代码为:-1073741571}这个错误。我尝试了3.4以上到目前最新的所有版本都出现了这个问题,只有3.4.3这个版本可以正常通过。

 补充:cmake3.6版本开始有x86与x64之分,要根据自己的操作系统来进行选择。3.5版本以下包括3.5版本只有X86,所以不用在乎操作系统,只选择x86版本。下载cmake时,一定要搞清楚自己的操作系统是32位的还是64位的。

<2> 在用CMake编译opencv源码时,需要提前下载好几个文件,由于cmake的官网是国外的,下载速度十分缓慢,如果不提前下载,在用cmake做第一次编译时,会报错。
需要的文件地址:http://download.csdn.net/detail/haoyizhi/9837320

将ffmpeg_version.cmake,opencv_ffmpeg.dll,opencv_ffmpeg_64.dll文件放到
D:\opencv3.1.0\sources\3rdparty\ffmpeg目录(D:\opencv3.1.0\为我的opencv3.1.0安装主目录)


 将ippicv_win文件夹放到D:\opencv3.1.0\sources\3rdparty\ippicv目录

<3>下载opencv_contrib-master库
 下载地址:http://download.csdn.net/detail/haoyizhi/9836388
 解压后的目录结构如下
 
 <4>新建一个目录用来存放cmake编译之后的文件,如我在D盘建立了一个opencv_my的目录


(2) Cmake配置与编译
<1>打开cmake-gui
在where is the source code 处选择opencv3.1的源代码文件夹
在where is build the binaries 处选择cmake编译产生的文件存放文件夹,如我在上一步创建的opencv_my



<2>点击configure按钮 选择 visual studio 14 2015 win64编译器

注意:这里一定要根据自己的实际情况准确的选择
因为我的vs是2015版本,所有选择visual studio 2015
操作系统为64位,所有选择win64
这里的14是vc编辑器
补充:vc与vs的对应关系

vc6     -   VC6.0
vc7     -   VS2002 
vc7.1   -   VS2003 
vc8     -   VS2005 
vc9     -   VS2008
vc10    -   VS2010
vc11    -   VS2012
vc12    -   VS2013
vc13    -   VS2014
vc14    -   VS2015

<3>点击finish

成功完成,会出现Configuring Done。第一次编译结束。

<4>在搜索框中输入
OPENCV_EXTRA_MODULES_PATH,找到该变量。

 值为下载好的
opencv_contrib-master库主目录下的modules目录,如下图为我的modules目录

 注意:这里最好
点击值后面的“...”一步步选择文件夹的添加 因为直接复制过来的分隔符为"\",实际上应该是向前的“/”。如果为"\",会出现如下错误信息
    CMake Error at cmake/OpenCVModule.cmake:260 (foreach):
    Syntax error in cmake code at


<5>在次点击
configure按钮,进行二次编译。

成功会出现
Configuring done

<6>点击generate

完成出现
Generating done

最终,opencv_my中生成的文件如下
 

(3) vs2015生成解决方案与安装文件
<1>
找到opencv_my文件夹里的OpenCV.sln文件,并双击,用vs2015打开

<2>生成解决方案

这个过程时间比较长,需要耐心等待。
注:这里再提一下之前提到的问题,cmake最好用3.4.3版本,以上版本会出现
{errorMSB6006:"cmd.exe"已退出,代码为:-1073741571}错误
成功结果如下



<3>生成安装文件
 找到
CMakeTargets文件夹中的INATALL项目右键,依次选择仅用于项目->仅生成INSTALL(B)  

 完成后opencv_my文件夹里多了一个install文件夹




到此,所有的编译以及生成工作完成 

(4) 重新配置环境与测试
这里找一个项目名为guangfangDemo,并创建一个test.cpp的源文件,
来进行验证

/***********************************test.cpp**************************************\
#include "stdafx.h"
#include <iostream>
#include <opencv2/opencv.hpp> 
#include <opencv2/xfeatures2d.hpp>
using namespace cv;
using namespace std;
int main()
{
    //Create SIFT class pointer
    Ptr<Feature2D> f2d = xfeatures2d::SIFT::create();
    //读入图片
    Mat img_1 = imread("aaa.jpg");
    Mat img_2 = imread("bbb.jpg");
    //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(600000);
}
\********************************************************************************/

<1>环境变量path配置
 


<2>项目
guangfangDemo属性->VC++目录->包含目录
D:\opencv_my\install\include
D:\opencv_my\install\include\opencv
D:\opencv_my\install\include\opencv2


<3>
项目 guangfangDemo属性->VC++目录->库目录
D:\opencv_my\install\x64\vc14\lib


<4>
项目 guangfangDemo属性->链接器->输入->附加依赖项
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


<5>重新生成项目并运行

出现如下结果则成功,图片内容自定。
 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值