opencv各个模块介绍(2)
Features2D 模块:特征检测和描述子计算模块,包括SIFT、SURF等算法。
Features2D 模块提供了许多用于特征检测和描述子匹配的函数和类,这些函数和类可用于图像特征的提取、匹配和跟踪。
-
FeatureDetector:特征检测器的基类,包括常用的特征检测算法,如ORB、SIFT、SURF、FAST 等。
-
DescriptorExtractor:描述子提取器的基类,用于从图像中提取特征点周围的描述子,包括常用的描述子算法,如ORB、SIFT、SURF 等。
-
Feature2D:特征检测器和描述子提取器的统一接口类,可以方便地使用各种特征检测和描述子提取算法。
-
DescriptorMatcher:描述子匹配器的基类,用于对提取出的描述子进行匹配,包括常用的匹配算法,如BruteForce、FlannBased 等。
-
drawKeypoints:用于在图像上绘制特征点的函数,可以将检测到的特征点可视化显示在图像上。
-
drawMatches:用于在两幅图像上绘制特征点匹配的函数,可以将两幅图像中匹配的特征点对可视化显示出来。
-
compute:用于计算图像中的特征点和描述子的函数,可以对输入的图像进行特征点检测和描述子提取。
-
match:用于对输入的两组描述子进行匹配的函数,可以对提取出的描述子进行匹配操作。
这些函数和类提供了在图像中进行特征检测、描述子提取和匹配的基本工具,通过使用它们,我们可以提取图像中的关键特征点和描述子,进行特征匹配和跟踪,从而实现诸如目标识别、图像拼接、运动跟踪等应用。
Calib3d 模块:相机标定和三维重建模块
OpenCV Calib3d 模块函数和类:
-
calibrateCamera:用于对相机进行内参和畸变参数的标定,通过捕获多个图像中的棋盘格等模板,并提取角点位置来进行相机标定。
-
stereoCalibrate:用于立体相机的标定,通过匹配两个相机的图像中的对应点,求解两个相机之间的外参和内参关系。
-
stereoRectify:用于校正立体相机的图像,使得两个相机的光学轴平行,方便后续的立体匹配。
-
stereoMatch:用于立体匹配,通过匹配左右两个相机的图像,得到对应点的深度信息。
-
solvePnP:用于从图像中的二维点和三维点之间求解相机的姿态(旋转和平移矩阵)。
-
findHomography:用于寻找两幅图像之间的单应性矩阵,通常用于图像配准和目标跟踪。
-
triangulatePoints:用于三角化立体视觉中的对应点,求解三维空间中的点坐标。
-
undistort:用于去畸变,将畸变图像转换为无畸变的图像。
这些函数和类在摄像机标定、立体视觉和三维重构等领域具有广泛的应用,可以帮助我们理解场景的三维结构、测量物体的尺寸、进行虚拟现实等任务。通过使用这些函数和类,我们可以实现各种基于摄像机的视觉任务,并提高图像处理和计算机视觉的效果和准确性。
Videoio 模块:视频输入/输出模块,用于读取和写入视频文件
-
VideoCapture:用于从视频文件或摄像头捕获视频帧的类,可以通过该类实例来读取视频文件或捕获摄像头视频流。
-
VideoWriter:用于将视频帧写入视频文件的类,可以通过该类实例将视频帧写入到视频文件中。
-
cv::CAP_PROP_ 参数*:一系列用于设置视频流参数的常量,如帧率、分辨率、亮度、对比度等。
-
isOpened:用于检查 VideoCapture 或 VideoWriter 是否成功打开视频文件或捕获设备。
-
read:用于从 VideoCapture 实例中读取下一帧视频。
-
write:用于将视频帧写入到 VideoWriter 实例中。
-
set:用于设置 VideoCapture 或 VideoWriter 的参数,如帧率、分辨率等。
-
get:用于获取 VideoCapture 或 VideoWriter 的参数,如帧率、分辨率等。
通过使用 Videoio 模块提供的函数和类,我们可以方便地读取视频文件、捕获摄像头视频流,并进行视频数据的处理和分析。这些函数和类为我们在计算机视觉和图像处理领域中处理视频数据提供了便捷的工具,可以帮助我们实现视频内容的处理、分析和应用。
Dnn 模块:深度学习模块,支持使用深度学习模型进行图像处理任务
-
readNet:用于加载深度学习模型的函数,支持多种深度学习框架(如 TensorFlow、Caffe、Darknet 等)的模型格式。
-
Net:代表一个深度学习模型的类,可以用于进行前向推断、获取输出等操作。
-
setInput:用于设置输入数据到深度学习模型中,例如设置图像作为模型的输入。
-
forward:执行前向推断,获取模型的输出。
-
getUnconnectedOutLayers:获取模型中未连接到其他层的输出层索引。
-
getLayerNames:获取模型中所有层的名称。
-
blobFromImage:将图像转换为网络模型的输入 blob 格式。
-
NMSBoxes:执行非最大抑制(Non-Maximum Suppression),用于目标检测中去除重叠的边界框。
通过使用 Dnn 模块提供的函数和类,我们可以方便地加载和使用深度学习模型,进行图像识别、目标检测、人脸识别等任务。这些函数和类为我们在计算机视觉领域应用深度学习模型提供了强大的工具,可以帮助我们实现各种复杂的视觉任务,并提高处理效率和准确性。
备注:
NMS(Non-Maximum Suppression,非最大抑制)是一种常用的目标检测算法,用于在目标检测任务中去除重叠的边界框,保留最相关的目标框。NMS 算法通常应用于神经网络输出的边界框预测中。
NMS 的原理如下:
-
得分排序:首先,对所有的候选边界框按照其置信度得分进行排序,通常情况下,得分越高的边界框越可能包含真实目标。
-
选择最高得分框:从得分最高的边界框开始,将该边界框加入最终输出的目标框列表中。
-
计算重叠区域:对于剩余的边界框,计算它们与已选边界框的重叠区域的面积,通常采用交并比(IoU)来衡量两个边界框的重叠程度。
-
去除重叠边界框:对于与已选边界框有较大重叠的边界框,根据设定的阈值(通常为 0.5 或 0.7)来决定是否将其丢弃,只保留得分最高的边界框。
-
重复步骤:重复上述步骤,直到处理完所有的候选边界框。
NMS 算法可以在目标检测结果中去除大量重叠的边界框,保留最具代表性和置信度最高的目标框,从而提高目标检测算法的准确性和鲁棒性。
NMS 算法在许多目标检测器(如 Faster R-CNN、YOLO 等)中被广泛应用,是提高目标检测性能的重要组成部分。
Machine Learning(ML)模块:机器学习模块,提供了一些常见的机器学习算法实现
-
cv::ml::SVM:支持向量机(SVM)模型的实现类,用于二分类、多分类和回归任务。
-
cv::ml::KNearest:k-最近邻(KNN)模型的实现类,用于基于最近邻的分类和回归。
-
cv::ml::RTrees:随机森林(Random Forest)模型的实现类,用于决策树集成学习。
-
cv::ml::Boost:Boosting 模型的实现类,用于集成多个弱分类器以提高性能。
-
cv::ml::ANN_MLP:人工神经网络(MLP)模型的实现类,用于深度神经网络的训练和预测。
-
cv::ml::EM:期望最大化(Expectation-Maximization)算法的实现类,用于高斯混合模型的聚类。
-
cv::ml::TrainData:用于加载和处理训练数据集的类,方便机器学习模型的训练。
-
cv::ml::ParamGrid:用于定义参数网格搜索的类,帮助进行模型参数调优。
-
cv::ml::StatModel:所有机器学习模型的基类,包括了训练和预测等通用方法。
这些函数和类提供了丰富的功能和工具,可以帮助我们在 OpenCV 中应用各种机器学习算法,并实现图像分类、目标检测、特征提取等复杂任务。通过熟练掌握这些函数和类的用法,我们可以更好地利用机器学习技术来解决计算机视觉和图像处理领域的挑战。
Stitching 模块:图像拼接模块,用于将多幅图片拼接成全景图像
-
cv::Stitcher::create():静态方法,用于创建
Stitcher
类的实例。 -
cv::Stitcher::stitch():拼接多幅图像,生成全景图像。可以通过该方法传入图像集合进行拼接,并获取拼接后的全景图像。
-
cv::Stitcher::estimateTransform():估计图像间的转换矩阵,用于拼接图像时的配准。
-
cv::Stitcher::composePanorama():对拼接后的全景图像进行优化和融合,消除拼接过程中的接缝。
-
cv::Stitcher::registrationResol():设置拼接的分辨率,影响最终拼接结果的清晰度和质量。
-
cv::Stitcher::blendImages():对拼接的图像进行融合处理,使得拼接后的全景图像看起来更加自然。
Photo 模块:图像编辑和修复模块,包括图像去噪、颜色校正等功能
Photo 模块提供了许多图像处理和修复的函数和类,用于实现图像增强、去噪、颜色校正等功能。以下是一些常用的 OpenCV Photo 模块函数和类:
-
cv::fastNlMeansDenoising():使用非局部均值去噪算法对图像进行去噪处理。
-
cv::colorChange():将图像的颜色转换为目标颜色。
-
cv::seamlessClone():无缝克隆算法,将源图像的一部分融合到目标图像中,使得融合后的图像看起来自然。
-
cv::illuminationChange():调整图像的光照条件。
-
cv::textureFlattening():纹理平滑算法,用于减少图像中的纹理细节。
-
cv::rollMinEigenVal():计算图像的最小特征值,用于角点检测和特征匹配。
-
cv::edgePreservingFilter():边缘保留滤波器,用于保留图像中的细节信息而抑制噪声。
-
cv::detailEnhance():增强图像的细节和结构。
-
cv::decolor():将彩色图像转换为灰度图像,但保留图像的结构信息。
-
cv::colorChange():改变图像的颜色。
相关文章:

opencv各个模块介绍(2)
Features2D 模块:特征检测和描述子计算模块,包括SIFT、SURF等算法。 Features2D 模块提供了许多用于特征检测和描述子匹配的函数和类,这些函数和类可用于图像特征的提取、匹配和跟踪。 FeatureDetector:特征检测器的基类…...

HTTPS:原理、使用方法及安全威胁
文章目录 一、HTTPS技术原理1.1 主要技术原理1.2 HTTPS的工作过程1.2.1 握手阶段1.2.2 数据传输阶段 1.3 HTTPS的安全性 二、HTTPS使用方法三、HTTPS安全威胁四、总结 HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer)&am…...

【云开发笔记No.6】腾讯CODING平台
腾讯云很酷的一个应用,现在对于研发一体化,全流程管理,各种工具层出不穷。 云时代用云原生,再加上AI,编码方式真是发生了质的变化。 从前,一个人可以写一个很酷的软件,后来,这变得…...
20.Ubuntu下安装GCC
文章目录 Ubuntu下安装GCC查看官方安装指导错误缺少gmp库缺少32位开发库libcg: error: gengtype-lex.c: No such file or directoryreference 欢迎访问个人网络日志🌹🌹知行空间🌹🌹 Ubuntu下安装GCC 为了支持新的c标准ÿ…...
2.windows ubuntu子系统配置
打开UBuntu后, > wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh #下载conda软件。 > bash Miniconda3-latest-Linux-x86_64.sh #下载完conda后执行这步 > source ~/.bashrc > conda-h #出现一下…...

vscode的一些技巧
技巧1:调试时传参数 在launch.json的configuration中"pwd"或者"program"选项之后添加如下选项: “--args”:["参数1", "参数2", ..., "参数3] 参数之间使用逗号隔开 技巧2:断点 普通断点使…...

JavaEE企业级分布式高级架构师课程
教程介绍 本课程主要面向1-5年及以上工作经验的Java工程师,大纲由IT界知名大牛 — 廖雪峰老师亲自打造,由来自一线大型互联网公司架构师、技术总监授课,内容涵盖深入spring5设计模式/高级web MVC开发/高级数据库设计与开发/高级响应式web开发…...
c语言函数大全(K开头)
c语言函数大全(K开头) There is no nutrition in the blog content. After reading it, you will not only suffer from malnutrition, but also impotence. The blog content is all parallel goods. Those who are worried about being cheated should leave quickly. 函数名…...

高效备考2025年AMC8竞赛:吃透2000-2024年600道真题(免费送题)
我们继续来随机看五道AMC8的真题和解析,根据实践经验,对于想了解或者加AMC8美国数学竞赛的考生来说,吃透AMC8历年真题是备考更加科学、有效的方法之一。 最近有家长朋友问我,现在有哪些类似于奥数的比赛可以参加?我的…...

HTML5和CSS3新特性
Html新增属性 1.新增语义化标签 <header>:头部标签 <nav>:导航标签 <article>:内容标签 <section>:定义文档某个区域 <aside>:侧边栏标签 <footer>:尾部标签 2.…...

Java基础-正则表达式
文章目录 1.基本介绍2.正则底层实现1.matcher.find()完成的任务2.matcher.group(0)分析1.源代码2.解释(不分组)3.解释(分组) 3.总结 3.正则表达式语法1.基本介绍2.元字符的转义符号1.基本介绍2.代码实例 3.字符匹配符1.基本介绍2.…...
构建Pytorch虚拟环境教程
构建PyTorch虚拟环境通常涉及使用诸如Anaconda或venv等工具来管理Python环境,以便在一个独立的空间中安装PyTorch和其他依赖项。以下是使用Anaconda创建PyTorch虚拟环境的步骤(适用于不同操作系统,包括Windows、Linux和MacOS)&…...

uniapp页面嵌套其他页面的实现
功能: 类似于一个drawer,当主页面加载的时候会一并加载url对应的组件,当点击后以drawer形式显示组件里面的内容,可动画。 <navigator url"/pages/my/components/personalMessage" slot"right"><view><di…...

XUbuntu22.04之安装Plantuml(二百二十三)
简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…...
第四周刷题小结
第一天 P1068 [NOIP2009 普及组] 分数线划定 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 思路: 这个题感觉不难,主要是用到了结构体cmp的自定义排序,但是还是错了一次,就是没注意到题目给的条件。 #include<iostream&g…...

基于Java中的SSM框架实现考研指导平台系统项目【项目源码+论文说明】
基于Java中的SSM框架实现考研指导平台系统演示 摘要 应对考研的学生,为了更好的使校园考研有一个更好的环境好好的学习,建议一个好的校园网站,是非常有必要的。提供学生的学习提供一个交流的空间。帮助同学们在学习高数、学习设计、学习统计…...

项目2-用户登录
1.创建项目 2.引入前端代码并检查是否有误 3.定义接口 需求分析 对于后端开发⼈员⽽⾔, 不涉及前端⻚⾯的展⽰, 只需要提供两个功能 1. 登录⻚⾯: 通过账号和密码, 校验输⼊的账号密码是否正确, 并告知前端 2. ⾸⻚: 告知前端当前登录⽤⼾. 如果当前已有⽤⼾登录, 返回登录的账…...

网易web安全工程师进阶版课程
课程介绍 《Web安全工程师(进阶)》是由“ i春秋学院联合网易安全部”出品,资深讲师团队通过精炼的教学内容、丰富的实际场景及综合项目实战,帮助学员纵向提升技能,横向拓宽视野,牢靠掌握Web安全工程师核心…...

【Postman】工具使用介绍
一、postman工具介绍 1.什么是postman postman是谷歌开发的一款网页调试和接口测试工具,能够发送任何请求类型的http请求,支持GET/POST/PUT/DELETE等方法。postman简单易用,可以直接填写URL,header,body就可以发送一…...

【vue核心技术实战精讲】1.3 - 1.6 VUE 指令 (上)
前言 上节,我们学习了 Vue的起步 和 插值表达式 本节内容 Vue指令之v-text 和 v-htmlVue指令之v-if 和 v-showVue指令之v-bind绑定Vue指令之v-on事件处理 1、v-text 和 v-html {{}} 和v-text的作用是一样的 都是插入值,直接渲染 ≈ innerTextv-html既能插入值 又能插入标签…...

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...

装饰模式(Decorator Pattern)重构java邮件发奖系统实战
前言 现在我们有个如下的需求,设计一个邮件发奖的小系统, 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其…...

C++实现分布式网络通信框架RPC(3)--rpc调用端
目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中,我们已经大致实现了rpc服务端的各项功能代…...

练习(含atoi的模拟实现,自定义类型等练习)
一、结构体大小的计算及位段 (结构体大小计算及位段 详解请看:自定义类型:结构体进阶-CSDN博客) 1.在32位系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是多少? #pragma pack(4)st…...
深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法
深入浅出:JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中,随机数的生成看似简单,却隐藏着许多玄机。无论是生成密码、加密密钥,还是创建安全令牌,随机数的质量直接关系到系统的安全性。Jav…...

iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版分享
平时用 iPhone 的时候,难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵,或者买了二手 iPhone 却被原来的 iCloud 账号锁住,这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...
laravel8+vue3.0+element-plus搭建方法
创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...
Mobile ALOHA全身模仿学习
一、题目 Mobile ALOHA:通过低成本全身远程操作学习双手移动操作 传统模仿学习(Imitation Learning)缺点:聚焦与桌面操作,缺乏通用任务所需的移动性和灵活性 本论文优点:(1)在ALOHA…...

SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)
上一章用到了V2 的概念,其实 Fiori当中还有 V4,咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务),代理中间件(ui5-middleware-simpleproxy)-CSDN博客…...
AGain DB和倍数增益的关系
我在设置一款索尼CMOS芯片时,Again增益0db变化为6DB,画面的变化只有2倍DN的增益,比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析: 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...