【VSCode】【OpenCv】Windows平台下VSCode + OpenCv + minGw环境搭建-C++

15 篇文章 2 订阅
3 篇文章 2 订阅

参考链接:VScode搭建Opencv(C++开发环境)

1. 软件准备

2. 配置环境变量

将上述下载的MinGw、CMake、OpenCv解压到指定文件夹内,本机测试都放在D:\IDE文件夹内,文件路径如下:


MinGwD:\IDE\MinGw
在这里插入图片描述


CMakeD:\IDE\cmake
在这里插入图片描述


OpenCvD:\IDE\opencv452\opencv
在这里插入图片描述


在系统环境变量path中添加MinGw、CMake:

  • MinGw:D:\IDE\MinGw\bin
  • CMake:D:\IDE\cmake\bin
    在这里插入图片描述
    检查MinGw、CMake环境是否OK。
    打开cmd命令窗口,输入gcc -v判断MinGw环境,输入cmake -version判断CMake环境。显示如下表示环境配置成功。
    在这里插入图片描述

3. 使用CMake编译Opencv

  1. CMake/bin文件夹下找到cmake-gui.exe,双击打开。
    在这里插入图片描述
  2. 设置第一个路径(Where is the source code)是opencv的源码路径,第二个路径(Where to build the binaries)是生成的文件的路径(手动创建ming文件夹)。
    在这里插入图片描述
  3. 点击Configure,然后选择使用MinGw MakeFiles作为编译器,并选择Specify native compliers,点击next继续,

在这里插入图片描述
在这里插入图片描述
4. CompliersC选择mingw/bin文件夹下的gcc.exe,C++选择mingw/bin文件夹下的g++.exe,然后点击finish继续。
在这里插入图片描述
5. 等完成后可能会有红色的框表示失败了,这时候看一下CMakeDownloadLog.txt文件,应该是有几个文件没有下载下来,可以手动下载,然后把它们放到指定文件夹内并重命名。大概就是这几个文件需要手动下载:opencv_videoio_ffmpeg.dllopencv_videoio_ffmpeg_64.dllade-0.1.1f.zipffmpeg_version.cmake

下载失败解决方案可参考:CMake编译OpenCV4.0时opencv_ffmpeg.dll等下载失败的解决思路总结
国内访问受限,GitHub Proxy可以下载需要的文件。

  1. 下载完成后再重新点击Configure,等待完成即可。如果完成后仍然还有红色框出现,不要着急,再重新点击Configure即可。
  2. 执行完后,把python相关的都取消勾选,
    WITH_IPPWITH_MSMFENABLE_PRECOMPILED_HEADERS取消勾选;
    BUILD_opencv_worldWITH_OPENGLBUILD_EXAMPLES选择勾选,
    CPU_DISPATCH选空。
  3. 上述操作完成后点击Generate,直到操作完成。
    在这里插入图片描述

4. make

重新打开cmd窗口,进入刚刚生成的mingw文件夹,执行命令:minGW32-make -j 4
没有出错,继续执行命令:minGW32-make install
然后添加环境变量:
在这里插入图片描述

5. VSCode配置并测试

  1. 新建一个文件夹,命名为Hello-opencv
  2. 使用VSCode打开该文件夹;
  3. 在该文件夹下新建一个文件,命名为test.cpp;
  4. 编写如下代码,记得该文件夹下放一个图片;
#include <opencv2/opencv.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main()
{
    std::string filename = "1.jpg";
    cv::Mat srcimg = cv::imread(filename.data());
    if (!srcimg.empty())
    {
        cv::namedWindow("test", cv::WINDOW_NORMAL);
        cv::imshow("test", srcimg);
        cv::waitKey(0);
    }
    else
    {
        printf("load image fail!\n");
        getc(stdin);
    }

    return 0;
}

  1. 点击调试 C/C++文件,选择带g++.exe,会出现提示***存在错误,点击中止即可;
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  2. Hello-opencv文件夹下会手动创建.vscode文件夹,.vscode文件夹下手动创建三个文件:c_cpp_properties.jsonlaunch.jsontasks.json,然后按照如下编辑这些json文件。这些字段的具体含义可参考:VSCode Variables Reference

这三个文件也可以自动生成,这里只展示手动创建的过程。
路径要根据自己电脑设置的路径填写。

c_cpp_properties.json

{
    "configurations": [
        {
            "name": "win",
            "includePath": [
                "${workspaceFolder}/**",
                "D:\\IDE\\opencv452\\opencv\\build\\x64\\mingw\\install\\include",
                "D:\\IDE\\opencv452\\opencv\\build\\x64\\mingw\\install\\include\\opencv2"
            ],
            "defines": [],
            "compilerPath": "D:\\IDE\\MinGw\\bin\\g++.exe",
            "cStandard": "c11",
            "cppStandard": "c++17",
            "intelliSenseMode": "${default}"
        }
    ],
    "version": 4
}

tasks.json


{
    "version": "2.0.0",
    "tasks": [
        {
            "type": "shell",
            "label": "opencv4.5.2",
            "command": "D:\\IDE\\MinGw\\bin\\g++.exe",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${workspaceFolder}\\RBin\\${fileBasenameNoExtension}.exe",
                // RBin是自定义的文件夹名,会把生成的EXE放在该文件夹下,要手动创建RBin文件夹
                // 下面的opencv路径根据自己的路径修改
                "D:\\IDE\\opencv452\\opencv\\build\\x64\\mingw\\bin\\libopencv_world452.dll",
                "-I",
                "D:\\IDE\\opencv452\\opencv\\build\\x64\\mingw\\install\\include",
                "-I",
                "D:\\IDE\\opencv452\\opencv\\build\\x64\\mingw\\install\\include\\opencv2",
            ],
            "options": {
                "cwd": "D:\\IDE\\MinGw\\bin"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }
    ]
}

launch.json

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "opencv debuge",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}\\RBin\\${fileBasenameNoExtension}.exe",
            "args": [],
            "stopAtEntry": false, // true表示运行到main()函数的第一行,可以调试;false表示直接运行,不会再main()函数的第一行停止,除非设置了断点
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": true,//是否调用外部cmd
            "MIMode": "gdb",
            "miDebuggerPath": "D:\\IDE\\MinGw\\bin\\gdb.exe",//自己进行设置
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": false
                }
            ],
            "preLaunchTask": "opencv4.5.2",
            "console": "integratedTerminal",
            "justMyCode": true
        }
    ],
    
}
  1. 转到test.cpp编辑界面,然后按F5,如果当前路径下(Hello-open)没有图片,则会提示load image fail!;如果路径下有图片,会显示图片。
    这两种情况都表示配置已经完成,以后如果在其它文件夹下开发,可以直接把.vscode文件夹拷过去。
    在这里插入图片描述
    在这里插入图片描述

6. 注意事项

如下是本机测试时出现的问题。

  1. cmake添加了环境变量但是cmd窗口中输入命令提示不是内部或外部命令
    添加环境变量后需要重新打开cmd;
  2. 一定要记得CMake编译时,Configure完成后一定要generate!!!
  3. 选择config的编译器时一定要选对。这个我第一次配置的时候选错了,后面执行 minGW32-make -j 4命令时总是提示Makefile:32: *** missing separator. Stop.,找了好多解决方案都不行,最后重新来一遍才发现。
  4. python等要取消勾选
  5. 如果第二次configure还是有红色的,不要慌,再点击configure,直到没有红色出现。
  6. 第一次configure出现红色的,查看CMakeDownloadLog.txt,下载几个需要的文件;然后把它们放入到对应的路径下。
  7. 运行时要手动创建RBin文件夹。
  8. 以.vscode所在目录(测试的Hello-opencv\)为当前工作路径。
  9. 环境变量中的opencv路径一定要写对
  10. 调用其它文件的函数时,要把头文件和源文件都包含进去。这个是后面写其它代码的时候一个文件要调用另一个文件内的函数,需要把那个函数声明和定义的文件都包含在内。
    如下:
    b.h
void b_b();

b.cpp

void b_b()
{
	// 函数实现
}

a.cpp

// a.cpp中要包含函数b_b()的声明和定义的文件
#include "b.h"
#include "b.cpp"

int main()
{
	b_b();  // 在b.h中声明的函数
	return 0;
}
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Opencv是一个开源的计算机视觉库,它提供了丰富的图像处理和计算机视觉功能。相比较于Visual Studio (VS)来说,VS Code更加轻量和方便,同时支持丰富的插件生态系统。因此,使用VS Code来配置Opencv是一个不错的选择。 在使用VS Code配置Opencv之前,我们需要先编译Opencv的源文件。为了实现这一目的,我们需要使用cmake。下面是配置Opencv的步骤: 1. 打开cmake-gui,这是一个可视化的配置工具,可以帮助我们生成Opencv的编译文件。 在cmake-gui中,我们需要设置源代码目录(Opencv的源代码所在的路径)和构建目录(编译生成的文件所存放的路径)。 接下来,点击"Configure"按钮,cmake会自动检测你的编译环境,并生成相应的配置。 2. 在cmake-gui中设置配置选项。 在配置选项中,我们可以选择需要启用的功能和模块,比如是否启用图像处理、视频处理、机器学习等功能。 3. 点击"Generate"按钮,cmake会根据你的配置选项生成相应的编译文件。 4. 打开VS Code,创建一个新的工作区。 在VS Code中,点击"File" -> "Open Folder",选择你生成的构建目录作为工作区。 5. 在VS Code中创建一个新的C++文件。 点击"File" -> "New File",将下面的代码复制到新创建的文件中: ```cpp #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; } ``` 6. 保存并编译你的代码。 使用Ctrl+S保存你的代码,并点击VS Code底部的"Terminal"按钮打开终端窗口。在终端中输入以下命令来编译你的代码: ``` g++ -o main main.cpp `pkg-config --libs opencv4` ``` 其中,main是生成的可执行文件的名称,main.cpp是你的代码文件的名称。 7. 运行你的代码。 在终端中输入以下命令来运行你的代码: ``` ./main ``` 这样,你就可以在VS Code中使用Opencv进行图像处理和计算机视觉任务了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值