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、图像处理

(1)图像过滤

        bilateralFilter函数blur函数boxFilter函数构造高斯金字塔(
buildPyramid函数)
膨胀dilate函数腐蚀erode函数filter2D函数高斯滤波getDerivKernels函数、getGaborKernel函数、getGaussianKernel函数、getStructuringElement函数、Laplacian函数(拉普拉斯)、medianBlur函数、morphologyEx函数、pyrDown函数、pyrMeanShiftFiltering函数、pyrUp函数、Scharr函数、sepFilter2D函数、Sobel函数、spatialGradient函数、sqrBoxFilter函数。

(2)图像几何变换

        图像镜像图像旋转、图像平移、图像裁剪、仿射变换、透视变换等。

(3)杂项图像转换

        色彩空间变换、颜色映射、自适应阈值、混合线性、距离变换、洪水填充、积分图、二值化、平面细分。

(4)绘图功能

        带箭头线段、绘制圆、矩形、绘制轮廓、绘制标记、绘制椭圆、填充图形、绘制曲线、绘制文字。

(5)直方图

        计算直方图的反投影、计算一组数组的直方图、比较两个直方图、EMD、均衡灰度图像的直方图。

(6)结构分析和形状描述符

        逼近多边形、轮廓周长/曲线长度、计算边界矩形、寻找矩形顶点、寻找连通区域、计算轮廓面积、寻找凸包、查找轮廓的凸面缺陷、寻找轮廓、拟合椭圆、计算七个hu不变矩、两个形状比较、最小外接矩形、最小外接圆、最小外接三角形、计算多边形的矩、判断矩形相交。

(7)运动分析和图像跟踪

        检测图像平移

(8)特征检测/物体检测

        Canny、计算特征值和特征向量、Harris角点检测、计算用于角点检测的梯度矩阵的最小特征值、优化角点位置、确定图像上的强角、霍夫变换、计算用于角点检测的特征图、模板匹配。

(9)图像分割

        GrabCut 算法、分水岭算法。

2、机器学习模块

        多层感知机、增强树分类器、决策树、期望最大化、K-Nearest Neighbors、逻辑回归、普通贝叶斯分类器、随机森林预测器、模拟退火优化算法、支持向量机、随机梯度下降 SVM 分类器。

3、视频处理/分析

4、二维特征提取

5、物体检测

猜你喜欢

转载自blog.csdn.net/bashendixie5/article/details/125162071
今日推荐