Opencv起步

文章目录

  • opencv主要功能及模块
  • 图像处理
    • Numpy
    • 数据类型
    • 数组的形状

opencv主要功能及模块

  1. 内置数据结构和输入/输出
    • OpenCV内置了丰富的与图像处理有关的数据结构,如Image、Point、Rectangle等。
    • core模块实现了各种基本的数据结构。
    • imgcodecs模块提供了图像文件的读写功能,用户使用简单的命令即可读写图像文件。

  2. 图像处理操作

    imgproc模块提供了图像处理操作,如图像过滤、几何图像变换、绘图、色彩空间转换、直方图等。

  3. 图形用户界面操作。

    highgui模块提供了图像的图形窗口操作功能,如创建窗口显示图像或者视频、令窗口响应键盘和鼠标事件、操作窗口中图像的某个区域等。

  4. 视频分析

    video模块提供了视频分析功能,如分析视频中连续帧之间的运动、跟踪视频中的目标。videostab模块提供了视频稳定处理功能,可解决拍摄视频时的抖动问题。optflow模块提供了与光流操作相关的算法。

  5. 3D重建

    calib3d模块提供了3D重建功能,可根据2D图像创建3D场景。

  6. 特征提取。

    features2d模块提供了特征提取功能,可以从2D图像中检测和提取对象的特征。

  7. 对象检测

    objdetect和xobjdetect模块提供了对象检测功能,可在图像中检测给定图像的位置。

  8. 机器学习

    ml模块提供了机器学习功能,包含了多种机器学习算法,如k近邻(k-Nearest Neighbors,kNN)、k均值聚类(k-Means Clustering)、支持向量机(Support Vector Machines,SVM)、神经网络(Neural Network)等。机器学习算法广泛应用于目标识别、图像分类、人脸检测、视觉搜索等。

  9. 深度学习

    深度神经网络(Deep Neural Network,DNN)模块提供了深度学习功能。深度学习是机器学习中近几年来快速发展的一个子领域,广泛应用于语音识别、图像识别、自然语言处理、图像修复、人脸识别等。OpenCV的深度学习支持Caffe、TensorFlow、Torch、Darknet等著名的深度学习框架。

  10. 计算摄影

    计算摄影通过图像处理技术来改善相机拍摄的图像,如高动态范围成像、全景图像、图像补光等。photo和xphoto模块提供了与计算摄影有关的算法,stitching模块提供了全景图像算法。

  11. 形态分析

    shape模块提供了形态分析功能,可以识别图像中对象的形状、分析形状之间的相似性、转换对象形状等。

  12. 人脸检测和识别

    OpenCV已在face模块中实现了人脸检测、人脸特征检测和人脸识别功能。人脸检测属于对象检测,用于找出图像中人脸的位置和尺寸。人脸特征检测属于特征检测,用于找出图像中人脸的主要特征。人脸识别属于对象识别,包括从已知人脸集合中找出与未知人脸最匹配的人脸,以及验证给定人脸是否为某个已知人脸。OpenCV实现了基于Haar级联分类器和基于深度学习的人脸检测算法,以及EigenFaces、FisherFaces和局部二进制编码直方图(Local Binary Patterns Histograms,LBPH)等人脸识别算法。

  13. 表面匹配。

    surface_matching模块提供了3D对象识别算法和3D特征的姿态估计算法,用于根据图像的深度和强度信息识别3D对象。

  14. 文本检测和识别。

    text模块提供了文本检测和识别功能,用于识别和检测图像中的文本,实现车牌识别、道路标志识别、内容数字化等相关应用。

图像处理

Numpy

数据类型

Opencv起步_第1张图片
Opencv起步_第2张图片使用zeros()函数创建数组
创建指定形状的数组,数组元素默认值为0,数据类型默认为float,函数参数用于指定数组的形状,示例代码如下。
使用arange()函数创建数组
创建元素值按规则递增的数组,类似于Python的range()函数,示例代码如下。
Opencv起步_第3张图片
使用ones()函数创建数组
ones()函数用于创建元素值为1的数组(单位矩阵),示例代码如下。
Opencv起步_第4张图片

数组的形状

数组对象的shape属性可用于查看或改变数组的形状,示例代码如下。
Opencv起步_第5张图片
reshape()方法可更改数组形状,并返回更改后的新数组,示例代码如下。
Opencv起步_第6张图片
resize()方法的refcheck参数为False时,可在改变形状的同时更改元素个数,示例代码如下。
Opencv起步_第7张图片
np.ravel()函数可将数组转换为一维数组,示例代码如下。

Opencv起步_第8张图片
##索引、切片和迭代
一维数组的索引、切片和迭代等操作与Python的列表类似,示例代码如下。
Opencv起步_第9张图片
两个数组执行算术运算时,“”运算符用来计算元素乘积,“@”运算符和dot()方法用来计算矩阵乘积,示例代码如下。
Opencv起步_第10张图片
NumPy数组支持“+=”“
=”等赋值运算,且会用计算结果覆盖原数组,示例代码如下。
Opencv起步_第11张图片

NumPy为数组提供了一些执行计算的方法,示例代码如下。
Opencv起步_第12张图片
可设置axis参数以便按指定的轴执行计算,示例代码如下。
Opencv起步_第13张图片

你可能感兴趣的:(Python计算机视觉,机器学习,opencv,计算机视觉)