Visual Studio Code 中使用OpenCV


前言

因为需求需要使用iOpenCV去做一些东西,比较习惯用vscode,于是想在vscode中搭建OpenCV环境,借鉴了几篇前辈的文章,最后想通过这篇博客记录一下。


一、工具和资源下载

根据自己需求下载软件和资料:
cmake软件:https://cmake.org/download/

OpenCV:https://sourceforge.net/projects/opencvlibrary/

二、软件安装与配置

1.安装软件

下载好OpenCV库以后根据自己要求进行解压,解压的文件夹最好和后面建立的的其它文件放在一起好找:

vscode opencv包含库_vscode opencv包含库

2.生成makefile文件

下载好cmake软件后直接打开,其中souce code 选择前面解压的OpenCV库中的sources文件夹,

build the binaries自己选择一个位置建一个文件夹记住位置。

vscode opencv包含库_json_02


路径配置好以后点击configure,注意选择MinGW Makefiles,选中Specify native compilers:

vscode opencv包含库_ide_03


选好以后点击Next,这里C选择gcc.exe,c++选择g++.exe,这里的gcc和g++是需要安装MinGW,因为我是以前就安装过的,所以就直接选择路径了,有需要的可以去搜一下相关教程安装一下:

vscode opencv包含库_json_04


弄好以后直接点击Finish,等到结束的时候会有标红:

vscode opencv包含库_vscode opencv包含库_05


在这里需要对里面的一些选项去取消或添加勾选,有的就操作,具体如下:

需要勾选的:BUILD_EXAMPLES,BUILD_opencv_world,ENABLE_CXX11,WITH_OPENGL

需要取消勾选的:CPU_DISPATCH,ENABLE_PRECOMPILED_HEADERS,OPENCV_ENABLE_ALLOCATOR_STATS,WITH_IPP,WITH_MSMF,WITH_DIRECTX,WITH_OPENCL_D3D11_NV

配置好以后再点configure,一直点到没有红色,最后再点击generate,完成后的状态如下:

vscode opencv包含库_ide_06

3.生成Install文件

完成后使用Win+R打开cmd,cd路径到前面cmake中build the binaries选择的路径,转到该位置,执行minGW32-make或者minGW32-make -j 4 命令,4表示CPU核数,根据自己的电脑配置修改。

vscode opencv包含库_opencv_07

运行结束以后继续运行minGW32-make install 来导出install文件夹,到这里前期工作都完成了。

4.vscode中的配置

这里也是借鉴的前人写的博客,在vscode中主要对c_cpp_properties.json,launch.json,tasks.json文件配置修改和添加一下前面生成的install路径,具体如下:

//c_cpp_properties.json
{
    "configurations": [
        {
            "name": "win",
            "includePath": [
                "${workspaceFolder}/**",
                "E:/vscode/opencv4.8/opencv/build/x64/vc16/install/include",
                "E:/vscode/opencv4.8/opencv/build/x64/vc16/install/include/opencv2",
                "E:/vscode/opencv4.8/opencv/build/x64/vc16/install/include/opencv2/ml"
            ],
            "defines": [],
            "compilerPath": "C:/mingw64/bin/gcc.exe",
            "cStandard": "c11",
            "cppStandard": "c++17",
            "intelliSenseMode": "clang-x64"
        }
    ],
    "version": 4
}

```cpp
//launch.json
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "opencv4.8.0 debuge",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}\\${fileBasenameNoExtension}.exe",
            "args": [],
            "stopAtEntry": true,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": true,
            "MIMode": "gdb",
            "miDebuggerPath": "C:/mingw64/bin/gdb.exe",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": false
                }
            ],
            "preLaunchTask": "opencv4.8.0 compile task"
        }
    ]
}
//tasks.json
{
    "version": "2.0.0",
    "tasks": [
        {
            "type": "shell",
            "label": "opencv4.8.0 compile task",
            "command": "C:/mingw64/bin/g++.exe",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${workspaceFolder}\\${fileBasenameNoExtension}.exe",
                "E:/vscode/opencv4.8/opencv/build/x64/vc16/install/x64/mingw/bin/libopencv_world480.dll",
                "-I",
                "E:/vscode/opencv4.8/opencv/build/x64/vc16/install/include",
                "-I",
                "F:/opencv4.5.1/opencv/build/x64/mingw/install/include/opencv",
                "-I",
                "E:/vscode/opencv4.8/opencv/build/x64/vc16/install/include/opencv2",
            ],
            "options": {
                "cwd": "C:/mingw64/bin"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }
    ]
}

到这里就全部结束了,后面就可以建工程使用OpenCV库中的函数了。