OpenCV入门之基本知识

一、文件配置
在中需要配置如下三个文件:.json、.json、tasks.json 。
1..json
配置文件的关键是包含文件的路径,设置参数:设置后生成的目录下包含文件的目录和并设置gcc编译器路径 。
{"configurations": [{"name": "windows-gcc-x64","includePath": ["${workspaceFolder}/**","D:/Data/OpenCV/install/include",//安装目录的头文件"D:/Data/OpenCV/install/include/opencv2"],"defines": ["_DEBUG","UNICODE","_UNICODE"],"compilerPath": "D:/Data/x86_64-8.1.0-release-posix-seh-rt_v6-rev0/mingw64/bin/gcc.exe", //mingw64下的gcc编译器"cStandard": "c11","cppStandard": "c++17","intelliSenseMode": "windows-gcc-x64"}],"version": 4}
2..json
配置:配置gdb路径
{"version": "0.2.0","configurations": [{"name": "(gdb) Launch","type": "cppdbg","request": "launch","program": "${fileDirname}/${fileBasenameNoExtension}.exe","args": [],"stopAtEntry": false,"cwd": "${workspaceFolder}","environment": [],"externalConsole": true,"internalConsoleOptions": "neverOpen","MIMode": "gdb","miDebuggerPath": "D:/Data/x86_64-8.1.0-release-posix-seh-rt_v6-rev0/mingw64/bin/gdb.exe","setupCommands": [{"description": "Enable pretty-printing for gdb","text": "-enable-pretty-printing","ignoreFailures": false}],"preLaunchTask": "Compile"}]}
3.tasks.json
配置参数:g++编译器;配置args:保护头文件路径和库文件路径 。也可以根据自己的需要添加合适的库 。
// https://code.visualstudio.com/docs/editor/tasks{"version": "2.0.0","tasks": [{"label": "Compile", // 任务名称,与launch.json的preLaunchTask相对应"command": "D:/Data/x86_64-8.1.0-release-posix-seh-rt_v6-rev0/mingw64/bin/g++.exe",// 要使用的编译器,C++用g++"args": ["${file}",//当前文件名"-o",// 指定输出文件名,不加该参数则默认输出a.exe,Linux下默认a.out"${fileDirname}/${fileBasenameNoExtension}.exe","-g",// 生成和调试有关的信息"-m64", // 不知为何有时会生成16位应用而无法运行,加上此条可强制生成64位的"-Wall", // 开启额外警告"-static-libgcc",// 静态链接libgcc,一般都会加上"-finput-charset=UTF-8","-fexec-charset=GBK", // 生成的程序使用GBK编码,不加这条会导致Win下输出中文乱码;繁体系统改成BIG5"-std=c++17", // 要用的语言标准,根据自己的需要修改 。c++可用c++14// 扩展参数// -I 头文件目录// -L 库文件目录// -l 库文件"-I", "D:/Data/OpenCV/install/include","-I", "D:/Data/OpenCV/install/include/opencv2","-L", "D:/Data/OpenCV/install/x64/mingw/lib/lib*",// 引入全部的库文件], // 编译的命令,其实相当于VSC帮你在终端中输了这些东西"type": "process", // process是把预定义变量和转义解析后直接全部传给command;shell相当于先打开shell再输入命令,所以args还会经过shell再解析一遍"group": {"kind": "build","isDefault": true // 不为true时ctrl shift B就要手动选择了},"presentation": {"echo": true,"reveal": "always", // 执行任务时是否跳转到终端面板,可以为always,silent,never 。具体参见VSC的文档"focus": false,// 设为true后可以使执行task时焦点聚集在终端,但对编译C/C++来说,设为true没有意义"panel": "shared"// 不同的文件的编译信息共享一个终端面板},"problemMatcher":"$gcc" // 捕捉编译时终端里的报错信息到问题面板中,修改代码后需要重新编译才会再次触发// 本来有Lint,再开problemMatcher就有双重报错,但MinGW的Lint效果实在太差了;用Clang可以注释掉}]}
注意:运行程序按F5或者如下图的GDB
参考配置:
搭建的c++环境() 的博客-CSDN博客
Win10系统,编辑器下安装及配置下载安装的博客-CSDN博客
二、示例程序
示例程序位于下载的源码文件中的文件夹中 。