opencv(一)VisualStudio下配置opencv

环境: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

配置后重启,如果不重启就使用opencv会报找不到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都配置,否则你会发现你只能进行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   
#include   

using namespace cv;
using namespace std;


int main()
{
    Mat img = imread("D:\\a.jpg");
    imshow("显示灰度图", img);
    waitKey(0);
    return 0;
}

Debugx64下运行,可看到显示的图片。


关于报错:

1.找不到opencv_world410.dll

  • 环境变量问题,请看第一节。确保配置环境变量后重启,或将dll放入System32

2.imshow处报异常,内存溢出。

  • 路径用双斜杠
  • 确认路径正确
  • 在配置连接器依赖可能同时添加了world410d.lib 和world410.lib,只在对应栏位添加一个

3.无法链接的外部符号

  • 链接器配置问题,添加的类型不对,debug填带d的,release填不带d的
  • 头文件用<>包含

 

你可能感兴趣的:(opencv-cpp)