VScode + opencv + c++ + win配置教程

准备:

1、下载opencv

2、下载MinGw
3、

3、下载CMake

下载完解压放到一个文件夹里面,便于环境管理,文件夹我重命名了,解压出来文件名不一样正常

环境变量配置

bash 复制代码
C:\Users\wuxulong\cpp_env\MinGw\mingw64\bin
C:\Users\wuxulong\cpp_env\cmake\bin
C:\Users\wuxulong\cpp_env\OpenCV-MinGW-Build-OpenCV-4.5.2-x64\x64\mingw\bin

4、安装vscode扩展

5、新建main.cpp

bash 复制代码
/***********************  显示指定地址的图片*****************************/
#include<iostream>
#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("test.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;
    
    // 遍历每个像素
    //之所以用y这个名字表示行 是因为图片的坐标系中行号就是y
    for (size_t y = 0; y < image.rows; y++)
    {
        unsigned char* row_ptr = image.ptr<unsigned char>(y);
        for (size_t 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;
}

6、新建task.json

bash 复制代码
{
	"version": "2.0.0",
	"tasks": [
		{
			"type": "cppbuild",
			"label": "g++.exe build active file",
			"command": "C:\\Users\\wuxulong\\cpp_env\\MinGw\\mingw64\\bin\\g++.exe",
			"args": [
                "-fdiagnostics-color=always",
                "-g",
                // "-std=c++11",
                "${file}",
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe",
                "-I",
                "C:\\Users\\wuxulong\\cpp_env\\OpenCV-MinGW-Build-OpenCV-4.5.2-x64\\include",
                "-I",
                "C:\\Users\\wuxulong\\cpp_env\\OpenCV-MinGW-Build-OpenCV-4.5.2-x64\\include\\opencv2",
                "-L",
                "C:\\Users\\wuxulong\\cpp_env\\OpenCV-MinGW-Build-OpenCV-4.5.2-x64\\x64\\mingw\\lib",
                "-L",
                "C:\\Users\\wuxulong\\cpp_env\\OpenCV-MinGW-Build-OpenCV-4.5.2-x64\\x64\\mingw\\bin",
                "-l",
                "libopencv_calib3d452",
                "-l",
                "libopencv_core452",
                "-l",
                "libopencv_dnn452",
                "-l",
                "libopencv_features2d452",
                "-l",
                "libopencv_flann452",
                "-l",
                "libopencv_gapi452",
                "-l",
                "libopencv_highgui452",
                "-l",
                "libopencv_imgcodecs452",
                "-l",
                "libopencv_imgproc452",
                "-l",
                "libopencv_ml452",
                "-l",
                "libopencv_objdetect452",
                "-l",
                "libopencv_photo452",
                "-l",
                "libopencv_stitching452",
                "-l",
                "libopencv_video452",
                "-l",
                "libopencv_videoio452"
            ],
			"options": {
				"cwd": "C:\\mingw64\\bin"
			},
			"problemMatcher": [
				"$gcc"
			],
			"group": {
                "kind": "build",
                "isDefault": true//表示快捷键Ctrl+Shift+B可以运行该任务
            },
			// "group": "build",
			"detail": "编译器: C:\\mingw64\\bin\\g++.exe"
		}
	]
}

7、新建launch.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\\MinGw\\mingw64\\bin\\gdb.exe",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
  }

8、新建c_cpp_properties.json

bash 复制代码
{
    "configurations": [
        {
       "name": "Win32",
          "includePath": [
                "${workspaceFolder}/**",
                "C:\\Users\\wuxulong\\cpp_env\\OpenCV-MinGW-Build-OpenCV-4.5.2-x64\\include",//修改这里
                "C:\\Users\\wuxulong\\cpp_env\\OpenCV-MinGW-Build-OpenCV-4.5.2-x64\\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\\MinGw\\mingw64\\bin\\g++.exe",//修改这里
           "cStandard": "c11",
           //"cStandard": "c17",
           "cppStandard": "c++17",
           "intelliSenseMode": "gcc-x64"
           //"intelliSenseMode": "windows-gcc-x64"
           //"intelliSenseMode": "${default}"
       }
   ],
   "version": 4
}

9、运行 快捷键F5

相关推荐
Techblog of HaoWANG2 小时前
目标检测与跟踪 (8)- 机器人视觉窄带线激光缝隙检测系统开发
人工智能·opencv·目标检测·机器人·视觉检测·控制
智者知已应修善业3 小时前
【查找字符最大下标以*符号分割以**结束】2024-12-24
c语言·c++·经验分享·笔记·算法
91刘仁德4 小时前
c++类和对象(下)
c语言·jvm·c++·经验分享·笔记·算法
diediedei4 小时前
模板编译期类型检查
开发语言·c++·算法
编码小哥4 小时前
OpenCV图像滤波技术详解:从均值滤波到双边滤波
人工智能·opencv·均值算法
mmz12074 小时前
分治算法(c++)
c++·算法
一切尽在,你来4 小时前
C++多线程教程-1.2.1 C++11/14/17 并发特性迭代
开发语言·c++
80530单词突击赢4 小时前
C++入门指南:从零到精通
开发语言·c++
Tansmjs5 小时前
C++编译期数据结构
开发语言·c++·算法
diediedei5 小时前
C++类型推导(auto/decltype)
开发语言·c++·算法