简介:
Opencv是一款由intel公司俄罗斯团队发起并参与和维护的计算机视觉处理开源软件库,支持与计算机视觉和机器学习相关的众多算法,并且在日益扩展。
Opencv的优势:
- 编程语言:opencv基于c++实现,同时提供python、ruby、matlab等语言接口。Opencv-python是opencv的python api,结合了opencv c++api和python语言的最佳特性
- 跨平台:可以在不同的系统平台上使用,包括windows,linux、os x、android和ios。基于CUDA和opencl的高速gpu操作接口也在积极开发中
- 活跃的开发团队
- 丰富的api:完美的传统计算机视觉算法,涵盖主流的机器学习算法,同时添加了对深度学习的支持。
Opencv模块介绍
- core模块实现了最核心的数据结构及其基本运算,如绘图函数,数组操作相关函数等。
- Highgui模块实现了视频和图像的读取、显示、储存等接口。
- Imgproc模块实现了图像处理的基础方法,包括图像滤波、图像的几何变换、平滑、阈值分割、形态学处理、边缘检测、目标检测、运动分析和对象跟踪等。
- Feature2d模块用于提取图像特征以及特征匹配、nonfree模块实现了一些专利算法,如sift特征
- Objdetect模块实现了一些目标检测的功能,经典的基于Haar、LBP特征的人脸检测、基于HOG的行人、汽车等目标检测,分类器使用cascade classification(级联分类)和latent SVM等。
- Stitching模块实现了图像拼接功能。
- Flann模块包含快速近似最近邻搜索flann和聚类clustering算法。
- Ml模块机器学习模块
- Photo模块包含图像修复和图像去噪两部分。
- Video模块针对视频处理,如背景分离、前景检测、对象跟踪等。
- Calib3d模块主要是相机校准和三维重建相关内容。包含了基本的多视角几何算法,单个立体摄像头标定,物体姿势估计,立体相似性算法,3D信息的重建等等。
- g-api模块包含超高效的图像处理pipeline引擎。