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等著名的深度学习框架。