个人资料,仅供学习使用
学习课程:OpenCV4 C++ 快速入门视频30讲——贾志刚
00 环境配置与搭建 + 显示1张图片
本课解决的问题:
- 如何安装Visual Studio 2022 pro?
- 如何安装OpenCV 4.6.0?
- 如何配置与搭建opencv开发环境?
- 如何显示1张图片?
1.Visual Stdio 2022 Pro
选择 C++桌面开发 + 通用Windows开发 + .NET 桌面开发 这3个就可以了,激活码百度即可。


2.OpenCV 4.6.0
OpenCV官网:opencv.org 下载最新版本的OpenCV

设置自己的opencv包路径,然后解压。

我们可以看到有build和sources两个文件夹
解释如下:
- build - 顾名思义,build后Windows可以接受的东西
- sources - 包含OpenCV 4.6.0的所有源码

沿着build → x64 我们又看到vc14和vc15两个文件夹,它们的目录下,都有bin和lib。
解释如下:
- vc14 - 指vc14运行库,对应VC++2015运行库,是Windows系统下运行Visual Studio 2015开发的C++应用程序所必需的,并与 Visual C+ 库动态链接。
- vc15 - 指vc15运行库,对应VC++2017运行库…………
(2017及以后的版本,我们都选择vc15就可以了)

3.环境配置与搭建
准备

项目名称随便,位置自己去安排好一个文件夹

改为Release x64

关于Release和Debug的说明
引用文章:Debug和Release的区别是什么?
- Debug 版本
Debug 是“调试”的意思,Debug 版本就是为调试而生的,编译器在生成 Debug 版本的程序时会加入调试辅助信息,并且很少会进行优化,程序还是“原汁原味”的。
不是任何一个程序都可以调试的,程序中必须包含额外的辅助信息才能调试,否则调试器也无从下手。- Release 版本
Release 是“发行”的意思,Release 版本就是最终交给用户的程序,编译器会使尽浑身解数对它进行优化,以提高执行效率,虽然最终的运行结果仍然是我们期望的,但底层的执行流程可能已经改变了。
编译器还会尽量降低 Release 版本的体积,把没用的数据一律剔除,包括调试信息。
最终,Release 版本是一个小巧精悍、非常纯粹、为用户而生的程序。总结
- Debug 版本的存在是为了方便程序员开发和调试,性能和体积不是它的重点;
- Release版本是最终交给用户的程序,性能和体积是需要重点优化的两个方面。
所以
- 在开发过程中,我们一般使用 Debug 版本,只有等到开发完成,确认没有任何Bug 之后,希望交给用户时再生成 Release 版本。
基本所有的集成开发环境(IDE)都可以在 Debug 版本和 Release 版本之间进行切换
然后去,视图→属性管理器

因为我们选择了Release版本,所以我们配置Release x64这个
2022版本可能没有Microsoft.Cpp.x64.user,需要下载MSBuild并复制到某个文件夹
VS2019没有Microsoft.Cpp.x64.user配置文件解决方法
右键→属性,我们开始配置

配置包含目录
在VC++目录里配置,先把VC++目录中的所有目录全清空

首先是包含目录,根据自己opencv的安装位置配置

配置库目录
然后是库目录,根据自己opencv的安装位置配置

配置链接器
再然后是附加依赖项

先找一下要配置的信息

因为是Release版本,选择所以这里配置成这样
这里补充一下,无论是配置Debug模式还是Release模式,最好只保留一个,不然会遇到很多问题
- 在Debug模式下,只使用带d的lib文件
- 在Release模式下,只使用不带d的lib文件

配置环境变量
系统变量→path,添加自己对应的bin目录。
这样我们就配置完了,重新启动VS Pro 2022 配置生效,或者重新启动电脑配置生效。

4.显示1张图片
#include<opencv2\opencv.hpp>
#include<iostream>
using namespace cv;
using namespace std;
int main(int argc, char** argv) {
//路径要根据自己的图片而定
Mat src = imread("D:/Workspace/VS-Project/OpenCV/images/lena.png");
imshow("input", src);
waitKey(0);
destroyAllWindows();
return 0;
}


4216

被折叠的 条评论
为什么被折叠?



