1、opencv介绍与开发环境搭建

news2024/11/17 4:44:52

1、opencv介绍

OpenCV 是 Intel 开源计算机视觉库,是一个跨平台的开源计算机视觉和机器学习软件库。它由一系列 C 函数和少量 C++ 类构成,可用于开发实时的图像处理、计算机视觉以及模式识别程序。

该库有 2500 多种优化算法,其中包括一套全面的经典和最先进的计算机视觉和机器学习算法。
这些算法可用于检测和识别人脸、识别物体、对视频中的人类行为进行分类、跟踪摄像机运动、跟踪移动物体、提取物体的三维模型、从立体摄像机中产生三维点云、将图像拼接起来以产生整个场景的高分辨率图像、从图像数据库中找到类似的图像、从使用闪光灯拍摄的图像中去除红眼、跟踪眼睛的运动、识别风景并建立标记以叠加到增强现实中等等。


OpenCV 拥有超过 4.7 万人的用户群,估计下载量超过 1800 万。该库在公司、研究小组和政府机构中被广泛使用。除了谷歌、雅虎、微软、英特尔、IBM、索尼、本田、丰田等知名公司外,还有许多初创公司,如 Applied Minds、VideoSurf 和 Zeitera 等都在广泛使用 OpenCV。


OpenCV 的应用范围很广,包括将街景图像拼接在一起,在以色列检测监控视频中的入侵行为,在中国监控矿山设备,在 Willow Garage 帮助机器人导航和拾取物体,
在欧洲检测游泳池溺水事故,在西班牙和纽约运行互动艺术,在土耳其检查跑道上的碎片,在世界各地的工厂检查产品的标签,以及在日本快速检测人脸。

它有 C++、Python、Java 和 MATLAB 接口,支持 Windows、Linux、  Android 和 Mac OS。OpenCV 主要倾向于实时视觉应用程序,并在可用时利用 MMX 和 SSE 指令。 目前正在积极开发功能齐全的 CUDA 和 OpenCL 接口。有超过 500 种算法和大约 10 倍的函数组成或支持这些算法。OpenCV 是用 C++ 原生编写的,具有可与 STL 容器无缝协作的模板化接口。

OpenCV 具有模块化结构,这意味着该软件包包含多个共享或静态库。以下模块可用:
核心功能(core)- 定义基本数据结构的紧凑模块,包括密集的多维数组 Mat 和所有其他模块使用的基本功能。
图像处理 ( imgproc ) - 一个图像处理模块,包括线性和非线性图像过滤、几何图像变换(调整大小、仿射和透视变形、通用的基于表格的重新映射)、色彩空间转换、直方图等。
Video Analysis ( video ) - 一个视频分析模块,包括运动估计、背景减除和对象跟踪算法。
相机校准和 3D 重建 ( calib3d ) - 基本的多视图几何算法、单相机和立体相机校准、物体姿态估计、立体对应算法和 3D 重建的元素。
2D 特征框架 ( features2d ) - 显着特征检测器、描述符和描述符匹配器。
对象检测 ( objdetect ) - 检测预定义类的对象和实例(例如,面部、眼睛、杯子、人、汽车等)。
高级 GUI ( highgui ) - 简单 UI 功能的易于使用的界面。
视频 I/O ( videoio ) - 一个易于使用的视频捕获和视频编解码器接口。
 一些其他帮助模块,例如 FLANN 和 Google 测试包装器、Python 绑定等。
        

2、opencv安装与配置

2.1、安装VS2019

按照正常安装即可

2.2、下载opencv4.5.5

https://opencv.org/releases/       国外网站下载比较慢

2.3、配置环境

1、将下载好的opencv4.5.5解压到新的文件夹中


2、将三个.dll文件复制到C盘的System32里面

3、开始配置VS2022


①、新建一个项目

②、打开属性管理器

③、设置属性表

设置解决访问为release x64

添加新项目属性表

④、设置包含目录和库目录

添加包含目录的两个路径

E:\opencv\opencv\build\include\opencv2

E:\opencv\opencv\build\include

添加库目录的路径

E:\opencv\opencv\build\x64\vc15\lib

设置链接器->输入

4、设置环境变量

E:\opencv\opencv\build\x64\vc15\bin

5、开始测试

①添加main.cpp

②、在项目目录下放一张图片

③、编写测试代码

#include<opencv2/opencv.hpp>

#include<iostream>



using namespace cv;

using namespace std;



int main()

{

    // 读取图片按原来的1/4

    Mat img = imread("1.jpg", IMREAD_REDUCED_COLOR_4);

    // 显示图片

    imshow("input", img);



    waitKey(0);

    destroyAllWindows();

    return 0;

}

④、运行

2.4、导出模板

①、导出模板

②、测试模板

创建新项目,搜索模板名称”opencv_demo”模板会自动出现,点击创建新项目

参考文档:【图像处理】VS2019+opencv4.5.5安装_opencv455-CSDN博客

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

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

相关文章

HarmonyOS ArkUI实战开发-NAPI 加载原理(上)

笔者在前 6 小结讲述了NAPI 的基本使用&#xff0c;包括同步和异步实现&#xff0c;本节笔者从源码的角度简单讲解一下NAPI 的加载流程&#xff0c;源码版本为 ArkUI 4.0 Release 版本。 hap 工程结构 工程配置签名后打一个 hap 包出来&#xff0c;然后解压该 hap 文件&#…

重发布及路由策略实验

目录 一、实验拓扑 二、实验需求 1、按照图示配置 IP 地址&#xff0c;R1&#xff0c;R3&#xff0c;R4 上使用 loopback 口模拟业务网段 2、R2&#xff0c;R3 和R4运行 oSPF&#xff0c;各自协议内部互通 3、在 RIP 和 oSPF 间配置双向路由引入&#xff0c;要求除 R4 上的…

C++初阶学习第二弹——C++入门(下)

C入门&#xff08;上&#xff09;&#xff1a;C初阶学习第一弹——C入门&#xff08;上&#xff09;-CSDN博客 目录 一、引用 1.1 引用的实质 1.2 引用的用法 二、函数重载 三、内敛函数 四、auto关键字 五、总结 前言&#xff1a; 在上面一章我们已经讲解了C的一些基本…

【C语言】strstr函数刨析-----字符串查找

目录 一、strstr 函数介绍 ✨函数头文件&#xff1a; ✨函数原型&#xff1a; ✨函数解读 ✨功能演示 二、函数的原理以及模拟实现 ✨函数原理 ✨函数的模拟实现 三、strstr函数的注意事项 四、共勉 一、strstr 函数介绍 strstr函数是在一个字符串中查找另一个字符…

Leetcode 86. 分隔链表

题目链接&#xff1a; 86. 分隔链表 - 力扣&#xff08;LeetCode&#xff09;https://leetcode.cn/problems/partition-list/description/ 题目&#xff1a; 给你一个链表的头节点 head 和一个特定值 x &#xff0c;请你对链表进行分隔&#xff0c;使得所有 小于 x 的节点都出…

CDN技术:全球化的数字内容快速分发系统

CDN技术&#xff1a;全球化的数字内容快速分发系统 在今天的互联网世界中&#xff0c;内容分发网络&#xff08;CDN&#xff09;技术起着至关重要的作用。它通过全球分布的服务器网络&#xff0c;快速、安全地将内容送达世界各地的用户&#xff0c;极大地提升了网页加载速度和…

SpringBoot+vue开发记录(二)

说明&#xff1a;本篇文章的主要内容为SpringBoot开发中后端的创建 项目创建: 1. 新建项目&#xff1a; 如下&#xff0c;这样简单创建就行了&#xff0c;JDK什么的就先17&#xff0c;当然1.8也是可以的&#xff0c;后面可以改。 这样就创建好了&#xff1a; 2. pom.xml…

【Android12】Bugreport实现原理

Bugreport实现原理 Bugreport Bugreport介绍 Android Bugreport是一个用于记录和收集 Android设备上系统信息、日志和调试信息的工具。 系统发生某些问题时&#xff0c;可以通过bugreport把系统当前时刻点&#xff08;运行BugRepot的时刻&#xff09;的系统相关的状态和信息…

Redis中BitMap在钉钉机器人中的应用

性能分析 数据库中有1000w用户&#xff0c;每个用户签到一次&#xff0c;对应两个字段 连续签到多少次 、签到时间。 签到时间字段占用10个字节&#xff0c;连续签到多少天 占用5个字节&#xff08;假设一个用户能活100年&#xff0c;每天都签到&#xff0c;一个用户最多签到3…

【爬取研招网指定学校专业信息】

前言 本文介绍了如何使用 Python 的 requests 库和 BeautifulSoup 库来爬取研究方向信息&#xff0c;并将其保存为 CSV 文件。爬取的网站为“中国研究生招生信息网”&#xff08;https://yz.chsi.com.cn/&#xff09;。代码从指定的专业目录页面爬取研究方向的相关信息&#x…

ROM修改进阶教程------services.jar文件过小 合并odex apk合并odex 几种方法步骤解析

在上期博文中有说明去卡密等相关操作。但在安卓低版本中有些services.jar文件过小。大小不足1K,这种是无法直接反编译的。我们简单使用压缩软件打开查看。其中文件小的里面没有dex文件。这种需要我们先合并odex使其成为一个可以直接反编译的文件再来操作。操作也可以用于其他a…

Day 31 贪心算法理论基础 455.分发饼干 376. 摆动序列 53. 最大子序和

贪心算法理论基础 ​ 贪心算法的本质&#xff1a;选择每一个阶段的局部最优&#xff0c;从而达到系统的整体最优&#xff1b; ​ 贪心的套路就是没有套路&#xff0c;最好的策略就是举反例&#xff0c;因为大多数时候并不要求严格证明&#xff0c;只需要得到普遍性结论即可&a…

Linux之ebpf(1)基础使用

Linux之ebpf(1)基础使用 Author: Once Day Date: 2024年4月20日 一位热衷于Linux学习和开发的菜鸟&#xff0c;试图谱写一场冒险之旅&#xff0c;也许终点只是一场白日梦… 漫漫长路&#xff0c;有人对你微笑过嘛… 全系列文章可以参考专栏&#xff1a;Linux基础知识_Once-D…

C语言:数据结构(单链表)

目录 1. 链表的概念及结构2. 实现单链表3. 链表的分类 1. 链表的概念及结构 概念&#xff1a;链表是一种物理存储结构上非连续、非顺序的存储结构&#xff0c;数据元素的逻辑顺序是通过链表的指针链接次序实现的。 链表的结构跟火车车厢相似&#xff0c;淡季时车次的车厢会相应…

Github账号注册

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

NC398 腐烂的苹果

腐烂的苹果 一个腐烂的苹果每分钟可以向上下左右四个方向扩展&#xff0c;扩展之后&#xff0c;又会有新的腐烂的苹果&#xff0c;一直去腐蚀好的苹果&#xff0c;求多少分钟后&#xff0c;网格中全是烂苹果。 第一次做这道题的时候&#xff0c;想到这道题考察的其实是多源BFS…

MATLAB——M文件

M文件 MATLAB允许编写两种程序文件- 脚本−脚本文件是扩展名为.m的程序文件。在这些文件中&#xff0c;您编写了一系列要一起执行的命令。脚本不接受输入&#xff0c;也不返回任何输出。它们对工作区中的数据进行操作。 函数−函数文件也是扩展名为.m的程序文件。函数可以接…

运营商三要素核验接口-手机实名验证API

运营商三要素核验接口是一种API&#xff08;Application Programming Interface&#xff0c;应用程序编程接口&#xff09;&#xff0c;主要用于通过互联网技术对接通信运营商的实名制数据库&#xff0c;以验证用户提供的手机号码、身份证号码、姓名这三项关键信息&#xff08;…

算法部署 | 使用TensorRT部署AlphaPose姿态估计算法

项目应用场景 面向 AlphaPose 姿态估计算法的推理加速场景&#xff0c;项目采用 TensorRT 进行 GPU 算法加速推理。 项目效果 项目细节 > 具体参见项目 README.md (1) 模型转换 python pytorch2onnx.py --cfg ./configs/coco/resnet/256x192_res50_lr1e-3_1x.yaml --chec…

【机器学习300问】74、如何理解深度学习中L2正则化技术?

深度学习过程中&#xff0c;若模型出现了过拟合问题体现为高方差。有两种解决方法&#xff1a; 增加训练样本的数量采用正则化技术 增加训练样本的数量是一种非常可靠的方法&#xff0c;但有时候你没办法获得足够多的训练数据或者获取数据的成本很高&#xff0c;这时候正则化技…