我的OpenCV4学习之旅(1)-OpenCV4初步了解

2023-11-06

我的OpenCV4学习之旅(1)-OpenCV4初步了解

OpenCV4学习笔记总结资料来自:《OpenCV4 快速入门》,哔哩哔哩 -OpenCV4 C++快速入门视频30讲

Opencv4简单介绍

​ OpenCV4是目前最流行的计算机视觉处理库之一,是一个开源的计算机视觉库(Open Source Computer Vision Library,OpenCV4)。

​ 简单来说,OpenCV4可以用来对图像进行处理。而图像处理的基本概念,图像处理一般是指数字图像处理(digital image processing),通过数学函数和图像变化等手段对二维的数字图像进行分析,获得图像数据的潜在信息,通常包括图像压缩,增强和复原,以及匹配,描述和识别3个部分,涵盖噪声去除,分割,特征提取等处理方法和技术。

​ OpenCV是由一系列C语言函数和C++类构成的,除了支持使用C/C++语言进行开发以外,还支持C#,Ruby等编程语言,并提供了Python,MATLAB,Java等编程语言接口,可以在Linus,Windows,macOS,Android和IOS等系统上运行。

OpenCV4的发展

OpenCV计算机视觉处理库的重要版本发行时间:

时间 版本
2006年6月 OpenCV 1.0版
2009年9月 OpenCV 2.0版
2014年8月 OpenCV 3.0版
2018年11月 OpenCV 4.0版

OpenCV4的优点

​ OpenCV4.0版本进一步完善了核心接口,并添加了二维码检测器,ONNX转换格式等新功能,以及通过C++11标准建立OpenCV4.0,因此要求编译器兼容C++11标准,所需的CMake至少是3.5.1版,版本更新的主要内容是去除了一些过时的C语言API,增加了更多图像处理与计算机视觉算法模型

OpenCV的模块架构

  • calib3d —— 这个模块名称是由calibration(校准)和3D两个术语的缩写组合而成的,顾名思义,这个模块主要包含相机标定与立体视觉等功能,例如物体位姿估计,三维重建,摄像头标定等
  • core —— 核心功能模块。这个模块主要包含OpenCV库的基础结构以及基本操作,例如OpenCV基本的数据结构,绘图函数,数组操作相关函数,动态数据结构等
  • dnn —— 深度学习模块。这个模块是OpenCV4版的一个特色,其主要包括构建神经网络,加载序列化网络模型等
  • features2d —— 这个模块名称是由features(特征)和2D两个术语的缩写组合而成的,其功能主要为处理图像特征点,例如特征检测,描述与匹配等
  • flann —— 这个模块名称是Fast Library for Approximate Nearest Neighbors(快速近似最近邻库)的缩写。这个模块是高维的近似近邻快速搜索算法库,主要包含快速近似近邻搜索与聚类等
  • gapi —— 这个模块是OpenCV4.0中新增加的模块,旨在加速常规的图像处理
  • highgui —— 高层GUI,包含创建和操作显示图像的窗口,处理鼠标事件以及键盘命令,提供图形交互可视化界面等
  • imgproc —— 这个模块名称是由image(图像)和process(处理)两个单词的缩写组合而成的,是重要的图像处理模块,主要包含图像滤波,几何变化,直方图,特征检测与目标检测等
  • ml —— 机器学习模块,主要为统计分类,回归和数据聚类等
  • objdetect —— 目标检测模块,主要为统计分类,回归和数据聚类等
  • photo —— 计算摄影模块,主要包含图像修复和去噪等
  • stitching —— 图像拼接模块,主要包含特征点寻找与匹配图像,估计旋转,自动校准,接缝估计等图像拼接过程的相关内容
  • video —— 视频分析模块,主要包含运动估计,背景分离,对象跟踪等视频处理相关内容
  • videoio —— 视频输入/输出模块,主要用于读取/写入视频或者图像序列

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我的OpenCV4学习之旅(1)-OpenCV4初步了解 的相关文章

随机推荐

  • 【JDK】二、环境变量从jdk17切换为jdk8后不生效的解决办法

    环境变量从jdk17切换为jdk8后不生效的解决办法 一 问题描述 二 环境变量为java17时的截图 三 修改为java8时的截图 四 解决办法 1 原因分析 2 删除jdk17和jdk8默认的配置或者把默认的下移 统一使用自己的 JAV
  • 浅谈vlan中pvid的作用

    vlan中的pvid其实就是处理标签的一种方式 在端口为access模式的时候pvid access端口本身的vlan 也无法单独配置 在端口为trunk的时候pvid是可以根据需求配置的 默认的pvid vlan1 而在trunk端口模式
  • GIT使用(踩坑)

    1 关于远程路径的设置 双反斜线 和 单斜线 的问题 这样写可以 git remote add origin L BottleCapDetection 这样写也可以 git remote add origin L BottleCapDete
  • 如何将本地文件上传至阿里云ECS中

    本人尝试利用SSH Secure Shell Client软件登录阿里云ECS 发现并无法登录 但尝试后发现WinSCP可以对ECS的文件进行操作 偷懒不想使用ssh命令上传文件 同时可视化操作会安心一些 具体操作如下 第一步 开启阿里云E
  • 在IDEA中配置Git

    文章目录 在IDEA中配置Git 开发中IDEA的Git常见操作 初始化并提交项目到远程仓库 项目leader 1 在GitHub中创建远程仓库 2 将maven工程交给Git管理 3 配置忽略文件 4 提交到本地仓库 5 推送到远程仓库
  • react 之 styled-components

    css样式并不像JavaScript语法有作用域 因此css样式作用于全局很容易造成全局污染 为了防止这类问题发生 我们可以遵循CSS的BEM规范 即 blockName elementName modifierName 模块名 元素名 修
  • 【C++泛型编程】模板偏特化、局部类和型别映射(Int2Type,Type2Type)以及型别选择

    1 模板偏特化 模板偏特化是让你在template的所有可能实体中特化出一组子集 下面是一个模板全特化的例子 假设有一个类模板 名为Widget template
  • STM32CubeMX串口配置及库printf打印

    最新版STM32CubeMXV5 0 0已经上传到了网盘 或者自己通过软件在线升级 STM32CubeMX运行环境搭建包含两个部分 首先是 Java运行环境安装 其次是STM32CubeMX软件安装 Java 软件和STM32CubeMX
  • java 之泛型详解

    1 什么是泛型 引入 关于泛型 先来说几句集合 都知道集合是可以存储任意对象 当我们创建一个集合时如果没有声明它的存储类型 那该集合便自动提升为Object类型 提示 在我们创建对象的时候 如果没有明确指出一种数据类型 那么编译器会默认为O
  • linux磁盘信息文件,linux系统获取硬盘使用信息

    1 df命令 Linux下可以用df命令获取硬盘的使用情况 通过man可以获取df命令的详细情况 df命令经常用的参数为 a 显示全部的档案系统和各分割区的磁盘使用情形 i 显示i nodes的使用量 k 大小用k来表示 默认值 t 显示某
  • Prescan学习笔记:短暂接触

    因为老师的项目需要用到Prescan 来模拟真实的驾驶场景 因此使用它搭了一些模型 这里写下使用心得 注意 Prescan是一个非常注重产品版权的软件 因此我们使用的也是通过正规渠道向其购买的 而且其licence定期更换 需要再次更新或者
  • Java5 新特性

    Java 5 语言新特性体验 2006 04 06 22 28 38 作者 yuhen 1 Boxing UnBoxing 在1 4及以前的版本 Java并不支持自动装箱 如下面的例子 Java 1 4 public class progr
  • 【华为OD机试真题 Java】@分割可用字符集

    前言 本专栏将持续更新华为OD机试题目 并进行详细的分析与解答 包含完整的代码实现 希望可以帮助到正在努力的你 关于OD机试流程 面经 面试指导等 如有任何疑问 欢迎联系我 wechat steven moda email nansun09
  • 合上笔记本屏幕 Ubuntu 20.04 不休眠

    将系统配置文件 etc systemd logind conf 的其中一行 改成如下所示 sudo vim etc systemd logind conf HandleLidSwitch ignore 重启服务 sudo service s
  • Windows Server操作系统概述

    文章目录 一 计算机系统的层次结构 二 五大基本功能 1 处理器管理 2 储蓄器管理 3 文件管理 4 设备管理 5 作业管理 三 应用场景 四 发展历程 1 Unix 概述 相关版本 应用场景 2 Linux 概述 相关版本 应用场景 3
  • 【Linux】超好用的编译工具 —— gcc/g++

    文章目录 前言 一 安装gcc g 二 背景知识 三 gcc如何完成 1 预处理 进行宏替换 2 编译 生成汇编 3 汇编 生成机器可识别代码 4 连接 生成可执行文件或库文件 5 记忆选项的小技巧 6 一个重要的概念 函数库 7 再谈链接
  • Mapxtreme2008v6.8 vs2008(asp.net)几个修改项目

    1 添加普通按钮实现全图显示 添加动态图层 用ajax实现局部刷新 单击按钮后老是提示Command js中GetMap 有误 后经查找代码做如下改动后成功 MapXtremeWebResources Command js中原代码为mapI
  • php Access-Control-Allow-Origin 解决跨域问题

    第1种 在代码里面加 header信息 推荐 header Access Control Allow Origin 如果需要设置允许所有域名发起的跨域请求 可以使用通配符 或者 header Access Control Allow Ori
  • 【毕业设计】可伸缩带式输送机结构设计【二维图+三维图+论文】

    摘 要 带式输送机是一种连续机械 被广泛应用于国民经济各个部门 因为它有许多优点 如运行平衡 运转可靠 能耗低 对环境污染小 便于集中控制和实现自动化 管理维护方便等 为了满足特定需求 本文根据地面主提升带式输送机的原始参数 结合常规上运带
  • 我的OpenCV4学习之旅(1)-OpenCV4初步了解

    我的OpenCV4学习之旅 1 OpenCV4初步了解 OpenCV4学习笔记总结资料来自 OpenCV4 快速入门 哔哩哔哩 OpenCV4 C 快速入门视频30讲 Opencv4简单介绍 OpenCV4是目前最流行的计算机视觉处理库之一