VS2022 配置OpenCV开发环境详细教程

OpenCV

OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库,由Intel开发并首先发布于1999年。OpenCV被广泛用于实时图像处理、视频分析、物体检测、面部识别、机器人视觉以及许多其他领域。它支持C++、Python、Java等多种编程语言,并且提供了数百种计算机视觉算法,包括但不限于:

  • 图像处理:图像滤波、几何变换、直方图均衡化等。
  • 特征检测和描述:SIFT、SURF、ORB等。
  • 物体检测:使用Haar级联或深度学习模型检测人脸、行人等。
  • 视频分析:运动检测、背景减除等。
  • 机器学习:OpenCV集成了一些机器学习框架,可以用于训练和使用分类器。
  • 深度学习:OpenCV 3.4及以上版本支持深度学习模型,特别是使用DNN(Deep Neural Network)模块。

OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉库,它的历史和发展可以追溯到1999年。以下是OpenCV历史的一些关键点:

  • 起源:OpenCV项目由Intel公司在1999年启动,旨在创建一个免费的、开源的计算机视觉库,并开放其源代码以推动计算机视觉领域的研究和发展。

  • 开源发布:2000年,OpenCV发布了第一个公开版本,这标志着OpenCV开源计划的正式启动。

  • 发展
    2005年,OpenCV 2.0 版本发布,引入了面向对象的接口、多核支持、Python 接口等功能。
    2008年,OpenCV加入Google Summer of Code(GSoC)项目,促进了社区的发展。
    2011年,OpenCV 2.3 版本发布,引入了更快的图像处理算法、CUDA加速支持等。

  • 重大更新
    2015年,OpenCV 3.0 版本发布,带来了重大变化,包括C++11支持、模块化架构、DNN模块等。
    2018年,OpenCV 4.0 版本发布,引入了C++11重构、DNN模块的改进、Vulkan后端、性能优化等。

  • 持续发展:从2019年的4.1版本开始,OpenCV继续改进和优化各种功能,如图像处理算法、目标检测算法等。

  • 版本更新:OpenCV持续更新迭代,推出了4.2、4.3、4.4等多个版本,不断引入新功能和改进。

  • 架构支持:2022年12月8日,龙芯中科宣布,OpenCV开源社区正式合入了对LoongArch架构支持的代码,优化后的OpenCV性能显著提升。

  • 最新动态:截至2024年,OpenCV已经发展到4.5版本,且在2022年12月29日发布了4.7.0版,带来了全新的ONNX层,提高了DNN代码的卷积性能。

VS2022配置OpenCV过程

  1. 下载OpenCV库:https://opencv.org/
    在这里插入图片描述
    在这里插入图片描述
  2. 点击opencv-4.9.0-windows.exe
    在这里插入图片描述
  3. 选择合适的目录
    在这里插入图片描述
  4. 提取
    在这里插入图片描述
  5. 在预定目录可以看到提取的文件
    在这里插入图片描述
  6. bin目录添加到系统环境变量opencv\build\x64\vc16\bin
    在这里插入图片描述
  7. 按照系统-系统信息-高级系统设置-环境变量-系统环境变量path-新建-确定顺序,将opencv库路径添加到系统变量中。
    在这里插入图片描述
  8. 重启计算机
  9. 开始验证OpenCV,打开VS2022,新建一个项目
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  10. 空项目已经建立好,点击“项目”,下拉“属性”
    在这里插入图片描述
  11. 配置属性,将下载的OpenCV里include文件目录放到包含目录中。
    在这里插入图片描述
  12. 将OpenCV的lib库文件路径放到库目录中。
    在这里插入图片描述
  13. 修改链接器,将OpenCV中lib库里的opencv_world490d.lib文件名复制到附加依赖项中。
    在这里插入图片描述
  14. 环境配置好,开始测试代码
    在这里插入图片描述
    在这里插入图片描述
  15. 写测试代码,运行demo
#include <opencv2/opencv.hpp>

int main() {
    // 读取图片
    cv::Mat img = cv::imread("amy.png");

    // 检查图片是否成功读取
    if (img.empty()) {
        std::cerr << "Error: Loading image" << std::endl;
        return -1;
    }

    // 创建窗口并显示图片
    cv::namedWindow("Image Display", cv::WINDOW_AUTOSIZE);
    cv::imshow("Image Display", img);

    // 等待按键事件,之后关闭窗口
    cv::waitKey(0);
    cv::destroyAllWindows();

    return 0;
}
  1. 大功高成,显示图片,,在VS2022中配置OpenCV开发环境成功💪,可以玩转OpenCV了。
    在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Flutter应用开发-几种保存简单配置的方式

文章目录 简单配置保存的几种方式使用 shared_preferences 插件优点缺点 使用 hive 插件优点 缺点使用文件存储&#xff1a;优点缺点 简单配置保存的几种方式 在 Flutter 开发的 Android 应用中&#xff0c;保存应用配置并下次启动时读取&#xff0c;有以下几种比较合适的方式…

rust疑难杂症解决

rust疑难杂症解决 边碰到边记录&#xff0c;后续可能会逐步增加&#xff0c;备查 cargo build时碰到 Blocking waiting for file lock on package cache 原因是Cargo 无法获取对包缓存的文件锁&#xff0c; 有时vscode中项目比较多&#xff0c;如果其中某些库应用有问题&…

Docker | 入门:安装与配置

Docker | 入门&#xff1a;安装与配置 Docker 和传统虚拟机区别 对于传统虚拟机&#xff1a; 虚拟出一套硬件&#xff0c;运行一个完整的操作系统&#xff0c;并在这个操作系统上安装和运行软件。 对于 Docker: 将一个个容器隔离开。 容器内的应用直接运行在宿主机的内容&am…

软件模型(简洁明了)

《 软件测试基础持续更新中》 一、软件开发模型 1.1 大爆炸模型 优点&#xff1a;思路简单&#xff0c; 通常可能是开发者的“突发奇 想” 缺点&#xff1a;开发过程是非工程化的&#xff0c;随意性大&#xff0c;结果不可预知 测试&#xff1a;开发任务完成后&#xff0c;…

一个自卑的人怎么变得自信

一个自卑的人怎么变得自信 自卑感是一种常见的心理状态&#xff0c;它可能源于个人对自己能力、外貌、价值等方面的负面评价。自卑感不仅会影响一个人的情绪状态&#xff0c;还可能阻碍其在生活、学习和工作中的表现。然而&#xff0c;自信并非一蹴而就的品质&#xff0c;它需要…

基础款:Dockerfile 文件

# bash复制代码# 使用 Node.js 16 作为基础镜像 # 指定一个已经存在的镜像作为模版&#xff0c;第一条必须是from FROM node:16# 将当前工作目录设置为/app # WORKDIR /app# 方法一&#xff1a;用dockerfile命令&#xff1a;进行下载打包文件 # 将 package.json 和 package-loc…

MySQL 之 主从复制

1. 主配置文件&#xff08;win下是my.ini&#xff0c;linux下是my.cnf&#xff09; #mysql 服务ID,保证整个集群环境中唯一 server-id1 #mysql binlog 日志的存储路径和文件名 log-bin/var/lib/mysql/mysqlbin #错误日志,默认已经开启 #log-err #mysql的安装目录 #basedir #mys…

Linux软件包管理器——yum

文章目录 1.什么是软件包1.1安装与删除命令1.2注意事项1.3查看软件包1.3.1注意事项&#xff1a; 2.关于rzsz3.有趣的Linux下的指令 -sl 1.什么是软件包 在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序. 但是这样太麻烦了, 于是有些人把一…

穷人想要改命,是选择打工还是创业? 2024创业项目小成本!2024轻资产创业!2024风口行业!2024普通人做什么行业赚钱?

今日话题穷人想要改命&#xff0c;是选择打工还是创业&#xff1f; 改命的方式就是跳进水里&#xff0c;忍受呛水&#xff0c;学会游泳&#xff0c;这个过程越年轻实现越好&#xff0c;就像小鹰往山崖下跳&#xff0c;要么学会飞&#xff0c;要么就狠狠的被摔死。打工思维和创…

用vue3实现留言板功能

效果图&#xff1a; 代码&#xff1a; <script setup lang"ts"> import { ref } from vue;interface Message {name: string;phone: string;message: string; }const name ref<string>(); const phone ref<string>(); const message ref<st…

基于YOLOV5和DeepOCSort的实时目标检测跟踪检测系统

项目简介 本项目旨在研究由YOLOV5模型在多目标检测任务重的应用。通过设计YOLOV5模型及DeepOCSORT模型来实现多物体检测、追踪&#xff0c;最终达高实时性、高精度的物件检测、分割、追踪的效果。最后通过AX620A完成嵌入式硬件部署 项目研究背景 近年来&#xff0c;近年来&am…

【Linux】fork函数详解and写时拷贝再理解

&#x1f490; &#x1f338; &#x1f337; &#x1f340; &#x1f339; &#x1f33b; &#x1f33a; &#x1f341; &#x1f343; &#x1f342; &#x1f33f; &#x1f344;&#x1f35d; &#x1f35b; &#x1f364; &#x1f4c3;个人主页 &#xff1a;阿然成长日记 …

茶叶直播间电商运营带货方案营销计划书

【干货资料持续更新&#xff0c;建议先关注&#xff0c;以防走丢】 茶叶直播间电商运营带货方案营销计划书 部分资料预览 资料部分是网络整理&#xff0c;仅供学习参考。 PPT可编辑&#xff08;完整资料包含以下内容&#xff09; 目录 直播带货方案细化 1. 直播筹划 - 目标…

基于SSM+Jsp+Mysql的汽车租赁系统的设计与实现

开发语言&#xff1a;Java框架&#xff1a;ssm技术&#xff1a;JSPJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包…

OpenHarmony实战开发-如何实现单一手势

点击手势&#xff08;TapGesture&#xff09; TapGesture(value?:{count?:number; fingers?:number})点击手势支持单次点击和多次点击&#xff0c;拥有两个可选参数&#xff1a; count&#xff1a;声明该点击手势识别的连续点击次数。默认值为1&#xff0c;若设置小于1的非…

poi-tl自定义渲染策略学习

文章目录 实现逻辑参考代码注意点 实现逻辑 自定义渲染策略实现逻辑&#xff1a; 找到模板中的表格标签render方法接收java中对应模板表格标签的所有list数据执行自定义渲染逻辑 参考代码 word模板如下&#xff1a; 实体类&#xff1a; Data public class GksxRowData {/…

结构体枚举、联合、位段

枚举 枚举顾名思义就是一一列举。 把可能的取值一一列举。 比如我们现实生活中&#xff1a; 一周的星期一到星期日是有限的7天&#xff0c;可以一一列举。 性别有&#xff1a;男、女、保密&#xff0c;也可以一一列举。 月份有12个月&#xff0c;也可以一一列举 这里就可以使…

Shader for Quest 2: 自定义shader在Unity Editor中可以使用,但是在Quest 2中却不可以

GameObject segment GameObject.Find("DisplayArea_" i); MeshRenderer renderer segment.GetComponent<MeshRenderer>(); Material mat new Material(Shader.Find("Custom/MyShader")); mat.mainTexture option.Image360;上面这份代码&#x…

低代码开发之腾讯云微搭工具

低代码开发之腾讯云微搭工具 微搭简介诞生缘由开发模式如何创建组件模块介绍实例讲解url传参级联联动使用事件其他方法调用数据源方法 callDataSource触发流程 callProcess 引入外部css/js代码编辑器的使用Handler 方法使用介绍Style 用法示例LifeCycle 生命周期介绍 数据模型方…

【1471】java项目进度管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java 项目进度管理系统是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysql5.0&…