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

news2024/11/27 16:39:53

准备:
1、下载opencv
下载opencv
2、下载MinGw
在这里插入图片描述3、
3、下载CMake
在这里插入图片描述
下载完解压放到一个文件夹里面,便于环境管理,文件夹我重命名了,解压出来文件名不一样正常
在这里插入图片描述
环境变量配置
在这里插入图片描述

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
在这里插入图片描述

/***********************  显示指定地址的图片*****************************/
#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

{
	"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

{
    // 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

{
    "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
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1169008.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

联想服务器-HTTP boot安装Linux系统

HTTP boot与传统PXE的主要差异 HTTP不再需要使用UDP协议的tftp服务&#xff08;连接不可靠、不支持大文件&#xff09;了&#xff0c;只需要dhcp 和http 两个服务即可&#xff0c;支持较稳定的大文件传输。 实验环境 ThinkSystem服务器SR650V2 SR660V2 通过HTTP boot安装Cen…

Android java Handler sendMessage使用Parcelable传递实例化对象,我这里传递Bitmap 图片数据

一、Bundle给我们提供了一个putParcelable(key,value)的方法。专门用于传递实例化对象。 二、我这里传递Bitmap 图片数据&#xff0c;实际使用可以成功传统图像数据。 发送&#xff1a;Bundle bundle new Bundle();bundle.putParcelable("bitmap",bitmap);msg.setD…

YOLO算法改进5【中阶改进篇】:添加SENet注意力机制

SE-Net 是 ImageNet 2017&#xff08;ImageNet 收官赛&#xff09;的冠军模型&#xff0c;是由WMW团队发布。具有复杂度低&#xff0c;参数少和计算量小的优点。且SENet 思路很简单&#xff0c;很容易扩展到已有网络结构如 Inception 和 ResNet 中。 我们可以看到&#xff0c;已…

NLP 模型中的偏差和公平性检测

一、说明 近年来&#xff0c;自然语言处理 &#xff08;NLP&#xff09; 模型广受欢迎&#xff0c;彻底改变了我们与文本数据交互和分析的方式。这些基于深度学习技术的模型在广泛的应用中表现出了卓越的能力&#xff0c;从聊天机器人和语言翻译到情感分析和文本生成。然而&…

IntelliJ IDEA2023旗舰版和社区版下载安装教程(图解)

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

【C语法学习】14 - 流和文件

文章目录 1 流1.1 概念1.2 优点1.3 分类1.3.1 输入流和输出流1.3.2 标准流和文件流1.3.2.1 标准流1.3.2.2 文件流 1.3.3 文本流和二进制流 4 文件4.1 分类4.2 区别 1 流 1.1 概念 "流"的概念比较抽象&#xff0c;经典C语言书籍《C Primer Plus》中是这样描述的&…

两分钟搞定MySQL安装——极速mysql5.7安装教程

一、下载mysql mysql官网传送带&#xff1a; MySQL :: Download MySQL Community Server 选择好版本后直接下载即可&#xff0c;版本格式为zip格式。 二、安装mysql 1、解压zip安装包 ps&#xff1a;解压缩的路径里面不要出现中文哦&#xff01; 2、设置配置文件 新建data…

字节10年经验,花3个月熬夜整理的超全面试真题(附答案)

软件测试工程师&#xff0c;和开发工程师相比起来&#xff0c;虽然前期可能不会太深&#xff0c;但是涉及的面还是比较广的。前期面试实习生或者一年左右的岗位&#xff0c;问的也主要是一些基础性的问题比较多。涉及的知识主要有MySQL数据库的使用、Linux操作系统的使用、软件…

一、修改Ubuntu的IP

1、配置虚拟机 三台虚拟机&#xff0c;分别为node1、node2、node3&#xff0c;内存分别为4G、2G、2G&#xff0c;现存最好为&#xff08;>40G&#xff09;&#xff0c;如下&#xff1a; 2、修改主机名 分别打开三台虚拟机&#xff0c;root用户输入一下命令&#xff1a; no…

too many open files(打开的文件过多)解决办法

我们java服务报java.net.SocketException: 打开的文件过多 由于我们文件服务用的是minio 所以排查思路应该是进入文件服务器查看minio的pid ps -ef |grep minio lsof -p 11956 | wc -l 由此可以看出已经打开数为1950了 所以我们要提升打开文件数&#xff08;openfile&#…

matlab矩阵的输入

一段时间不操作感觉有些模糊&#xff1b;下面复习一下&#xff1b; 矩阵的数字之间用空格分开&#xff0c;每一行以分号结尾&#xff1b; 空格多几个也是可以识别的&#xff1b; 数字也可以用逗号隔开&#xff0c;只要一行的结尾是分号即可&#xff1b; 空格多输入几个是可…

Rust编程基础核心之所有权(上)

1.什么是所有权? Rust 的核心功能&#xff08;之一&#xff09;是 所有权&#xff08;ownership&#xff09;。虽然该功能很容易解释&#xff0c;但它对语言的其他部分有着深刻的影响。 所有程序都必须管理其运行时使用计算机内存的方式。一些语言中具有垃圾回收机制&#x…

【李群李代数】【manif 】基于固定信标的2D机器人定位 (Error State Kalman Filter)...

demo演示 运行结果 我们考虑一个机器人在平面上被少量的准时地标或_信标 包围。 机器人以轴向速度和角速度的形式接收控制动作&#xff0c;并且能够测量信标相对于其自身参考系的位置。 机器人位姿 X 在 SE(2) 中&#xff0c;信标位置 b_k 在 R^2 中&#xff0c; | cos th -si…

配置Raspberry自动连接WIFI,在无法查看路由器的校园网情况下使用自己电脑热点

1、开启电脑热点&#xff0c;并共享电脑WLAN2 打开控制面板->网络和Internet->网络连接 选择自己的校园网&#xff0c;我这里是WLAN2&#xff0c;右键属性&#xff0c;如下操作&#xff1a; 如果没有看到 本地连接*10类似的图标 则按如下操作&#xff1a;winx键&#x…

国家统计局教育部各级各类学历教育学生情况数据爬取

教育部数据爬取 1、数据来源2、爬取目标3、网页分析4、爬取与解析5、如何使用Excel打开CSV1、数据来源 国家统计局:http://www.stats.gov.cn/sj/ 教育部:http://www.moe.gov.cn/jyb_sjzl/ 数据来源:国家统计局教育部文献教育统计数据2021年全国基本情况(各级各类学历教育学…

网络协议的基本概念

网络协议的基本概念 随处可见的协议 在计算机网络与信息通信领域里&#xff0c;人们经常提及“协议”一词。互联网中常用的具有代表性的协议有IP、TCP、HTTP等。 “计算机网络体系结构”将这些网络协议进行了系统归纳。TCP/IP就是IP、TCP、HTTP等协议的集合。现在&#xff0…

【MATLAB源码-第67期】基于麻雀搜索算法(SSA)的无人机三维地图路径规划,输出最短路径和适应度曲线。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 ​麻雀搜索算法&#xff08;Sparrow Search Algorithm, SSA&#xff09;是一种新颖的元启发式优化算法&#xff0c;它受到麻雀社会行为的启发。这种算法通过模拟麻雀的食物搜索行为和逃避天敌的策略来解决优化问题。SSA通过模…

常用的网站扫描工具

破壳扫目录 7KB扫目录 safe3扫漏洞

怎样做好金融投资翻译

我们知道&#xff0c; 金融投资翻译所需的译文往往是会议文献、年终报表、信贷审批等重要企业金融资料&#xff0c;其准确性事关整个企业在今后一段时期内的发展战略与经营成效。尤其像年报&#xff0c;对于上市公司来说更是至关重要的。那么&#xff0c;怎样做好金融投资翻译&…

【C语言初学者周冲刺计划】5.1C语言知识点小总结

目录 1知识点一&#xff1a; 2知识点二&#xff1a; 3知识点三&#xff1a; 4代码&#xff1a; 5总结&#xff1a; 1知识点一&#xff1a; 1 C语言中要求对变量作强制定义的主要理由是( )。 便于确定类型和分配空间 2 【单选题】若有定义&#xff1a;int m7; float x…