Windows10下用Vscode配置OpenCV (解包即用版)
维基百科:
OpenCV的全称是Open Source Computer Vision Library,是一个跨平台的计算机视觉库。OpenCV是由英特尔公司发起并参与开发,以BSD许可证授权发行,可以在商业和研究领域中免费使用。OpenCV可用于开发实时的图像处理、计算机视觉以及模式识别程序。该程序库也可以使用英特尔公司的IPP进行加速处理。
前言:
本篇文章主要用来记录使用vscode配置opencv的全过程,在整个过程中需要用到的工具包括vscode安装包、MinGW-w64和opencv的源码。vs studio配置opencv比较简单,opencv官网中已经有用vs studio编译器编译好的opencv库。但是对于vscode而言,不能直接使用利用vs studio编译器编译好的opencv库,因此需要借助MinGW-w64和CMake工具对opencv源码重新进行编译。这个重新编译的过程可以说得上是遍地大坑,所以本文配备了作者已编译好的成品,读者可以解包即用。
再有就是相对又大又重的vs studio,轻量级的vs code无疑不是一个更好的选择,我们可以根据自己所需,弹性配置成自己中肯的开发平台。
一、前期文件准备
下载vscode
官网下载即可,就不叙述了,win10选择x86版本,一路next即可
本文vscode安装到了D盘,这个路径无关紧要
win10环境下vscode运行opencv(C++)(解压即用)-1号包
.vscode.zip 为vscode配置文件
MinGw.zip vscode为编辑器,并没有编译功能,所以要借助MinGW中的GCC/G++编译C/C++程序
dll.zip 为.exe文件运行时的依赖文件
win10环境下vscode运行opencv(C++)(解压即用)-2号包
opencv 环境已生成的最终版————解包即用
- 解压两个包
- 资源直接上传到CSDN了,作者设置了0积分下载,但是测试时发现好像只能自动下载一次,第二次需要完成平台的任务,不过可以选一个简单的任务完成并获取下载码,也就不到一分钟即可。——主要CSDN资源下载不限速,不像某度云,不嗑真不让人下载。
二、MinGw.zip和opencv
把MinGw.zip解压后和opencv,放到F盘根目录。(作者强烈建议这个路径与本文一致,这样后续配置文件无需修改,直接用即可)
添加环境变量
F:\opencv\build\x64\vc15\bin
F:\opencv\build\x64\MinGw\bin
F:\MinGw\bin
注意:最后一定不要忘记每步点击确定
三、vscode配置
- 打开vscode,安装插件。注:安装过程中可能会要求重启软件,照做即可
- 取消vscode的自动更新,因为其更新会覆盖(还原)安装目录,我们今后写的程序和配置文件都放在安装目录下。日后如果要更新vscode,将需要的进行备份后,手动更新。(个人习惯)
- 现在我们可以在安装目录中新建一个文件夹,如
OpenCV
用来当作工作区目录。
- 之后把
.vscode
文件拷贝到其中,并新建cpp
和Debugger
文件夹,分别存放我们写的源程序和.exe、依赖文件。
- 之后再把
dll.zip
解压后的依赖文件拷贝到Debugger
中
- 最后在vscode中 文件->打开文件夹 —— 选择
OpenCV
。
四、测试
我们在cpp
目录下新建源程序,这里给出一个调用摄像头的样例和一个显示图片的样例,可自行测试。
F5
运行
- 摄像头样例
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main() {
VideoCapture cap(0);
Mat img;
while (1) {
cap >> img;
if (img.empty()) break;
namedWindow("img", WINDOW_NORMAL);
imshow("img", img);
if (27 == waitKey(20)) break;
}
return 0;
}
- 图片样例
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main() {
Mat img = imread("D:\\Microsoft VS Code\\OpenCV\\cpp\\G.png");
resize(img, img, Size(500, 500));
imshow("img", img);
waitKey(0);
system("pause");
return 0;
}
- 如果程序一直运行不弹终端,或显示参数错误:则注释
settings.json
。这也是作者遇到vscode新版本的一个坑,不注释掉这两行,程序一直运行不出结果。
注释后勿忘保存