Windows平台下OpenCV的编译与安装

目录

依赖 

Visual Studio安装

Cmake安装

OpenCV编译

源码下载

CMake配置

编译与安装


依赖 

  • Visual Studio
  • cmake
  • opencv3.4.7+opencv_contrib3.4.7

Visual Studio安装

        VS的community版本是可供个人使用的且功能完备的正版版本,点击链接下载 Visual Studio Tools - 免费安装 Windows、Mac、Linux后可选择下载最新的VS2022版,或点击网页左下角的“较早的下载项”选择下载老版本Visual Studio。

Windows平台下OpenCV的编译与安装_第1张图片

        下载得到类似“VisualStudioSetup.exe”的应用程序,之后双击安装即可,需要联网下载安装包,具体不再赘述,笔者这里用的是VS2017版本。

Cmake安装

        CMake是一个跨平台的编译组织工具,可用简单的语句来描述所有平台的的安装(编译过程)。Windows平台下的cmake工具自带GUI,使用时对初学者更加友好。

        进入Download | CMake后选择自己平台的.msi安装包之后进行安装即可。

OpenCV编译

        OpenCV是一个基于Apache2.0许可开源发行的跨平台计算机视觉和机器学习软件库,可运行在Linux、Windows、Android和Mac OS操作系统上。接口丰富且易用,在图像处理领域知名度极高,应用范围极广。这里以3.4.7版本为例说明Windows平台下使用Visual Studio编译OpenCV的流程。

源码下载

        进入OpenCV · GitHub下载opencv主干代码和opencv_contrib包。opencv_contrib是处于“开发”状态的新增模块,一些比较新的但尚未稳定的算法模块会放入其中,注意下载代码时需要保持版本与opencv主干代码一致,这里下载的是opencv_contrib-3.4.7.zip。

CMake配置

        新建文件夹目录OpenCV/3.4.7/src与OpenCV/3.4.7/build目录,将下载的opencv_contrib-3.4.7.zip与opencv-3.4.7.zip放入src目录并解压,同时在build目录下创建VS2017_x64/install放置编译产生的文件,表明编译输出应用于VS2017 x64平台。

        打开CMake,在界面中指定代码位置,这里需要选择OpenCV主干代码文件夹路径,和编译输出位置,这里选择上述建立的build/VS2017_x64文件夹,之后点击左下角“Configure”按钮选择编译配置为VS2017 x64,点击Finish之后CMake开始配置项的测试,过程中可能会下载一些第三方依赖的文件,可能需要访问外网。

Windows平台下OpenCV的编译与安装_第2张图片

        之后中间的界面中将显示出各个编译选项的配置值,这里我们对如下几项做些修改。

        修改CMAKE_INSTALL_PREFIX为上述建立的VS2017_x64/install文件夹,表明编译后将头文件、库文件等安装到该目录

        修改OPENCV_EXTRA_MODULES_PATH指向上述解压后的opencv_contrib文件夹下的modules目录,使其加入编译。

        再次点击“Configure”按钮进行配置,出现Configure done时表明配置成功。点击“Generate”生成sln文件,再点击“Open Project”按钮可用Visual Studio打开sln文件。

编译与安装

Windows平台下OpenCV的编译与安装_第3张图片

        上图为打开sln之后的呈现,当前为Debug模式,鼠标右键选择ALL_BUILD工程后点击生成,进行算法库的编译;再选择INSTALL工程点击生成,进行编译文件的安装。之后将Debug模式更换为Release,再次执行上述操作完成算法库的编译与安装。

        完成上述步骤后,可在build/VS2017_x64/install目录下看到如下文件,《include》包含了所需的头文件,《x64》下是库文件,同时还有两个.cmake文件,这两个文件将在CMake使用Visual Studio构造工程中引入OpenCV时用到。

Windows平台下OpenCV的编译与安装_第4张图片

        由此完成了Windows下OpenCV的编译与安装。

你可能感兴趣的:(opencv,计算机视觉)