参考博客:https://blog.csdn.net/amusi1994/article/details/76768775
环境
Windows10 x64
Visual Studio 2013
下载
1、CMake
直接登录CMake官网下载Windows64位安装包 ,链接:https://cmake.org/download/
2、OpenCV3.3
官网链接:https://opencv.org/releases.html 注意:选择3.30的Sources版本进行下载
我们打算CMake对OpenCV3.3源码进行生成VS2013的x64位解决方案sln)
安装
1.解压OpenCV3.3.0源码,其中opencv-3.3.0是刚才下载源码opencv-3.3.0.zip解压出来的文件夹,而OpenCV3.3_VS2013_x64是自定义创建的文件夹,用于存放CMake生成的目标解决方案
2.打开CMake,添加源码和目标文件夹路径
打开已安装好的CMake软件,bin/下面
(1)添加解压出的OpenCV-3.3.0文件夹绝对路径(比如,我的绝对路径是F:\Program Files\opencv\opencv-3.3.0),
(2)添加自定义创建的OpenCV-3.3.0build的空文件夹,这里文件夹名称为“OpenCV3.3_VS2013_x64”,因为OpenCV版本是3.3,编译器是VS2013,并且打算生成x64位的解决方案(比如我的绝对路径是F:\Program Files\opencv\OpenCV3.3_VS2013_x64)
3. 多次Configure,配置相应库
点击Configure按钮后,会出现下述界面,选择你所需要的编译器和解决方案版本(这里我选择的是Visual Studio 12 2013 Win64)
点击Finish,CMake开始对OpenCV源码进行配置生成并下载相应函数库,如ffmpeg,IPP等(此时需要等待若干分钟)
当第一次Configure后,界面会出现红色部分,这是为了让用户可以手动补充相应函数库,如TBB、CUDA、Eigen等,这里视你的需求而定,若需要其他库,请自行下载相应库,并自行配置库的include和lib
因为我是第一次配置OpenCV3.3,怕出现一些不必要的版本兼容问题,所以没有额外添加库,并且这里将CUDA的选项也注销了,即取消勾选WITH的WITH_CUDA(第一次最好不要配置CUDA版本的OpenCV3.3,因为较复杂,若配置无CUDA版本的OpenCV3.3成功后,可以再配置CUDA版的)
再次点击Configure,确保红色画面消失,如果红色画面一直未消失,请检查WITH选项,是否勾选了不必要的库
(一般两次后红色消失,出现Configuring done的提示。)
4.点击Generate,生成opencv解决方案
(1) 当多次Configure后(一般只需要2次),红色界面完全消失,并出现Configuring done的提示。
(2) 此时请点击Generate按钮,生成相应的解决方案,若出现Generating done的提示,即表明解决方案生成成功。
(3) 继续点击Open Project。此时CMake会自行启动Visual studio 2013软件,打开上述生成的解决方案
5.Build并Install opencv解决方案
此时Visual studio 2013软件,已上述生成的解决方案opencv
Debug
(1) 右击All_BUILD,选择生成 。此时需要等待很长时间,大概半个小时
(2) 生成完成后,右击INSTALL,选择生成(会在自定义创建的OpenCV文件夹下生成一个install文件夹,包含了include和bin)
上述过程完成后,生成的是Debug版的动态链接库,此时还需要在Release下进行生成
Release
与上述Debug步骤一致
1) 右击All_BUILD,选择生成 。此时需要等待很长时间,大概半个小时
(2) 生成完成后,右击INSTALL,选择生成
右击install生成
自动生成的install文件夹
6、配置OpenCV3.3动态链接库
若要调用OpenCV3.3需要将bin绝对路径,添加到系统环境变量中
此时我的bin绝对路径为F:\Program Files\opencv\OpenCV3.3_VS2013_x64\install\x64\vc12\bin,如下图所示,该文件夹下有很多dll文件,其中带d的表示Debug版,不带d的表示Release版。
将bin绝对路径,添加到系统环境变量中,右键“计算机”--》属性--》高级系统设置--》环境变量--》path--》编辑
此时已经配置好了OpenCV动态链接库的环境。
为了需要检验OpenCV3.3是否配置成功,能否正常调用,我们创建新的VS项目,写一段测试代码来检验。
7、
(1) ①打开VS2013,新建一个工程,命名为TestDemo,选择空项目即可
(2)配置工程
因为上述生成的是Visual Studio2013 x64的动态链接库,不适用于x86的工程,所以需要配置x64的工程,操作如下
在属性管理器里的将管理器从win32配置成X64.在解决方案管理器里,点击项目名称TestDemo,右键->属性->配置管理器->活动解决方案平台->新建->键入或选择新平台中选择X64->确定。
Debug
找到项目的”属性管理器“,然后找到项目的Debug|x64下的Microsoft.Cpp.x64.user,右键”属性“,打开属性页面
(a) include,为属性页的包含目录添加include路径,此时需要添加三个路径,即x64文件夹下的include及其子文件夹的绝对路径
F:\Program Files\opencv\OpenCV3.3_VS2013_x64\install\include
F:\Program Files\opencv\OpenCV3.3_VS2013_x64\install\include\opencv
F:\Program Files\opencv\OpenCV3.3_VS2013_x64\install\include\opencv2
(b) lib,为属性页的库目录添加lib路径,即F:\Program Files\opencv\OpenCV3.3_VS2013_x64\install\x64\vc12\lib
并需要在属性页--链接器--输入--附加依赖项中添加库的名称
注意OpenCV3.3一共有17个动态链接库,因为是现在添加的是Debug版本,所以后缀带d(只需要将下述17个文件名Copy一下)
opencv_calib3d330d.lib
opencv_core330d.lib
opencv_dnn330d.lib
opencv_features2d330d.lib
opencv_flann330d.lib
opencv_highgui330d.lib
opencv_imgcodecs330d.lib
opencv_imgproc330d.lib
opencv_ml330d.lib
opencv_objdetect330d.lib
opencv_photo330d.lib
opencv_shape330d.lib
opencv_stitching330d.lib
opencv_superres330d.lib
opencv_video330d.lib
opencv_videoio330d.lib
opencv_videostab330d.lib
(c) bin,因为之前已经在系统环境变量中添加了bin文件夹路径,所以不需要再添加
Release
操作和Debug类似,但库文件名称不一致,因为不含d
(a) include,为属性页的包含目录添加include路径,此时需要添加三个路径,即x64文件夹下的include及其子文件夹的绝对路径
F:\Program Files\opencv\OpenCV3.3_VS2013_x64\install\include
F:\Program Files\opencv\OpenCV3.3_VS2013_x64\install\include\opencv
F:\Program Files\opencv\OpenCV3.3_VS2013_x64\install\include\opencv2
(b) lib,为属性页的库目录添加lib路径,即F:\Program Files\opencv\OpenCV3.3_VS2013_x64\install\x64\vc12\lib
并需要在属性页--链接器--输入--附加依赖项中添加库的名称
注意OpenCV3.3一共有17个动态链接库,因为是现在添加的是Release版本,所以后缀无d(只需要将下述17个文件名Copy一下)
opencv_calib3d330.lib
opencv_core330.lib
opencv_dnn330.lib
opencv_features2d330.lib
opencv_flann330.lib
opencv_highgui330.lib
opencv_imgcodecs330.lib
opencv_imgproc330.lib
opencv_ml330.lib
opencv_objdetect330.lib
opencv_photo330.lib
opencv_shape330.lib
opencv_stitching330.lib
opencv_superres330.lib
opencv_video330.lib
opencv_videoio330.lib
opencv_videostab330.lib
OpenCV测试Demo
在写代码前,先准备一张图像,保存在工程目录下,如F:\Program Files\opencv\workspace\Test_Demo
在上述工程中新建demo.cpp文件,添加下述代码
#include <opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
cout << "OpenCV Version: " << CV_VERSION << endl;
Mat img = imread("img.jpg");
imshow("img",img);
waitKey(0);
return 0;
}
运行结果
(1) 输出OpenCV的版本号
(2) 显示出输入的图像