windows平台安装opencv

本文共有6753个字,关键词:opencv

opencv简介

OpenCV的全称是Open Source Computer Vision Library,是一个跨平台的计算机视觉库。OpenCV是由英特尔公司发起并参与开发,以BSD许可证授权发行,可以在商业和研究领域中免费使用。

历史

  • 1999

OpenCV项目最早由英特尔公司于1999年启动,致力于CPU密集型的任务,是一个包括如光线追踪和3D显示的计划的一部分。

  • 2000

OpenCV的第一个预览版本于2000年在IEEE Conference on Computer Vision and Pattern Recognition公开,并且后续提供了五个测试版本。

  • 2006

1.0版本于2006年发布,此时的opencv接口为c语言。

  • 2009

OpenCV的第二个主要版本是2009年10月的OpenCV 2.0。该版本的主要更新包括C++接口,更容易、更类型安全的模式,新的函数,以及对现有实现的优化(特别是多核心方面)。

  • 2015

发布OpenCV3.0。也现在主要使用的版本。相比于2.0更改了项目的架构,更加地模块化,拥有大量的module,更偏向c++靠近,支持更多的硬件加速和更多的语言接口等。

  • 2018年12月

发布4.0。主要是增强了对深度学习的支持以及全面支持c++11的新标准。

如今的opencv大约每6个月就会发布一次版本更新,想要更详细的了解opencv发布历史,可到官网链接查阅。

opencv官网发布历史地址

应用

作为最受欢迎的计算机视觉开源项目,而且允许免费用于商业项目,使得opencv在各个领域都发挥了很大的作用。不论是工业界的目标检测、目标识别和跟踪、安防、医疗图像和定位测量等,还是学术界的计算机视觉相关研究,opencv都被广泛使用。

使用opencv可以解决如下问题:

  • 增强现实
  • 人脸识别
  • 手势识别
  • 人机交互
  • 动作识别
  • 运动跟踪
  • 物体识别
  • 图像分割
  • 机器人

Windows平台安装opencv

opencv是跨平台的开源库,支持windows和linunx等主要平台。本篇芒果主要介绍windows平台下的安装,opencv在windows平台安装的方式有两种,一种是从源码安装,即自行编译。另一种是下载编译好的文件安装。本文介绍的是第二种。

下载

下载地址芒果推荐两个,一个是官网,一个是github。这里给出两个下载地址。

官网下载地址

github下载地址

版本可以根据自己需要选择,注意下载的是windows下的安装包。官网下载选择Win pack,在github下载则选择扩展名为.exe结尾的文件。

解压

双击运行下载的安装程序,选择路径,芒果推荐D盘/Programfile/OpenCV

opencv安装解压.png

虽然下载下来为.exe一个可执行的文件,但实际上这是一个自解压的程序,双击运行安装后提示选择安装的路径便是解压后文件放置的文件夹了,所以芒果把这一步骤称为解压,因为此安装与我们普通软件的安装稍有不同的,普通软件涉及注册表与环境变量安装等,而opencv安装程序纯粹是自解压。

解压文件

安装解压后目录文件情况如下

PS D:\ProgramFiles\opencv> ls


    目录: D:\ProgramFiles\opencv


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----       2018/12/10     14:30                build
d-----       2018/12/10     14:31                sources
-ar---       2018/11/18     18:19           2275 LICENSE.txt
-a----       2018/11/18     18:19          27913 LICENSE_FFMPEG.txt
-a----       2018/11/18     18:19            686 README.md.txt

source为githun仓库代码的内容,build则是官方编译好的opencv。

build文件目录

PS D:\ProgramFiles\opencv> cd .\build\
PS D:\ProgramFiles\opencv\build> ls


    目录: D:\ProgramFiles\opencv\build


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----       2018/12/10     14:32                bin
d-----       2018/12/10     14:30                etc
d-----       2018/12/10     14:30                include
d-----       2018/12/10     14:30                java
d-----       2018/12/10     14:30                python
d-----       2018/12/10     14:30                x64
-ar---        2018/4/11     10:06           2275 LICENSE
-a----       2018/11/18     18:00            433 OpenCVConfig-version.cmake
-a----       2018/11/18     18:00           5728 OpenCVConfig.cmake
-a----       2018/11/18     17:59            781 setup_vars_opencv4.cmd
  • include

include为包含的意思,在vs工程属性里面对应包含库目录,里面存放的是opencv的头文件。扩展名为.hpp,属于c++ 头文件的一种。在使用c++环境下使用opencv编程时,代码最开始要include"xxxx.hpp"的文件便是在include文件夹内。opencv的头文件里面一般是一些类、函数、和结构体的声明。

  • bin

bin又称为可执行文件夹,该文件夹一般存放可执行的.exe文件或者动态链接库.dll文件。opencv安装后bin文件存放的便是opencv的可执行文件和动态库文件。

  • lib

lib文件夹又称为静态链接库文件,文件格式为.lib的扩展名。作用是在程序编译阶段供编译工具调用和链接。

  • 其他

其他文件包括opencv的源码、文档和教程、官方的示例samples等。

配置环境变量

把bin目录路径添加到环境变量的path里面

解压安装之后需要配置环境变量,配置环境变量的作用是使得在运行编译后的程序可以找到相应的动态库调用。

opencv4.0之前需要手动配置环境变量,4.0版本安装的目录下芒果发现多了一个名为
set_var_opencv4.0的脚本文件,应该是一键配置环境变量的脚本没错了。不妨打开瞧一瞧

@ECHO OFF

SET "SCRIPT_DIR=%~dp0"

IF NOT DEFINED OPENCV_QUIET ( ECHO Setting vars for OpenCV 4.0.0 )
SET "PATH=%SCRIPT_DIR%\x64/vc14/bin;%PATH%"

IF NOT DEFINED OPENCV_SKIP_PYTHON CALL :SET_PYTHON

SET SCRIPT_DIR=

IF NOT [%1] == [] GOTO :RUN_COMMAND

GOTO :EOF

:RUN_COMMAND
SET RUN_INTERACTIVE=1
echo %CMDCMDLINE% | find /i "%~0" >nul
IF NOT errorlevel 1 set RUN_INTERACTIVE=0

%*
SET RESULT=%ERRORLEVEL%
IF %RESULT% NEQ 0 (
  IF _%RUN_INTERACTIVE%_==_0_ ( IF NOT DEFINED OPENCV_BATCH_MODE ( pause ) )
)
EXIT /B %RESULT%

:SET_PYTHON
SET "PYTHONPATH_OPENCV=%SCRIPT_DIR%\python"
IF NOT DEFINED OPENCV_QUIET ( ECHO Append PYTHONPATH: %PYTHONPATH_OPENCV% )
SET "PYTHONPATH=%PYTHONPATH_OPENCV%;%PYTHONPATH%"
SET PYTHONPATH_OPENCV=
EXIT /B


:EOF

不需要全部看懂,有这一句SET "PATH=%SCRIPT_DIR%x64/vc14/bin;%PATH%"
就知道猜测没错。这是设置环境变量的脚本,双击运行就可以完成环境变量的设置了。
假如点击脚本没有设置环境变量成功或者安装的是之前的版本。则需要手动设置一下环境变量,也非常地简单,win10左下角搜索框搜索“环境变量”即可找到。

以win10,为例。直接在搜索框搜索 编辑系统环境变量 - >点击进去->环境变量->系统变量-
找到path->编辑->把上面目录添加进去。其他进去的方法可以从控制面板进去。

opencv设置环境变量.png

两个path只需要编辑一个即可

opencv设置环境变量2.png
添加的目录路径为

#vs2015
D:\ProgramFiles\opencv\build\x64\vc14\bin

#vs2017
D:\ProgramFiles\opencv\build\x64\vc15\bin

vs2015对应的是vc14,vs2017对应的是vc15注意不要填错。

bin目录的解释:

x86 可以理解是32位的,代表工程调试的时候也只能使用x86。如果想使用64位调试,那么就把x64的bin也添加上。两个系统变量之间用分号隔开。注意这里不是指系统是多少位的选择。
vc15 表示vs2017。 vs2008=vc9,vs2010=vc10,vs2012=vc11,vs2013=vc12。vs2015=vc14

配置属性表

网上关于opencv的工程属性配置教程很多,道理都是一样的。不过有些只是说了配置的方法,这导致每次新建一个项目就要重新配一次,比较麻烦。一次配置的办法很简单,原理就是第一次配置的时候不是直接配置项目的默认属性页,而是新建一个属性页,配置完成后可以保存下来,下次新建项目直接导入就行了。

步骤:
新建一个项目,可以选择控制台或者空项目就好。找到属性管理器(各个版本的属性管理器位置不一样,一般在侧边栏可见,或者在 视图- >其他窗口可以找到)。

然后,找到对应工程当前的编译调试平台,选择属性管理器对应的文件夹,右键添加新有的属性页。
比如我的编译调试平台是Debug-x86。那么属性管理器就选择Debug|win32的文件夹添加属性页。

属性页起一个有意义的名字,比如可以看出属性页所属平台的信息等。

然后双击新建的属性页进行编辑.

1.包含目录配置

“平台”框内显示Win32还是x64表示要配置的是32位编译还是64位编译,需要更改平台可点“配置管理器”。选择“配置属性”>“VC++目录”,在右边的“包含目录”里新增以下3条:

D:\opencv\build\include

D:\opencv\build\include\opencv

D:\opencv\build\include\opencv2  

2.库目录配置
在“库目录”里新增1条:
D:opencvbuildx86vc15lib
这里x86还是x64,以及vc版本的选择,都同环境变量配置中说的。

3.链接库配置
右键项目->“属性”->“配置属性”->“链接器”->“输入”,在“配置”下拉框中选“Debug”。在“附加依赖项”栏点右边“编辑”,复制文件名

D:\ProgramFiles\opencv\build\x64\vc14\lib\opencv_world400d.lib

到空白处

加入是配置release调试项目,文件明则改为

D:\ProgramFiles\opencv\build\x64\vc14\lib\opencv_world400.lib

测试

一切都配置好之后,可以使用下面简单的程序测试是否配置成功。这是一个读取并且显示一张图片的程序,新建好工程,保存测试图像在工程目录下面,调试程序,如果正常显示图片,则配置成功。

#include<opencv2/opencv.hpp>
#include<iostream>

int main()
{
    cv::Mat img = cv::imread("test.jpg");
    if(img.empty())
    {
        std::cout<<"can't load the image!"<<std::endl;
        return -1;
    }
    cv::imshow("test", img);
    cv::waitKey(0);
    return 0;
}
版权声明:本文为作者原创,如需转载须联系作者本人同意,未经作者本人同意不得擅自转载。
添加新评论
暂无评论