VScode + opencv(cmake编译) + c++ + win配置教程

1、下载opencv

2、下载CMake

3、下载MinGW

放到一个文件夹中

并解压另外两个文件

4、cmake编译opencv

新建文件夹mingw-build

双击cmake-gui

程序会开始自动生成Makefiles等文件配置,需要耐心等待一段时间。

简单总结下:finish->configuring done->configure->generate

5、安装

打开cmd,cd至刚刚的构建目录下C:\Users\wuxulong\cpp_env_2\opencv\build\mingw-build,

输入编译指令minGW32-make -j8,完成后再输入minGW32-make install

也要等一段时间

6、配置环境变量

7、配置文件

c_cpp_properties.json

bash 复制代码
{
    "configurations": [
        {
       "name": "Win32",
          "includePath": [
                "${workspaceFolder}/**",
                "C:\\Users\\wuxulong\\cpp_env_2\\opencv\\build\\mingw-build\\install\\include",//修改这里
                "C:\\Users\\wuxulong\\cpp_env_2\\opencv\\build\\mingw-build\\install\\include\\opencv2"//修改这里
                // "C:\\Users\\wuxulong\\cpp_env\\OpenCV-MinGW-Build-OpenCV-4.5.2-x64\\include\\opencv2\\core\\core.hpp"
               // "F:\\Tools\\opencv\\build\\include\\opencv"                
           ],
           "defines": [
            "_DEBUG",
            "UNICODE",
            "_UNICODE"
            ],
           "windowsSdkVersion": "10.0.18362.0",
           "compilerPath": "C:\\Users\\wuxulong\\cpp_env_2\\mingw64\\bin\\g++.exe",//修改这里
           "cStandard": "c11",
           //"cStandard": "c17",
           "cppStandard": "c++17",
           "intelliSenseMode": "gcc-x64"
           //"intelliSenseMode": "windows-gcc-x64"
           //"intelliSenseMode": "${default}"
       }
   ],
   "version": 4
}

lanuch.json

bash 复制代码
{
    // 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",
            "preLaunchTask": "g++.exe build active file",//调试前执行的任务,就是之前配置的tasks.json中的label字段
            "type": "cppdbg",//配置类型,只能为cppdbg
            "request": "launch",//请求配置类型,可以为launch(启动)或attach(附加)
            "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",//调试程序的路径名称
            "args": [],//调试传递参数
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,//true显示外置的控制台窗口,false显示内置终端
            "MIMode": "gdb",
            "miDebuggerPath": "C:\\Users\\wuxulong\\cpp_env_2\\mingw64\\bin\\gdb.exe",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
  }

tasks.json

bash 复制代码
{
	"version": "2.0.0",
	"tasks": [
		{
			"type": "cppbuild",
			"label": "g++.exe build active file",
			"command": "C:\\Users\\wuxulong\\cpp_env_2\\mingw64\\bin\\g++.exe",
			"args": [
                "-fdiagnostics-color=always",
                "-g",
                // "-std=c++11",
                "${file}",
                //"E:\\Git-resp\\C++\\yolov8_CPP_Inference_OpenCV_ONNX\\inference.cpp",
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe",
                //"-I","E:\\Git-resp\\C++\\yolov8_CPP_Inference_OpenCV_ONNX",
                "-I",
                "C:\\Users\\wuxulong\\cpp_env_2\\opencv\\build\\mingw-build\\install\\include",
                "-I",
                "C:\\Users\\wuxulong\\cpp_env_2\\opencv\\build\\mingw-build\\install\\include\\opencv2",
                "-L",
                "C:\\Users\\wuxulong\\cpp_env_2\\opencv\\build\\mingw-build\\install\\x64\\mingw\\bin\\lib*"
            ],
			"options": {
				"cwd": "C:\\Users\\wuxulong\\cpp_env_2\\mingw64\\bin"
			},
			"problemMatcher": [
				"$gcc"
			],
			"group": {
                "kind": "build",
                "isDefault": true//表示快捷键Ctrl+Shift+B可以运行该任务
            },
			// "group": "build",
			"detail": "编译器: C:\\Users\\wuxulong\\cpp_env_2\\mingw64\\bin\\g++.exe"
		}
	]
}

main.cpp

bash 复制代码
/***********************  显示指定地址的图片*****************************/

#include<iostream>
#include<opencv2/opencv.hpp>
#include <unistd.h>
// #include<opencv2/core/core.hpp>
// #include<opencv2/highgui/highgui.hpp>
using namespace std;
using namespace cv;

int main(int argc, char** argv)    

{                                  
    Mat image;
    image = imread("data/image/2.jpg");
    if (image.data == nullptr)                     //nullptr是c++11新出现的空指针常量
    {
        cout << "图片文件不存在" << endl;
    }
    else
    {
        //显示图片
        imshow("meinv", image);
        waitKey(0);
    }
    // 输出图片的基本信息
    cout << "图像宽为:" << image.cols << "\t高度为:" << image.rows << "\t通道数为:" << image.channels() << endl;
    sleep(10);
    // 遍历每个像素
    //之所以用y这个名字表示行 是因为图片的坐标系中行号就是y
    for (int y = 0; y < image.rows; y++)
    {
        unsigned char* row_ptr = image.ptr<unsigned char>(y);
        for (int x = 0; x < image.cols; ++x) {
            //这是获得像素数据数组的头指针,注意像素数据可能会有多个通道所以才需要用数组存储
            unsigned char* data_ptr = &row_ptr[x * image.channels()];
            //对当前像素逐个通道输出颜色值
            for (int i = 0; i < image.channels(); ++i) {
                cout << int(data_ptr[i])<<endl;
            }
        }
    }
    // system("pause");
    return 0;
}

结果

参考:2023年最全 Windows + VSCode 配置 OpenCV C++ 一站式开发调试环境教程

相关推荐
会周易的程序员11 分钟前
openplc runtimev4 Docker 部署
运维·c++·物联网·docker·容器·软件工程·iot
爱装代码的小瓶子23 分钟前
【C++与Linux基础】进程间通讯方式:匿名管道
android·c++·后端
CoderCodingNo23 分钟前
【GESP】C++ 二级真题解析,[2025年12月]第一题环保能量球
开发语言·c++·算法
LYOBOYI12329 分钟前
qtcpSocket详解
c++·qt
REDcker32 分钟前
gRPC完整文档
服务器·网络·c++·网络协议·grpc
CaracalTiger1 小时前
OpenClaw-VSCode:在 VS Code 中通过 WebSocket 远程管理 OpenClaw 网关的完整方案
运维·ide·人工智能·vscode·websocket·开源·编辑器
Mr_Xuhhh1 小时前
介绍一下ref
开发语言·c++·算法
王老师青少年编程1 小时前
2024年信奥赛C++提高组csp-s初赛真题及答案解析(完善程序第2题)
c++·题解·真题·初赛·信奥赛·csp-s·提高组
Trouvaille ~1 小时前
【Linux】进程间关系与守护进程详解:从进程组到作业控制到守护进程实现
linux·c++·操作系统·守护进程·作业·会话·进程组
Mr_Xuhhh1 小时前
C++11实现线程池
开发语言·c++·算法