VS2019 配置OpenCV4.3.0 详细教程 部分原理解析 及 注意事项

    技术2022-07-27  85

    目录

    0.写在前面1.OpenCV下载及安装下载安装 2.配置系统环境变量 及 动态库复制配置系统环境变量动态库复制 3.配置VS属性调出属性管理器配置包含目录配置库目录配置附加依赖项 4.测试测试代码测试结果 5.注意事项


    0.写在前面

    虽说网上有不少的教程,但按照步骤一步步执行到了最后,还是出现了问题。 对原理一窍不通,因此在此耗费了太多太多时间,所以决定把整个过程写下来,希望对你有所帮助。

    后补: 才发现OpenCV官网上已经有详细的doc介绍。😦 这里附上doc文档。(更新于2020-07-02) 这是国内的网站,内容应该是机翻。 如何使用OpenCV在“Microsoft Visual Studio”中构建应用程序


    1.OpenCV下载及安装

    下载

    官网地址:https://opencv.org/releases/ 随意选择版本,我选择的是此时最新的430版本。 (官网被墙,下载速度很慢。上有,但需要较高积分。有需要的可以滴滴我。) 后补: 我已经上传了资源,里面对应有Windows、iOS、Android、以及sources四个版本的,零积分下载。 OpenCV - 4.3.0 合集.zip

    安装

    双击程序运行即可。 不过

    一定要记住安装的位置! 一定要记住安装的位置! 一定要记住安装的位置!

    选择好目录之后单击Extract(提取),等待完成,完成后自动关闭。

    进入到文件夹是这样的。


    2.配置系统环境变量 及 动态库复制

    配置系统环境变量

    环境变量:在操作系统中用来指定操作系统运行环境的参数。

    这里用到的环境变量是PATH。 当要求操作系统运行一个程序,而没有告诉系统,程序所在位置的完整路径时,系统除了在当前目录下面寻找此程序外,还会到PATH中指定的路径去找。

    简单点就是系统会在PATH的路径中,寻找需要执行的可执行文件(.exe)。

    环境变量中包含两大类,一类是用户变量,另一类是系统变量。 用户变量设置的环境变量只针对当前用户,更换用户时设置会失效。 系统变量设置应用于整个操作系统中。 这里我们需要设置OpenCV库的路径到环境变量中。 路径如下 opencv\build\x64\vc15\bin

    根据以上路径,进入到bin目录下。随后复制上方导航栏的地址。

    接下来的操作

    右击 – 文件资源管理器左侧此电脑单击 – 属性单击 – 高级系统设置单击 – 环境变量双击 – 下方系统变量中PATH一栏单击 – 右侧新建复制 – 刚刚的bin目录地址

    随后,一直点击确认即可。

    动态库复制

    库文件包含两种,一种是静态库,另一种是动态库即DLL(Dynamic Link Library)。

    静态库在程序的链接阶段被复制到了程序中,即相当于把静态库中代码复制到程序中。 动态库在程序的链接阶段没有被复制到程序中,而是程序在运行时由系统动态加载到内存中供程序调用。

    使用动态库的优点是系统只需载入一次动态库,不同的程序可以得到内存中相同的动态库的副本,节省内存。

    根据路径opencv\build\x64\vc15\bin找到以下动态库文件。

    opencv_world430.dll opencv_world430d.dll

    其中最后三个数字是版本编号,430代表OpenCV – 4.3.0。不同版本编号略微不同。 带有d的动态库是debug版本。

    将以上动态库复制到以下路径中 C:\Windows\SysWOW64

    根据路径opencv\build\x64\vc15\bin找到以下动态库文件。 opencv_videoio_ffmpeg430_64.dll

    将以上动态库复制到以下路径中 C:\Windows\System32


    3.配置VS属性

    以下配置均是导入OpenCV库,与环境变量类似。

    调出属性管理器

    视图 -> 其他窗口 -> 属性管理器 选中属性管理器中 Debug | x64

    右击 – Debug | x64选择 – 属性

    配置包含目录

    VC++目录 – 包含目录

    添加以下路径 opencv\build\include\ opencv\build\include\opencv2

    配置库目录

    VC++目录 – 库目录

    添加以下路径 opencv\build\x64\vc15\lib

    配置附加依赖项

    链接器 – 输入 – 附加依赖项

    附加依赖项 要看你自己的版本 debug模式 和 realse模式 debug 模式 对应 opencv_world430d.lib realse模式 对应 opencv_world430.lib

    我选用的是debug模式 因此第一项就选着 opencv_world430d.lib

    添加以下路径 opencv_world430d.lib opencv_world430.lib

    到此所有配置完成,接下来就是新建项目进行测试。


    4.测试

    测试时,请将上方Debug | x86 改为 Debug | x64。

    测试代码

    #include<iostream> //需要用到OpenCV库,下面导入三个常用的头文件 #include <opencv2/opencv.hpp> #include <opencv2/highgui.hpp> #include <opencv2/imgproc.hpp> using namespace std; using namespace cv; int main() { const char * img_path = R"(D:\1.jpg)"; //图片的绝对路径 Mat img = imread(img_path); //原图的RGB矩阵 namedWindow("img", WINDOW_NORMAL); //可调节窗口大小 imshow("img", img); //展示图像 waitKey(0); //等待一个键盘输入 return 0; }

    测试结果

    测试结果正常。


    5.注意事项

    1.以上步骤一步步做好做下来,绝对是可以成功的!如果出错了,请认真核对每一步的操作。2.真的真的每一步都要做对! 我自己就因为 配置包含目录 时,opencv\build\include\ 路径少了最后一个\,然后程序能编译,但是死活无法得出正确的答案。 翻来覆去搞了三四天,才发现问题所在。3.路径名要以自己的安装目录为主,我提供的所有路径均是OpenCV文件夹的相对路径。自己可以对比参照一下。4.有任何问题可以留言回复,看到必答。
    Processed: 0.014, SQL: 9