本文介绍了 OpenCV 下载与安装,开发环境的配置
1. 下载与安装#
-
从 OpenCV官网 下载最新版本的 Windows 安装包(实质是 7z 的自解压程序)
-
运行安装包,将 OpenCV文件 解压到自己指定的目录,如:
d:\,自解压程序会自动创建opencv目录 -
之后添加系统环境变量
OPENCV_DIR,值为d:\opencv\build(根据实际情况调整路径) -
同时将
%OPENCV_DIR%\bin和%OPENCV_DIR%\x64\vc15\bin添加到 Path 变量。建议同时添加到用户变量和系统变量。只添加到系统变量,运行 OpenCV 程序需要以管理员权限运行,否则会出现找不到opencv_worldxxx.dll的异常。
2. 配置 Visual Studio 开发环境#
这里介绍一种一劳永逸的配置 OpenCV 开发环境的方法:
-
新建一个 C++ 空项目,然后打开 视图 -> 其他窗口 -> 属性管理器
在 属性管理器 视图中,展开新创建的空项目,展开 Debug | x64,双击
Microsoft.Cpp.x64.user开始配置 -
配置
include目录在 通用属性 -> VC++目录 -> 包含目录 添加
$(OPENCV_DIR)\include和$(OPENCV_DIR)\include\opencv2 -
配置附加库目录
在 通用属性 -> 链接器 -> 常规 -> 附加库目录 添加
$(OPENCV_DIR)\x64\vc15\lib -
配置附加依赖项
在 通用属性 -> 链接器 -> 输入 -> 附加依赖项 添加
opencv_world455d.lib(Debug)或opencv_world455.lib(Release)网上有一些教程会将两者同时添加到附加依赖项中。实测发现,如果
opencv_world455d.lib在先,则 Release 模式下无法正常运行;反之 Debug 模式下无法正常运行。这里提供一种解决方法:
选中
Microsoft.Cpp.x64.user,并在属性窗口中,定位文件的路径,如:C:\Users\xxx\AppData\Local\Microsoft\MSBuild\v4.0\Microsoft.Cpp.x64.user.props,xxx 为用户名。打开
.props文件,将<ItemDefinitionGroup> <Link> <AdditionalLibraryDirectories>$(OPENCV_DIR)\x64\vc15\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> <AdditionalDependencies>opencv_world455d.lib;%(AdditionalDependencies)</AdditionalDependencies> </Link> </ItemDefinitionGroup>替换为:
<ItemDefinitionGroup> <Link> <AdditionalLibraryDirectories>$(OPENCV_DIR)\x64\vc15\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> </Link> </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)'=='Debug'"> <Link> <AdditionalDependencies>opencv_world455d.lib;%(AdditionalDependencies)</AdditionalDependencies> </Link> </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)'=='Release'"> <Link> <AdditionalDependencies>opencv_world455.lib;%(AdditionalDependencies)</AdditionalDependencies> </Link> </ItemDefinitionGroup>
3. 快速配置#
上述方法虽然只配置了一次,但是还是有点繁琐,其实只需要修改 .props 文件即可(需重启VS生效)
打开 C:\Users\[用户名]\AppData\Local\Microsoft\MSBuild\v4.0\Microsoft.Cpp.x64.user.props
将以下内容合并到 .props
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Label="PropertySheets">
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<IncludePath>$(OPENCV_DIR)\include;$(OPENCV_DIR)\include\opencv2;$(IncludePath)</IncludePath>
</PropertyGroup>
<ItemDefinitionGroup>
<Link>
<AdditionalLibraryDirectories>$(OPENCV_DIR)\x64\vc15\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)'=='Debug'">
<Link>
<AdditionalDependencies>opencv_world455d.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)'=='Release'">
<Link>
<AdditionalDependencies>opencv_world455.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemGroup />
</Project>