一、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每日函数 专栏简述(陆续整理中)相关推荐

  1. 利用OpenCV的函数matchTemplate()实现在图像中寻找、检索、搜索模板图像【图像模板匹配】

    利用OpenCV的函数matchTemplate()实现在图像中寻找.检索.搜索模板图像[图像模板匹配] 在博文 https://www.hhai.cc/thread-220-1-1.html 中我们 ...

  2. Opencv每日函数 图像分割模块 watershed分水岭算法

    ​一.分水岭理论概述 任何灰度图像都可以看作是一个地形表面,其中高强度表示峰和丘陵,而低强度表示山谷.您开始用不同颜色的水(标签)填充每个孤立的山谷(局部最小值).随着水位的上升,根据附近的山峰(梯度 ...

  3. OpenCV每日函数 thinning函数(细化)

    一.概述 图像的细化主要是针对二值图而言,对一副二值图像进行骨架提取,就是删除不需要的轮廓点,只保留其骨架点.假设一个像素点,我们定义该点为p1,则它的八邻域点p2->p9位置,该算法考虑p1点 ...

  4. OpenCV每日函数 几何图像变换模块 (8) remap函数

    一.概述 对图像应用通用几何变换.函数 remap 使用指定的映射转换源图像: 其中具有非整数坐标的像素值是使用一种可用的插值方法计算的. mapx 和 mapy 可以分别编码为 map1 和 map ...

  5. OpenCV每日函数 图像处理模块 applyColorMap颜色映射函数

    一.概述 人类的感知不是为了观察灰度图像的细微变化而建立的. 人眼对观察颜色之间的变化更敏感,因此您经常需要重新着色灰度图像以获取有关它们的线索. OpenCV 现在带有各种颜色图来增强计算机视觉应用 ...

  6. OpenCV每日函数 图像过滤模块 (6) erode腐蚀函数

    一.概述 使用特定的结构元素腐蚀图像.该函数使用指定的结构元素腐蚀源图像,该结构元素确定取最小值的像素邻域的形状: 侵蚀可以应用数次(迭代). 在多通道图像的情况下,每个通道都是独立处理的. 膨胀: ...

  7. OpenCV每日函数 图像过滤模块 (8) GaussianBlur高斯模糊函数

    一.概述 使用高斯滤镜模糊图像.该函数将源图像与指定的高斯核进行卷积. 在图像处理中,高斯模糊(也称为高斯平滑)是通过高斯函数(以数学家和科学家卡尔弗里德里希高斯命名)对图像进行模糊处理的结果. 它是 ...

  8. OpenCV每日函数 Subdiv2D类平面细分

    一.概述 点集的三角剖分(Triangulation),对数值分析(比如有限元分析)以及图形学来说,都是极为重要的一项预处理技术.尤其是Delaunay三角剖分,由于其独特性,关于点集的很多种几何图都 ...

  9. OpenCV每日函数 几何图像变换模块 (7) linearPolar函数/logPolar函数/warpPolar函数

    一.概述 linearPolar函数将图像重新映射到极坐标空间,不过此函数已经废弃(实际在源码中也是调用了warpPolar函数),可以使用warpPolar函数替代. logPolar函数将图像重新 ...

最新文章

  1. 波士顿动力机器狗量产版首次亮相:先造100台,能当警犬能工地巡逻
  2. 科学研究发现,盲人用时间感知空间
  3. sqlserver 两个数据库同步
  4. 三种常见中文内码的转换方法
  5. Python 模型持久化
  6. tft lcd驱动参数详解_LED拼接屏和LCD拼接屏的区别
  7. 命令查询每个文件文件数
  8. (7)numpy.delete删除np数组的某一行或某一列
  9. Oracle 分析函数
  10. html 一键复制 ios,h5实现一键复制到粘贴板 兼容ios
  11. 申请苹果个人开发者经历
  12. 麻省理工学院公开课:信号与系统:模拟与数字信号处理 调幅演示
  13. echarts的x轴去掉网格线
  14. .net 常见面试问题-2021-08
  15. DDR Layout使用技巧
  16. 获取三个数的中间值 宏
  17. 恒州诚思——2022-2028全球硫酸镱行业调研及趋势分析报告
  18. Hadoop实战视频分享_2013年完整版学习视频种子下载
  19. 梯度笔记本电脑软件测试,软件测试性能报告.pdf
  20. showdoc mysql_ShowDoc的搭建

热门文章

  1. Qt之图形(简笔画-绘制卡通蚂蚁)
  2. 软件架构设计的6个步骤及工作内容
  3. 我国老年人交通安全宣传教育现状及存在问题研究
  4. 织梦系统光传html能不能访问,织梦关键词自动添加链接设置方法
  5. 亲手搭建vue项目的过程--Module build failed: Unknown word,无法读取css文件
  6. 文件分隔符和转义字符
  7. “数学黑洞”:任意一个4位自然数,将组成该数的各位数字重新排列,形成一个最大数和一个最小数,之后两数相减,其差仍为一个自然数。重复进行上述运算,最终会出现一个神秘的数,请编程输出这个神秘的数。
  8. React之antd按需加载
  9. ESP8266 UART 使用说明
  10. Springboot实现微信小程序注册登录及微信登录