Windows下Cmake+Visual Studio 2017编译OpenCV并配置(完美解决,可进入OpenCV源码)

文章目录

  • 1. 下载Cmake
  • 2. 下载OpenCV源码
  • 3. Cmake编译OpenCV
  • 4. VS2017编译生成OpenCV库
  • 5. 配置环境
    • 5.1 环境变量配置
    • 5.2 VS2017配置
  • 6. 测试

本教程使用Cmake+Visual Studio 2017编译OpenCV,并在Visual Studio 2017示例项目中配置OpenCV,能够实现进入OpenCV内部源代码调试。

1. 下载Cmake

点击Cmake官网的下载界面,点击下载对应版本的Cmake就可以了。

Windows下Cmake+Visual Studio 2017编译OpenCV并配置(完美解决,可进入OpenCV源码)_第1张图片

下载完之后直接安装,并且勾选将Cmake安装的bin路径加入到电脑的环境变量。

2. 下载OpenCV源码

首先进入OpenCV的官网的下载界面,这里主要以OpenCV-3.4.6版本为例,其他的版本一样的操作流程。
正常Windows下直接下载Win pack,下载exe文件,然后直接双击解压就可以了。

Windows下Cmake+Visual Studio 2017编译OpenCV并配置(完美解决,可进入OpenCV源码)_第2张图片

解压之后内部有这些文件

Windows下Cmake+Visual Studio 2017编译OpenCV并配置(完美解决,可进入OpenCV源码)_第3张图片

3. Cmake编译OpenCV

第一步,打开Cmake(cmake-gui)

Windows下Cmake+Visual Studio 2017编译OpenCV并配置(完美解决,可进入OpenCV源码)_第4张图片

第二步,如上图:

  1. 首先选择source code的路径,就是解压后的opencv/sources
  2. 手动在opencv里面建一个名字为projects的文件夹(可以是别的名字,也可以在其他地方建),把projects文件夹的路径加到这步。
  3. 点击Configue。
  4. 弹出一个选择编译器的界面,选择自己对应的VS版本就行了。
  5. 选择32位或64位平台,我这边选的64位。
  6. 点击Finish。

文件就开始编译了,第一次编译的话会下载一些依赖的东西,所以需要多等一会。会得到以下界面(由于我的电脑已经配置过了,这张图是我网上找的,路径有点不一样,重要的是下面的Configuring done)。

第三步,第一次Configure生成之后,但还需要第二次执行生成,再次单击Configure按钮,执行第二次生成;

第四步,经过两次Configure之后,点击Generate按钮生成最终的OpenCV解决方案。退出Cmake。得到下图(同样,此图是我网上找的,注意下方的Generating done)。

Windows下Cmake+Visual Studio 2017编译OpenCV并配置(完美解决,可进入OpenCV源码)_第5张图片

4. VS2017编译生成OpenCV库

第一步,Cmake生成后在自己创建的文件夹projects下查看生成的项目,双击打开工程OpenCV.sln;

Windows下Cmake+Visual Studio 2017编译OpenCV并配置(完美解决,可进入OpenCV源码)_第6张图片

第二步,在CmakeTargets下选择ALL_BUILD,右键单击生成;

第三步,在CmakeTargets下选择INSTALL,右键单击生成;

Windows下Cmake+Visual Studio 2017编译OpenCV并配置(完美解决,可进入OpenCV源码)_第7张图片

第四步,将Debug变成Release,右键生成ALL_BUILD;

Windows下Cmake+Visual Studio 2017编译OpenCV并配置(完美解决,可进入OpenCV源码)_第8张图片

5. 配置环境

5.1 环境变量配置

右击计算机->属性->高级系统设置->高级->环境变量,找到系统变量中的path,点击编辑,添加路径:

G:\opencv\opencv\projects\install\x64\vc15\bin
G:\opencv\opencv\projects\bin\Debug

5.2 VS2017配置

第一步,新建一个项目test,并在源文件中添加一个cpp文件,比如:main.cpp;

第二步,打开project -> test Properties

第三步,通用属性 -> VC++目录 ->包含目录中添加

G:\opencv\opencv\projects\install\include
G:\opencv\opencv\projects\install\include\opencv
G:\opencv\opencv\projects\install\include\opencv2

第四步:通用属性 -> VC++ 目录 -> 库目录中添加

G:\opencv\opencv\projects\install\x64\vc15\lib

第五步:通用属性 -> 链接器 -> 输入 -> 附加依赖项中添加

opencv_calib3d346d.lib
opencv_core346d.lib
opencv_dnn346d.lib
opencv_features2d346d.lib
opencv_flann346d.lib
opencv_highgui346d.lib
opencv_imgcodecs346d.lib
opencv_imgproc346d.lib
opencv_ml346d.lib
opencv_objdetect346d.lib
opencv_photo346d.lib
opencv_shape346d.lib
opencv_stitching346d.lib
opencv_superres346d.lib
opencv_video346d.lib
opencv_videoio346d.lib
opencv_videostab346d.lib

第六步,通用属性 -> 链接器 -> 通用 -> 附加库目录中添加

G:\opencv\opencv\projects\lib\Debug

6. 测试

在main.cpp中输入如下代码,注意刚刚我们的OpenCV都是编译的64位的,所以我们自己的代码也要选择x64。

#include   
#include   
#include   

using namespace cv;

int main()
{
       // 读入一张图片
       Mat img = imread("C:\\Users\\Pan\\Desktop\\145991-e5dae51100328c17.jpg");
       // 创建一个名为 "图片"窗口    
       namedWindow("图片");
       // 在窗口中显示图片   
       imshow("图片", img);
       // 等待6000 ms后窗口自动关闭    
       waitKey(6000);

       return 0;
}

Windows下Cmake+Visual Studio 2017编译OpenCV并配置(完美解决,可进入OpenCV源码)_第9张图片

设置断点,实现进入源码调试。

Windows下Cmake+Visual Studio 2017编译OpenCV并配置(完美解决,可进入OpenCV源码)_第10张图片

你可能感兴趣的:(C++,OpenCV)