【学习OpenCV4】OpenCV4与opencv-contrib模块介绍

article/2025/10/26 4:20:29

本文分享内容来自图书《学习OpenCV 4:基于Python的算法实战》,该书刚刚上市,是国内第一本系统讲解OpenCV4各个模块的图书,配套案例深入浅出的讲解。第一章有在各个平台搭建环境的介绍,后面每个章节都有对模块的导读、模块经典算法的案例介绍以及进阶阅读,适合图像处理、计算机视觉领域的初学者以及相关的工程开发人员。目录如下:

第1章 OpenCV快速入门;
第2章 图像读写模块imgcodecs;
第3章 核心库模块core;
第4章 图像处理模块imgproc(一);
第5章 图像处理模块imgproc(二);
第6章 可视化模块highgui;
第7章 视频处理模块videoio;
第8章 视频分析模块video;
第9章 照片处理模块photo;
第10章 2D特征模块features2d;
第11章 相机标定与三维重建模块calib3d;
第12章 传统目标检测模块objdetect;
第13章 机器学习模块ml;
第14章 深度神经网络模块dnn

欢迎关注图书《深度学习计算机视觉实战》与《学习OpenCV 4:基于Python的算法实战》,两本书都以通俗易懂的讲解、丰富的案例帮助初学者学习视觉与图像方向的知识。欢迎关注公众号“计算机视觉与OpenCV”获取更多的学习资料。
OpenCV为开源软件,读者可以阅读其文档和源码了解代码结构,整个算法库的框架如图1.30所示。
在这里插入图片描述图1.30
OpenCV的源码中,在modules路径下存放着OpenCV的所有模块,最重要的模块就是内核模块core与图像处理模块imgproc。本书后续章节将分模块介绍,结合案例讲解OpenCV的使用,本节介绍常用模块以及常用扩展模块的功能。

1.3.1 常用模块

OpenCV4中包含的模块有21个,每个模块都被保存在一个单独的子目录中,如图1.31所示。
在这里插入图片描述

图1.31
各模块的功能如下。
calib3d:该模块由相机校准(calibration)和三维重建(3d)两个部分组成,主要用于相机标定与三维视觉等;
core:OpenCV的内核模块,定义了基础数据结构与基础计算;
dnn:该模块主要用于深度学习推理部署,不支持模型训练;
features2d:该模块主要用于特征点处理,例如特征点检测与匹配等;
flann:FLANN为快速最近邻算法(Fast Library for Approximate Nearest Neighbors)的缩写,该模块包含快速近似最近邻搜索和聚类等功能;
gapi:该模块对图像处理算法做了加速处理,不属于OpenCV的功能模块;
highgui:该模块用于创建图像化界面操作,例如创建和操作图像显示窗口、鼠标与键盘事件处理,进度条等图像化交互操作;
imgcodecs:该模块负责图像文件读写,如图像读取与保存;
imgproc:该模块是OpenCV图像处理最重要的模块,主要功能如图像滤波、图像几何变换、直方图操作等;
ml:该模块为机器学习模块,包含常见的机器学习算法,如支持向量机和随机森林等;
objdetect:该模块主要用于图像目标检测,例如Haar特征检测等;
photo:该模块主要负责照片处理,如照片修复和去噪等;
stitching:该模块负责图像拼接,功能包括图像特征点寻找与匹配等图像拼接技术;
video:该模块用于视频分析,如运动估计、背景分离等;
videoio:该模块负责视频读写,主要视频文件的读取和写入。

1.3.2 扩展模块

OpenCV在视觉算法中的功能非常强大,其中一个原因就是该算法库一直在与时俱进的更新最新的算法,对于具有专利的算法(如SURF)以及一些还没有稳定的算法,OpenCV会将其置于扩展模块中,这些扩展模块包含在opencv_contrib代码库中。对于稳定的算法,会被移到OpenCV主仓库代码中,因此读者需要谨慎的使用opencv_contrib,因为不同版本的函数可能存在差异。
在OpenCV 3.x版本之后,opencv_contrib就不再包含于OpenCV源码中,opencv_contrib的源码可以在Github上下载,然后参与OpenCV源码编译,编译方法将在案例5中讲解。
opencv_contrib的模块及其功能说明如下。
alphamat:Alpha Matting信息流算法;
aruco:增强现实标记算法;
barcode:条形码检测与解码方法;
bgsegm:增强背景-前景分割算法;
bioinspired:仿生学视觉模型和衍生工具;
ccalib:用于三维重建的自定义校准模式;
cudaarithm:CUDA矩阵运算;
cudabgsegm:CUDA背景分割;
cudacodec:CUDA视频编解码;
cudafeatures2d:CUDA特征检测与描述;
cudafilters:CUDA图像滤波;
cudaimgproc:CUDA图像处理;
cudalegacy:CUDA传统支持;
cudaobjdetect:CUDA目标检测;
cudaoptflow:CUDA光流算法;
cudastereo:CUDA立体匹配;
cudawarping:CUDA图像扭曲;
cudev:CUDA设备层;
cvv:计算机视觉程序交互式可视化调试的GUI;
datasets:用于处理不同数据集的框架;
dnn_objdetect:基于DNN的目标检测;
dnn_superres:基于DNN的超分;
dpm:基于可变形零件的模型;
face:人脸分析;
freetype:使用freetype/harfbuzz绘制UTF-8字符串;
fuzzy:基于模糊数学的图像处理;
hdf:分层数据格式I/O例程;
hfs:基于层次特征选择的图像分割方法;
img_hash:该模块提供了不同的图像哈希算法的实现;
intensity_transform:该模块提供了用于调整图像对比度的强度变换算法的实现;
julia:OpenCV Julia绑定;
line_descriptor:用于从图像中提取线条的二进制描述符;
mcc:Macbeth图表模块;
optflow:光流算法;
ovis:OGRE三维可视化器;
phase_unwrapping:相位展开API;
plot:Mat数据绘制函数;
quality:图像质量分析API;
rapid:基于轮廓的三维目标跟踪;
reg:图像配准;
rgbd:RGB深度处理;
saliency:显著性API;
sfm:运动结构分析;
shape:形状距离与匹配;
stereo:立体匹配算法;
structured_light:结构光API;
superres:超分模块;
surface_matching:曲面匹配;
text:场景文字检测与识别;
tracking:追踪API;
videostab:视频稳定;
viz:三维可视化器;
wechat_qrcode:微信二维码检测器,用于检测和解析二维码;
xfeatures2d:features2d扩展模块;
ximgproc:imgproc扩展模块;
xobjdetect:objdetect扩展模块;
xphoto:photo扩展模块。


http://chatgpt.dhexx.cn/article/kkH322mR.shtml

相关文章

学习OpenCV

因为一些项目需要,最近在学习OpenCv,以下是一些学习OpenCv这本书的一些简介,教程下载地址:《学习OpenCv》 《学习OpenCV》:计算机视觉是在图像处理的基础上发展起来的新兴学科。OpenCV是一个开源的计算机视觉库&#x…

学习opencv.js(1)图像入门

目标:了解如何阅读图像以及如何在网络中显示它。 读取图像:OpenCV.js 将图像保存为cv.Mat类型。我们使用 HTML 画布元素将cv.Mat传输到网络或反向传输。ImageData 接口可以表示或设置画布元素区域的底层像素数据。 1.从画布创建一个 ImageData对象 le…

学习OpenCV3:MinGW编译OpenCV到vs_version.rc.obj处出错

1. 错误描述 [ 65% ] Building RC object modules/world/CMakeFiles/opencv_world.dir/vs_version.rc.obj gcc: error: long: No such file or directory C:\Mingw-w64\mingw32\bin\windres.exe: preprocessing failed. mingw32-make[2]: *** [modules\world\CMakeFiles\opencv…

【从零学习OpenCV 4】opencv_contrib扩展模块的安装

本文首发于“小白学视觉”微信公众号,欢迎关注公众号 本文作者为小白,版权归人民邮电出版社所有,禁止转载,侵权必究! 经过几个月的努力,小白终于完成了市面上第一本OpenCV 4入门书籍《OpenCV 4开发详解》。…

如何学习opencv源码

如何学习opencv源码 当你在使用opencv时,看到一个函数有没有想去了解他的源码,而又无从下手?这里我将带你脱离这种尴尬的境遇! 面对这个问题,我自己也查找过许多的资料,网上有这样一种做法,步骤如下&…

从零开始学习opencv——在虚拟环境下安装opencv环境

毕设准备做cv相关项目,今天开始学习cv基础知识,课程为B站“【不要再看那些过时的OpenCV老教程了】2022巨献,OpenCV零基础小白最新版全套教程(人工智能机器视觉教程)” 0.自行安装python3.7,注意版本不能过高或过低,注意安装64位版…

【学习OpenCV4】OpenCV入门精讲(C++/Python双语教学)

大家好,我在CSDN开的OpenCV课程已经开课了,入口如下: OpenCV入门精讲(C/Python双语教学) 课程开始快一周了,收到了广大同学们的欢迎。 (1)评分很高; (2&#…

opencv 深度学习

深度学习简史 深度学习很早就被提出,但一直停滞不前2011,微软在语言识别上使用,取得了突破2012,DNN在图像识别领域取得了惊人的效果,在ImageNet评测的错误率从26%降到了15%2016,AlphaGo击败人类&#xff0…

【学习OpenCV4】案例3:OpenCV Python语言开发环境搭建

本书分享内容来自图书学习OpenCV 4:基于Python的算法实战》,该书刚刚上市,是国内第一本系统讲解OpenCV4各个模块的图书,配套案例深入浅出的讲解。第一章有在各个平台搭建环境的介绍,后面每个章节都有对模块的导读、模块…

在pycharm2021.2中学习opencv图像处理,基于python3.9.7、pycharm完成配置

在pycharm中学习opencv图像处理 安装python下载python安装包开始安装 安装pycharm社区版下载pycharm安装包开始安装 启动pycharm创建第一个项目创建第一个项目设置项目存放路径首次运行python程序下载opencv-python库、添加解释器配置 开始图像处理的学习!打开下载好…

【从零学习OpenCV 4】Windows系统中安装OpenCV 4

本文首发于“小白学视觉”微信公众号,欢迎关注公众号 本文作者为小白,版权归人民邮电出版社所有,禁止转载,侵权必究! 经过几个月的努力,小白终于完成了市面上第一本OpenCV 4入门书籍《OpenCV 4开发详解》。…

【从零学习OpenCV 4】了解OpenCV的模块架构

本文首发于“小白学视觉”微信公众号,欢迎关注公众号 本文作者为小白,版权归人民邮电出版社所有,禁止转载,侵权必究! 经过几个月的努力,小白终于完成了市面上第一本OpenCV 4入门书籍《OpenCV 4开发详解》。…

OpenCV入门基础学习

目录 一:OpenCV简介 二:OpenCV图像处理 图像 三:OpenCV图像处理 图像模式 四:OpenCV图像识别 图片操作 五:OpenCV图像处理 Mat类 六:OpenCV图像处理 图片 像素 七:OpenCV图像…

如何学习opencv

本文授权转载自贾老师的微信公众号"OpenCV学堂"。更多信息可扫描文末二维码关注公众号(知乎已将二维码转换成链接,可自动跳转到微信)。 一:学习OpenCV三个阶段 人工智能带火了计算机视觉的人才需求,作为计算…

学习opencv3 pdf_【资源分享】有哪些学习openCV的网站或书籍?

点击上方"蓝色小字"关注我呀 请让我再水一篇文扩充一下我的资源分享专栏吧,跟大家分享一些opencv的书籍和网站。书籍 先给大家贴个图: 大部分是我到处搜集来的,还有一些是花钱在某鱼上买来的,今天把下载链接分享给大家(如果失效了可以加我微信备注【视觉电子书】…

开始学习OpenCV

Mark 一下,今天开始学习OpenCV。 希望能够从事图像处理开发的工作。 第一次肯定是安装开发环境。 软件选择的是VS2017 C 和 opencv 4.5.1版本。 VS2017安装教程:vs2017安装和使用教程(详细)_悲恋花丶无心之人的博客-CSDN博客_vs2…

OpenCV教程:超详细的OpenCV入门教程,值得收藏

OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉库,它提供了很多函数,这些函数非常高效地实现了计算机视觉算法(最基本的滤波到高级的物体检测皆有涵盖)。 OpenCV 使用 C/C 开发&#…

8.2 OpenCV简介

OpenCV简介 学习目标 了解OpenCV是什么 能够独立安装OpenCV 1 什么是OpenCV 1.1 OpenCV简介 OpenCV是一款由Intel公司俄罗斯团队发起并参与和维护的一个计算机视觉处理开源软件库,支持与计算机视觉和机器学习相关的众多算法,并且正在日益扩展。 Ope…

OpenCV怎么学?OpenCV入门到底要学多久?

首先先了解OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在linux、Windows、Android和MAC OS操作系统上。 [1] 它轻量级而且高效——由一系列 C 函数和少量 C 类构成,同时提供了Python、…

【OpenCV学习】(四)图形绘制

【OpenCV学习】(四)图形绘制 背景 使用OpenCV进行图形绘制是一种必备的技能,在图像的任务中,不管是图像检测还是图像识别,我们都需要通过绘制图形和绘制文字对处理的结果进行说明,本篇就详细介绍下图形的…