OpenCV每日函数 专栏简述(陆续整理中)
一、OpenCV概述
OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库。OpenCV库拥有超过 2500 种优化算法,其中包括一整套经典和最先进的计算机视觉和机器学习算法。
OpenCV主要分几个大模块:(1)核心功能,主要是Mat容器以及基本操作等。(2)图像处理模块。(3)GUI和视频处理等模块。(4)相机校准和 3D 重建(5)2D 特征框架(feature2d 模块) - 特征检测器、描述符和匹配框架(6)Deep Neural Networks (dnn module) - 使用内置dnn模块推断神经网络(7)Graph API(gapi 模块) - 基于图形的计算机视觉算法构建方法(8)其它(ml、objdetect、photo、stitching、video)(9)OpenCV iOS - 在 iDevice 上运行 OpenCV(10)GPU 加速计算机视觉(cuda 模块) - 利用显卡的能力运行 CV 算法。
这些算法可用于检测和识别人脸、识别对象、对视频中的人类行为进行分类、跟踪摄像机运动、跟踪移动对象、提取对象的 3D 模型、从立体摄像机生成 3D 点云、将图像拼接在一起以产生高分辨率整个场景的图像,从图像数据库中查找相似图像,从使用闪光灯拍摄的图像中去除红眼,跟随眼球运动,识别风景并建立标记以将其与增强现实叠加等。
二、学习OpenCV
OpenCV发展了这么久,算法越来越多,如果不是花了大量时间(也许若干年)在计算机视觉或者机器学习工作上,这么多的算法根本无法完全掌握甚至了解,所以学习OpenCV个人觉得最好是从工程的角度出发,快速了解OpenCV的框架,并了解些算法能做什么,最直接的是运行实例看效果,虽然官方也有很多示例代码,但是使用自己的图片或者数据运行将更直观。
基于学习的目的,打算开始整理一个系列笔记,全面了解OpenCV中的函数及其知识点。
同时打算基于OpenCV开发一套简单实用的工具,平时可以自己测试使用也可以帮助别人了解OpenCV。工具采用Winform窗体程序开发,基于opencvsharp,opencvsharp是opencv的.net封装,使用起来方便。
之所以选择Winform窗体程序,主要是因为方便快捷。虽然OpenCV也有C++、Python、Java 和 MATLAB 接口,但是工业用软件还是基于c++和windows的更多,为了进一步节省时间,选用opencvsharp可以进一步的节省时间,提高开发效率,毕竟时间有限。
三、函数清单
这里的函数清单的参考OpenCV4.6.0的所有模块的列表,但是从常用的开始,粗体+斜线表示已经整理过。
1、图像处理(Image Processing)
(1)图像过滤(Image Filtering)
bilateralFilter函数、blur函数、boxFilter函数、构造高斯金字塔(buildPyramid函数)、膨胀dilate函数、腐蚀erode函数、filter2D函数、高斯滤波GaussianBlur函数、getDerivKernels函数、getGaborKernel函数、getGaussianKernel函数、getStructuringElement函数、Laplacian函数(拉普拉斯)、medianBlur函数、morphologyEx函数、pyrDown函数、pyrMeanShiftFiltering函数、pyrUp函数、Scharr函数、sepFilter2D函数、Sobel函数、spatialGradient函数、sqrBoxFilter函数。
(2)图像几何变换
convertMaps函数、getAffineTransform函数、getPerspectiveTransform函数、getRectSubPix函数、getRotationMatrix2D函数、linearPolar函数/logPolar函数/warpPolar函数、remap函数、resize函数 、warpAffine函数、warpPerspective函数
(3)杂项图像转换
adaptiveThreshold自适应阈值函数、blendLinear函数、distanceTransform距离变换函数、floodFill函数、integral积分图函数、threshold函数
(4)绘图功能
带箭头线段、绘制圆、矩形、绘制轮廓、绘制标记、绘制椭圆、填充图形、绘制曲线、绘制文字。
(5)直方图
计算直方图的反投影、计算一组数组的直方图、比较两个直方图、EMD、均衡灰度图像的直方图。
(6)结构分析和形状描述符
逼近多边形、轮廓周长/曲线长度、计算边界矩形、寻找矩形顶点、寻找连通区域、计算轮廓面积、寻找凸包、查找轮廓的凸面缺陷、寻找轮廓、拟合椭圆、计算七个hu不变矩、两个形状比较、最小外接矩形、最小外接圆、最小外接三角形、计算多边形的矩、判断矩形相交。
(7)运动分析和图像跟踪
检测图像平移
(8)特征检测/物体检测
Canny、计算特征值和特征向量、Harris角点检测、计算用于角点检测的梯度矩阵的最小特征值、优化角点位置、确定图像上的强角、霍夫变换、计算用于角点检测的特征图、模板匹配。
(9)图像分割
GrabCut 算法、分水岭算法。
2、机器学习模块
多层感知机、增强树分类器、决策树、期望最大化、K-Nearest Neighbors、逻辑回归、普通贝叶斯分类器、随机森林预测器、模拟退火优化算法、支持向量机、随机梯度下降 SVM 分类器。
3、视频处理/分析
4、二维特征提取
5、物体检测
OpenCV每日函数 专栏简述(陆续整理中)相关推荐
- 利用OpenCV的函数matchTemplate()实现在图像中寻找、检索、搜索模板图像【图像模板匹配】
利用OpenCV的函数matchTemplate()实现在图像中寻找.检索.搜索模板图像[图像模板匹配] 在博文 https://www.hhai.cc/thread-220-1-1.html 中我们 ...
- Opencv每日函数 图像分割模块 watershed分水岭算法
一.分水岭理论概述 任何灰度图像都可以看作是一个地形表面,其中高强度表示峰和丘陵,而低强度表示山谷.您开始用不同颜色的水(标签)填充每个孤立的山谷(局部最小值).随着水位的上升,根据附近的山峰(梯度 ...
- OpenCV每日函数 thinning函数(细化)
一.概述 图像的细化主要是针对二值图而言,对一副二值图像进行骨架提取,就是删除不需要的轮廓点,只保留其骨架点.假设一个像素点,我们定义该点为p1,则它的八邻域点p2->p9位置,该算法考虑p1点 ...
- OpenCV每日函数 几何图像变换模块 (8) remap函数
一.概述 对图像应用通用几何变换.函数 remap 使用指定的映射转换源图像: 其中具有非整数坐标的像素值是使用一种可用的插值方法计算的. mapx 和 mapy 可以分别编码为 map1 和 map ...
- OpenCV每日函数 图像处理模块 applyColorMap颜色映射函数
一.概述 人类的感知不是为了观察灰度图像的细微变化而建立的. 人眼对观察颜色之间的变化更敏感,因此您经常需要重新着色灰度图像以获取有关它们的线索. OpenCV 现在带有各种颜色图来增强计算机视觉应用 ...
- OpenCV每日函数 图像过滤模块 (6) erode腐蚀函数
一.概述 使用特定的结构元素腐蚀图像.该函数使用指定的结构元素腐蚀源图像,该结构元素确定取最小值的像素邻域的形状: 侵蚀可以应用数次(迭代). 在多通道图像的情况下,每个通道都是独立处理的. 膨胀: ...
- OpenCV每日函数 图像过滤模块 (8) GaussianBlur高斯模糊函数
一.概述 使用高斯滤镜模糊图像.该函数将源图像与指定的高斯核进行卷积. 在图像处理中,高斯模糊(也称为高斯平滑)是通过高斯函数(以数学家和科学家卡尔弗里德里希高斯命名)对图像进行模糊处理的结果. 它是 ...
- OpenCV每日函数 Subdiv2D类平面细分
一.概述 点集的三角剖分(Triangulation),对数值分析(比如有限元分析)以及图形学来说,都是极为重要的一项预处理技术.尤其是Delaunay三角剖分,由于其独特性,关于点集的很多种几何图都 ...
- OpenCV每日函数 几何图像变换模块 (7) linearPolar函数/logPolar函数/warpPolar函数
一.概述 linearPolar函数将图像重新映射到极坐标空间,不过此函数已经废弃(实际在源码中也是调用了warpPolar函数),可以使用warpPolar函数替代. logPolar函数将图像重新 ...
最新文章
- 波士顿动力机器狗量产版首次亮相:先造100台,能当警犬能工地巡逻
- 科学研究发现,盲人用时间感知空间
- sqlserver 两个数据库同步
- 三种常见中文内码的转换方法
- Python 模型持久化
- tft lcd驱动参数详解_LED拼接屏和LCD拼接屏的区别
- 命令查询每个文件文件数
- (7)numpy.delete删除np数组的某一行或某一列
- Oracle 分析函数
- html 一键复制 ios,h5实现一键复制到粘贴板 兼容ios
- 申请苹果个人开发者经历
- 麻省理工学院公开课:信号与系统:模拟与数字信号处理 调幅演示
- echarts的x轴去掉网格线
- .net 常见面试问题-2021-08
- DDR Layout使用技巧
- 获取三个数的中间值 宏
- 恒州诚思——2022-2028全球硫酸镱行业调研及趋势分析报告
- Hadoop实战视频分享_2013年完整版学习视频种子下载
- 梯度笔记本电脑软件测试,软件测试性能报告.pdf
- showdoc mysql_ShowDoc的搭建
热门文章
- Qt之图形(简笔画-绘制卡通蚂蚁)
- 软件架构设计的6个步骤及工作内容
- 我国老年人交通安全宣传教育现状及存在问题研究
- 织梦系统光传html能不能访问,织梦关键词自动添加链接设置方法
- 亲手搭建vue项目的过程--Module build failed: Unknown word,无法读取css文件
- 文件分隔符和转义字符
- “数学黑洞”:任意一个4位自然数,将组成该数的各位数字重新排列,形成一个最大数和一个最小数,之后两数相减,其差仍为一个自然数。重复进行上述运算,最终会出现一个神秘的数,请编程输出这个神秘的数。
- React之antd按需加载
- ESP8266 UART 使用说明
- Springboot实现微信小程序注册登录及微信登录