目录
关键步骤
一、VS Code配置
安装C/C++插件(好像已经有了opencv插件,但是包含的关键函数实在太少)
二、Opencv配置
先在opencv安装目录下的\build\x64目录下新建一个文件夹准备存储相关编译文件
三、安装CMake
官网https://cmake.org/download/下载CMake(官网下载慢可以自己在百度网盘找,版本差别不大就行)
下载好后安装在C盘根目录,我这里的安装目录是C:\Program Files\CMake
四、配置两个环境变量
mingw64的bin目录和CMake的bin目录
检测是否安装成功:Win+R键输入cmd运行,输入命令gcc -v出现下面信息就成功了
五、运行CMake
添加目录开始操作
点击Configure出现弹框选择MinGW Makefiles和Specify native comilers,再点next进行下一步
在图示方框右边的有省略号的小方框选择编译程序(就是mingw64的bin目录下的.exe程序,我这里C和C++分别是C:\mingw64\bin\gcc.exe和C:\mingw64\bin\g++.exe),再点击Finish
出现Configuring done(这里强烈建议:在下面出来的选框中 勾选上WITH_OPENGL 、取消勾选WITH_IPP、 取消勾选
ENABLE_PRECOMPILED_HEADERS,这样后面的编译装载成功率高很多 )
再次点击Configure等进度条跑完再点击Generate,等进度条跑完会出现Generating done
接下来开始编译装载,按Win键+R打开运行窗口输入cmd运行,按图示操作
六、配置环境变量
就是刚才编译装载完成的bin目录,这时你之前新建的MinGW文件夹里面会有了很多文件
七、C++项目配置
新建文件夹作为C++项目工作目录,在VSCode中打开工作目录
新建三个配置文件如下:
c_cpp_properties.json
{
"configurations": [
{
"name": "win32",
"includePath": [
"${workspaceFolder}/**",
"C:\\Program Files\\opencv\\build\\include",
"C:\\Program Files\\opencv\\build\\include\\opencv2"
],
"defines": [],
"compilerPath": "C:\\mingw64\\bin\\gcc.exe",
"cStandard": "c11",
"cppStandard": "c++17",
"intelliSenseMode": "msvc-x64"
}
],
"version": 4
}
launch.json
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/${fileBasenameNoExtension}.o",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "C:\\mingw64\\bin\\gdb.exe",
"preLaunchTask": "g++",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
},
]
}
tasks.json
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"command": "g++",
"args": [
"-g",
"-std=c++11",
"${file}",
"-o",
"${fileBasenameNoExtension}.o",
"-I", "C:\\Program Files\\opencv\\build\\include",
"-I", "C:\\Program Files\\opencv\\build\\include\\opencv2",
"-L", "C:\\Program Files\\opencv\\build\\x64\\MinGW\\lib",
"-l", "libopencv_core411",
"-l", "libopencv_imgproc411",
"-l", "libopencv_imgcodecs411",
"-l", "libopencv_video411",
"-l", "libopencv_ml411",
"-l", "libopencv_highgui411",
"-l", "libopencv_objdetect411",
"-l", "libopencv_flann411",
"-l", "libopencv_imgproc411",
"-l", "libopencv_photo411",
"-l", "libopencv_videoio411"
],// 编译命令参数
"problemMatcher":{
"owner": "cpp",
"fileLocation":[
"relative",
"${workspaceFolder}"
],
"pattern":[
{
"regexp": "^([^\\\\s].*)\\\\((\\\\d+,\\\\d+)\\\\):\\\\s*(.*)$",
"file": 1,
"location": 2,
"message": 3
}
]
},
"group": {
"kind": "build",
"isDefault": true
}
}
里面有些地方需要自己改改
然后新建一个.cpp文件,拷入测试代码
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main(int argc, char** argv) {
Mat src = imread(".//test.jpg");
if (src.empty()) {
printf("could not load image...\n");
return -1;
}
namedWindow("input image", WINDOW_AUTOSIZE);
imshow("input image", src);
waitKey(0);
return 0;
}
在文件夹里放一张图片命名test.jpg
八、运行测试
切换到VSCode调试窗口,点击运行
乱码问题:
在商店安装扩展GBKtoUTF8一般可以解决