win10 + Vscode + openCV3.1.0 + C++
前言
相信前来寻找此方法的童鞋们,之前已经对vscode有很大程度的了解了,对vscode配置的下载安装以及cpptool的添加我就不再赘述了。接下来将最大程度地回避我在vscode上配置opencv时遇到的各种坑。为了避免不必要的麻烦,最好直接使用本文所提供的编译器版本。
很感谢这位大佬的博客指导,网页容易点出广告 2333
http://www.pianshen.com/article/8044333624/ .
文件准备
- cmake 3.15.5
- minGw-w64
- opencv 3.1.0
下载地址: https://pan.baidu.com/s/1x3rffR0CnPCoWeMSHrIjow .
提取码:9i55
解压缩之后可以看到这四个文件
安装opencv 3.1.0
打开exe文件,直接解压到除C盘以外的根目录
解压之后,可以看到一个opencv文件
安装cmake
打开cmake安装文件,中间设定如下
安装完之后,可以在桌面看到cmake图标
安装minGw-w64
这一步其实直接把mingw64文件直接解压即可,以下以解压到C盘根目录为例,解压之后可以在C盘看到
添加path路径
在系统变量的path中添加cmake、mingw、opencv的bin目录,注意根据自己安装的目录自行修改
使用cmake对opencv进行mingw编译
- 首先在解压后的opencv文件新增一个MinGW文件夹
路径最好与下面图片一致: XX:\XX\opencv\build\x64
- 打开opencv里面的 3rdparty 文件 XX:\XX\opencv\sources\3rdparty
用所下载的“cmake_opencv时缺少的文件”中的 ffmpeg文件 替换掉3rdparty中的 ffmpeg文件
这步很重要,因为cmake过程中,会从国外的网址下载 ffmpeg 文件,下载不出来,需要提前放在opencv的资源文件当中
- 打开cmake,将资源文件设定为opencv下的sources文件,build目标文件设定为新增的MinGW文件夹,点击Configure
- 弹出窗口进行如下设定
其中C与C++设定的分别为为,所安装的mingw_w64下的gcc与g++的64位exe文件
C:/mingw64/bin/x86_64-w64-mingw32-gcc.exe
C:/mingw64/bin/x86_64-w64-mingw32-g++.exe - 点击 finish 等待至 Configuring done
- 在搜索栏搜索python,将相关选项的对勾取消
- 点击 Configure 等待至 Configuring done
- 点击 Generate 结束后弹出 Generating done
- 进入新建的MinGW文件,shift + 右键 进入 powershell
- 输入 minGW32-make ,等待结束,需几十分钟
-成功之后,输入 minGW32-make install ,等待结束,关闭powershell
- 在系统变量的环境中添加新增的MinGW文件的bin路径
vscode 中的配置—演示部分
- 在D盘新增一个vscode_opencv文件夹
- 打开vscode,将该文件夹添加到工作区当中,新建一个 testopencv.cpp 文件
- 输入以下代码,保存
#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui_c.h>
#include <iostream>
using namespace cv;
using namespace std;
int main (int arc,char** argv) {
Mat src, drt;
src = imread("E:/348713.jpg");//图片自行定义
if(!src.data){
cout<<"cound not load image....\n";
return -1;
}
namedWindow("input image", CV_WINDOW_AUTOSIZE);
imshow("input image",src);
waitKey(0);
return 0;
}
- 点击 F5 ,选择 C++ (GBD) 和 g++.exe…
- 之后会弹出 launch.json 文件
- 再次在cpp文件界面点击 F5 会有以下提示
- 点击配置任务,选择 g++ ,会弹出 task.json 文件
- 在 args 后面新增 ,opencv 库目录文件,注意根据安装目录自行修改
"-I","E:/opencv/build/include",
"-I","E:/opencv/build/include/opencv",
"-I","E:/opencv/build/include/opencv2",
"-L","E:/opencv/build/x64/MinGW/lib",
"-l", "opencv_core310",
"-l", "opencv_imgproc310",
"-l", "opencv_imgcodecs310",
"-l", "opencv_video310",
"-l", "opencv_ml310",
"-l", "opencv_highgui310",
"-l", "opencv_objdetect310",
"-l", "opencv_flann310",
"-l", "opencv_imgcodecs310",
"-l", "opencv_photo310",
"-l", "opencv_videoio310",
"-l","libopencv_calib3d310"
- 键盘 ctrl + shift + P 输入 C++ config 选择 配置(JSON)
- 在弹出的 c_cpp_properties.json 文件的 “includePath” 中添加如下内容
"C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++",
"C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/x86_64-w64-mingw32",
"C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/backward",
"C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include",
"C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include-fixed",
"C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/include",
"E:/opencv/build/include",
"E:/opencv/build/include/opencv",
"E:/opencv/build/include/opencv2"
其中 opencv 请根据安装目录自行修改,mingw64开头的,可以打开cmd
输入 gcc -v -E -x c++ - ,可以在最后看到这一部分,复制即可
- 以上配置完成并保存之后,回到 opencvtest.cpp 文件 ,点击 F5 即会有对应效果。
- 要注意的是,在vscode 的imread 函数里面,路径最好不要包含汉字,不然会出现读取为空的情况
- 其次要注意一定要把 main 写对哦,哈哈,不然就会
undefined reference to `WinMain'
结束语
大概就是这些啦,愉快的使用吧,相关的配置文件我会一并放在下载压缩包的 .vscode 文件里面,不过vscode的launch.json等的配置最好还是亲自在软件上进行点击,复制其他人的会有一些问题。