当前位置: 首页 > news >正文

【OpenCV】window 下 VS Code 配置OpenCV

文章目录

    • 前言
    • 直接使用OpenCV 编译好的库
    • 自己编译OpenCV
      • VS Code 安装
      • MinGW下载
      • 下载Cmake
      • 编译OpenCV
    • VS Code 运行cv程序
      • VSCode配置
      • 运行CV程序
    • 参考文章

前言

在网上找了些资料,大致得出VS Code开发OpenCV的环境配置流程,如下

  1. 安装VS Code
  2. 安装MinGW
  3. 安装CMake
  4. 下载OpenCV
  5. 配置OpenCV
  6. 配置VS Code

曾经在公司用过OpenCV,貌似并没有编译这一步,不明所以

以下是GPT的回答:

使用 CMake 来编译和配置 OpenCV 有几个重要原因:

  1. 跨平台支持:CMake 是一个跨平台的构建系统,可以生成适用于不同操作系统(如 Windows、Linux 和 macOS)的项目文件。这使得 OpenCV 可以在各种平台上编译和使用¹⁴。
  2. 自动化配置:CMake 可以自动检测系统上的编译器和库,并生成相应的构建文件。这减少了手动配置的复杂性和错误的可能性²³。
  3. 模块化构建:通过 CMake,开发者可以选择性地编译 OpenCV 的特定模块或功能,而不需要编译整个库。这对于定制和优化项目非常有用¹⁴。
  4. 与其他工具的兼容性:CMake 可以生成适用于多种 IDE(如 Visual Studio、Xcode)的项目文件,使得开发者可以在自己熟悉的环境中进行开发和调试²³。
    总的来说,CMake 提供了一种灵活、高效的方式来配置和编译 OpenCV,使得开发过程更加顺畅和高效。如果你不需要查看或修改 OpenCV 的源码,可以使用预编译的库文件,这样就不需要安装 CMake⁵。

这很明显是答非所问呀!
接下来看下官网的回答

To use the OpenCV library you have two options: Installation by Using the Pre-built Libraries or Installation by Making Your Own Libraries from the Source Files . While the first one is easier to complete, it only works if you are coding with the latest Microsoft Visual Studio IDE and do not take advantage of the most advanced technologies we integrate into our library1
要使用 OpenCV 库,您有两种选择: 使用预先构建的库进行安装,或者从源文件中创建自己的库进行安装。虽然第一个更容易完成,但它只有在您使用最新的 Microsoft Visual Studio IDE 编写代码并且没有利用我们集成到库中的最先进技术时才能工作

然后看下其他码农的回答

网下载好的opencv库和用Mingw64编译的不一样。官网下载opencv需要找到和VS版本相符合的库。vs是无法调用官网opencv的。用Mingw64编译好后,只需要lib文件夹和include文件夹就好。2

通过上面我们大致可以得出,使用OpenCV库的使用方式

  1. 使用官网编译好的.lib.dll,对IDE有一定限制,并且只能以动态库的方式调用
  2. 下载源码,自己编译

那么接下来分别讲下以上两种方式

直接使用OpenCV 编译好的库

  1. 在OpenCV官网下载在这里插入图片描述
  2. 下载完成后会有一个.exe,直接安装就好,安装后dll在如下路径在这里插入图片描述
  3. 直接在VS studio引入include和dll即可

自己编译OpenCV

需要的工具有VS Code、OpenCV源码、MinGW(编译g++)、Cmake(编译)

VS Code 安装

  1. VS Code下载
  2. 下载完成,直接安装即可VS Code\bin
  3. 安装成功的标识是,环境变量添加了在这里插入图片描述
    VS Code 本质上是一个文本编辑器,是众多插件赋予了其丰富的功能

MinGW下载

  1. 官网下载最新即可,mingw 下载在这里插入图片描述
    下载后缀为seh的包,posixUNIX系统下的包
  2. 解压放在任意目录下即可
  3. bin目录添加到环境变量中在这里插入图片描述
  4. 打开cmd,输入g++ --version,显示g++版本号说明安装成功在这里插入图片描述

下载Cmake

下载版本version >=3.9.1即可
1中有提到,You must download cmake (version >=3.9.1) and install it. You must add cmake to PATH variable during installation

  1. Cmake 下载,记得要下载二进制文件,我自己下载当时最新的版本在这里插入图片描述

  2. 解压缩后,将其中bin目录路径添加到环境变量中在这里插入图片描述

  3. CMD输入cmake --version,显示版本号则处理正确在这里插入图片描述

编译OpenCV

  1. 找到cmake/bin/cmake-gui.exe,打开
  2. 选择编译源文件和目标文件在这里插入图片描述
  3. 执行configure,选择如下,自己生成中未截图,拷贝了几份网其他博客的图在这里插入图片描述
  4. 选择C和C++的编译器目录在这里插入图片描述
  5. 执行过程中消息框会出现一堆红色信息,最后显示Configure done,是正常的。显示Configure done后,勾选BUILD_ opencv_worldWITH_ OPENGLBUILD EXAMPLES,不勾选WITH_IPPWITH_MSMFENABLE_PRECOMPILED_HEADERS (如果有的话),CPU_ DISPATCH选空( MinGW 不能编译这些内容,禁止编译即可)。再次点击Generate
  6. 生成如下,则表示成功在这里插入图片描述
    PS:如果中间有错误,可自行百度,题主未发生错误可能是挂了梯子
  7. CMD到MakeFiles所在文件夹,执行minGW32-make命令,或者使用多线程minGW32-make -j 4命令,这个过程比较漫长,甚至会发生错误,发生错误可参考这篇文章3,或者自己读一下错误,或者百度,或者找我亦可。执行成功如下在这里插入图片描述
  8. 执行mingw32-make install,编译完成后记得输入minGW32-make install完成装载,这样才会生成Install文件夹。记住install文件夹,非常重要
    至此,OpenCV编译已经完成

VS Code 运行cv程序

一共配置三个文件,这三个文件作用可以查看前面的博客

VSCode配置

launch.json

{"name": "OpenCV Debug","type": "cppdbg","request": "launch","program": "${fileDirname}/${fileBasenameNoExtension}.exe","args": [],"stopAtEntry": false,"cwd": "${fileDirname}","environment": [],//是否调用外部cmd"externalConsole": true,"MIMode": "gdb","miDebuggerPath": "C:\\msys64\\mingw64\\bin\\gdb.exe","setupCommands": [{"description": "为 gdb 启用整齐打印","text": "-enable-pretty-printing","ignoreFailures": true}],"preLaunchTask": "OpenCV 4.4.0 compile task"
}

c_cpp_properties.json
可以输入shift+ctrl+p打开

{"configurations": [{"name": "Win32","includePath": ["${workspaceFolder}/**",// 需要填写头文件路径,记住此处时/install/include"D:/OpenCV/opencv-4.4.0/x64/install/include","D:/OpenCV/opencv-4.4.0/x64/install/include/opencv2"],"defines": ["_DEBUG","UNICODE","_UNICODE"],"compilerPath": "C:/msys64/mingw64/bin/g++.exe","cStandard": "c11","cppStandard": "c++17","intelliSenseMode": "windows-gcc-x64"}],"version": 4
}

tasks.json
其中args的内容需要修改

{"label": "OpenCV 4.4.0 compile task","type": "shell","command": "g++","args": ["-fdiagnostics-color=always","-g","${file}","-o","${fileDirname}/${fileBasenameNoExtension}.exe","-I","D:/OpenCV/opencv-4.4.0/x64/install/include","-I","D:/OpenCV/opencv-4.4.0/x64/install/include/opencv2","-L","D:/OpenCV/opencv-4.4.0/x64/bin","-l","libopencv_world440"],"group": {"kind": "build","isDefault": true},"problemMatcher": ["$gcc"]}

运行CV程序

#include <iostream>
#include <opencv2/opencv.hpp>int main()
{std::string path = "C:/_20240530235524.jpg";cv::Mat img = cv::imread(path);cv::imshow("img", img);cv::waitKey(0);return 0;
}

这里需要特别注意,因我的环境配置了g++,因此直接选择右上角的调试会默认使用第一条task,那么可能并不是cv调试,这时可以使用shift+ctrl+b,选择OpenCV task即可编译,然后F5运行

参考文章

  1. win10下VSCode配置opencv4.4.0(超详细教程,亲测有效)
  2. 一文解决VS Code安装、C++环境配置、OpenCV配置
  3. OpenCV使用CMake和MinGW-w64的编译安装
  4. VScode搭建Opencv(C++开发环境)

  1. OpenCV Installation in Windows ↩︎ ↩︎

  2. win10下VSCode配置opencv4.4.0(超详细教程,亲测有效)评论 ↩︎

  3. OpenCV使用CMake和MinGW-w64的编译安装 ↩︎

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【阿旭机器学习实战】【38】支持向量机SVM实现手写数字识别,模型训练、评估,以及参数调优全流程
  • maven下载及配置详细介绍(2024最新攻略)
  • opencv颜色格式
  • LeetCode旋转图像
  • 自动驾驶行业知识汇总
  • ChatMoneyAI嘴替,高情商回复
  • 【前端】NodeJS:实战案例——记账本
  • 知识与智慧
  • Proxmox LXC 部署ubuntu,centos
  • 在进行等保测评时,如何确保技术风险和非技术风险的评估结果具有可操作性?
  • Untiy Modbus 西门子 S7-1200 基础通信
  • wps云字库字体下载到电脑
  • 使用 Prometheus 和 Grafana 监控 FastAPI 服务
  • access函数
  • LabVIEW软件开发的未来是什么?
  • 【剑指offer】让抽象问题具体化
  • Angular 4.x 动态创建组件
  • AWS实战 - 利用IAM对S3做访问控制
  • Django 博客开发教程 8 - 博客文章详情页
  • hadoop集群管理系统搭建规划说明
  • Hibernate【inverse和cascade属性】知识要点
  • java8 Stream Pipelines 浅析
  • Mac 鼠须管 Rime 输入法 安装五笔输入法 教程
  • maya建模与骨骼动画快速实现人工鱼
  • node.js
  • Redux系列x:源码分析
  • Spring框架之我见(三)——IOC、AOP
  • Vue--数据传输
  • webpack入门学习手记(二)
  • 仿天猫超市收藏抛物线动画工具库
  • 开源SQL-on-Hadoop系统一览
  • 力扣(LeetCode)22
  • 罗辑思维在全链路压测方面的实践和工作笔记
  • 强力优化Rancher k8s中国区的使用体验
  • 推荐一个React的管理后台框架
  • 正则表达式
  • linux 淘宝开源监控工具tsar
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • ​如何使用ArcGIS Pro制作渐变河流效果
  • #Datawhale AI夏令营第4期#多模态大模型复盘
  • #HarmonyOS:Web组件的使用
  • #QT(一种朴素的计算器实现方法)
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • #数据结构 笔记三
  • (LeetCode) T14. Longest Common Prefix
  • (二)构建dubbo分布式平台-平台功能导图
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • (蓝桥杯每日一题)平方末尾及补充(常用的字符串函数功能)
  • (三)模仿学习-Action数据的模仿
  • (已解决)vue+element-ui实现个人中心,仿照原神
  • (转)Spring4.2.5+Hibernate4.3.11+Struts1.3.8集成方案一
  • .360、.halo勒索病毒的最新威胁:如何恢复您的数据?
  • .bat批处理(一):@echo off
  • .NET CORE 3.1 集成JWT鉴权和授权2
  • .NET Core MongoDB数据仓储和工作单元模式封装