参考资料
1\] 锦辉. 如何优雅地在你的Vscode上使用C++opencv \[DB/OL\]https://zhuanlan.zhihu.com/p/402378383. 2022
由于参考资料 \[1\] 末尾步骤不完整,根据其评论补充了完整配置流程,并在此基础上的一些步骤做了改良。
## 0.概述
在Linux上配置opencv的c++源码并在VScode运行较为容易,但是在windows环境的配置会麻烦得多。由于opencv没有提供针对vscode在windows环境下的现成库文件,需要我们使用CMAKE GUI 自己编译。
注意: 你使用的MinGW编译器必须是posix-seh-msvcrt 或者posix-seh-ucrt !
我这里使用 x86_64-15.2.0-release-posix-seh-msvcrt 版本的MinGW64编译器。
如果你已经看过参考资料\[1\]的教程,但是最后没有成功调用opencv库,请直接移步第2.7节。
如果你已经编译并安装好opencv库了,但是使用VScode运行时没有任何输出,请检查动态库.dll文件所在的目录是否添加到环境变量。
## 1.编译准备
### 1.1 下载opencv源代码
在 https://opencv.org/releases/ 下载opencv4.10.0的发行版源码。( 为良好兼容性,不建议最新版本 )


下载得到压缩包并解压。

这里注意: 由于待会使用CMAKE GUI 进行补充下载文件和编译时,**目录是不能变动的** 。**这里建议将解压后的源代码粘贴到自定义路径专门放置** 。
这里我自己创建了如下路径的文件夹
D:/ OpenCVSource /
将opencv-4.10.0复制到这个目录下,如下两张图:

D:/ OpenCVSource / opencv-4.10.0 / (记好这个路径 待会要考)

### 1.2 准备另一个文件夹存放编译文件
新建路径 D:/ OpenCVSource / build / (记好这个路径 待会也要考)
创建好如下图:

这里build文件夹用于存放编译文件。
### 1.3 安装CMake
## 2. 使用CMake GUI生成适合MinGW的源文件
### 2.1 启动CMAKE-GUI
从开始菜单或桌面快捷方式启动cmake-gui


### 2.2 设置上述两个路径

### 2.3 设置编译器类型

这里指定MinGW的C和C++编译器路径:

等待configing 约5分钟

### 2.4 下载编译文件
红色表示缺失的构建文件。
这里建议有条件的挂梯子,否则下载很慢,可能导致下载失败。
继续点击configure,下载这些文件。

下载完毕:

### 2.5 构建
点击"generate"生成构建MakeFiles文件。

生成很快 大概10s .
### 2.6 编译
进入构建目录 D:/ OpenCVSource / build / 并启动终端。

输入:
```bash
mingw32-make -j4
```
回车。
这里-j4表示以4线程编译,如果CPU线程更多,可以用 -j8 或 -j16 。
等待编译完毕,大约10\~20分钟。


### 2.7 安装
继续在build文件夹运行下述命令
```bash
mingw32-make install -j4
```
然后会在D:/OpenCVSource / build / 下生成install文件夹。

**此时install文件夹就可以直接复制出来使用了** 。
这里我将install复制到一个自定义的新目录 D:/opencvcpp /

## 3.测试
### 3.1 配置CMakeLists.txt + 添加动态库的环境变量
配置Cmakelists的找包部分和Linux是一样,如下:
```bash
cmake_minimum_required(VERSION 3.16.0)
project(cvtest01 VERSION 0.1.0 LANGUAGES C CXX)
set(CMAKE_C_COMPILER "D:/Engineering_SoftWare_B/VSCode/Setup/x86_64-15.1.0-release-posix-seh-msvcrt-rt_v12-rev0/mingw64/bin/gcc.exe") #指定编译器
set(CMAKE_CXX_COMPILER "D:/Engineering_SoftWare_B/VSCode/Setup/x86_64-15.1.0-release-posix-seh-msvcrt-rt_v12-rev0/mingw64/bin/g++.exe") #指定编译器
set(OpenCV_DIR "D:/opencvcpp/install") #指定opencv包的路径
find_package(OpenCV REQUIRED) #找包
include_directories(${OpenCV_INCLUDE_DIRS}) #添加包头文件路径
add_executable(cvtest01 main.cpp)
target_link_libraries(cvtest01 PRIVATE ${OpenCV_LIBS}) #包的静态库路径
```
添加 intall 文件夹中的 bin 路径到系统环境变量。
我这里是 D:/ opencvcpp / install / x64 / mingw / bin
### 3.2 运行程序
我放置了一张图片a.jpg在C++工程目录下,main.cpp文件如下
```cpp
#include