环境:VisualStudio2019、Win10 1903、opencv4.10
关于opencv和opencv_contrib,opencv中含有主要功能,opencv_contrib是(新的,受专利保护的)扩展功能包,有需要扩展功能的要同时下载opencv和opencv_contrib源码进行编译。
如果你使用GCC,用mingw编译;使用VS,用VS编译;在嵌入式平台上使用,使用交叉工具链编译。
本期介绍使用VS配置编译好的opencv,在下一期写一下编译过程。
官网下载的opencv中有使用VS编译好的版本,而opencv_contrib只有源码。
一、安装opencv4.10
安装没啥难度,建议下载编译好的,解压或安装完成后配置环境变量
配置环境变量:VisualStudio用build里面的资源,其它环境用mingw编译的,只添加一种按你的需求来
%HOME_OpenCV%为你的opencv安装路径,mingw用你的路径
- VS:在path中添加 %HOME_OpenCV%\build\x64\vc15\bin
- 其它:在path中添加 %HOME_OpenCV%\mingw64-build\x64\mingw\bin
配置后重启,如果不重启可能会报找不到dll的错。安装其它类似的包有时不用重启环境变量也会生效,但cv不行。
(不建议)仅供实在不行的情况下参考:
不添加环境变量的懒办法:把\build\x64\vc15\bin中的opencv_world410.dll opencv_world410d.dll opencv_ffmpeg410_64.dll放到C:\Windows\System32下
二、VS配置属性管理器
视图->其它窗口->属性管理器 打开属性管理器可看到四栏 依次为Debug 32 64 Release 32 64。在你对应类型的下面进行配置,
写在前面(重要):
- 一般都配置64位的(
现在没人用32位的吧) 。 - Debug和Release都配置
- opencv的lib分为两种,带d的和不带d的,带d的用于Debug,不带d的用于Release.
- 较低版本的opencv要添加很多lib,较新版本的只用添加例如opencv_world410.lib一项,410为版本号。
配置的方式:
- 直接在工程中配置(每次都要配置),在项目上右键属性,对所有情况都生效;在四个栏目上右键属性,仅对该栏目生效。
- 添加属性表(属性表配置好,添加属性表即可,建议)
需要配置的内容(在Debugx64和Releasex64中配置):
VC++目录->包含目录
- D:\Library\Opencv-V4.1.0\build\include
- D:\Library\Opencv-V4.1.0\build\include\opencv2
VC++目录->库目录
- D:\Library\Opencv-V4.1.0\build\x64\vc15\lib
链接器->输入->附加依赖项
- 配置debug时:opencv_world410d.lib
- 配置release时:opencv_world410.lib
三、程序验证
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
Mat img = imread("D:\\a.jpg");
imshow("显示灰度图", img);
waitKey(0);
return 0;
}
运行可看到显示的图片
关于报错:
1.找不到opencv_world410.dll
- 环境变量问题,请看第一节。确保配置环境变量后重启,或将dll放入System32
2.无法链接的外部符号
- 链接器配置问题,添加的类型不对,debug填带d的,release填不带d的