OpenCV跨平台计算机视觉库
简介
OpenCV(Open Source Computer Vision Library)开源跨平台计算机视觉库
官网下载地址:https://opencv.org/releases/
OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android、Mac OS操作系统上。它轻量级而且高效——由一系列C函数和少量C++类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。
OpenCV用C++语言编写,它具有C++,Python,Java,和MATLAB接口,并支持Windows,Linux,Android和Mac OS,OpenCV主要倾向于实时视觉应用,并在可用时利用MMX和SSE指令,如今也提供对于C#、Ch、Ruby、GO的支持。
OpenCV提供的视觉处理算法非常丰富,并且它部分以C语言编写,加上其开源的特性,处理得当,不需要添加新的外部支持也可以 完整的编译链接生成执行程序,所以很多人用它来做算法的移植,OpenCV的代码经过适当改写可以正常的运行在DSP系统和ARM嵌入式系统中,这种移植在大学中经常作为相关专业本科生毕业设计或者研究生课题的选题。
2022年12月8日,龙芯中科宣布,近期,OpenCV 开源社区正式合入了对 LoongArch 架构支持的代码,基于龙架构自主指令系统,优化后的 OpenCV 性能显著提升。
OpenCV的结构
OpenCV具有模块化结构,这意味着该软件包包含多个共享或静态库。主要模块包括:
- 核心功能(core) - 定义基本数据结构的紧凑模块,包括密集的多维数组垫和所有其他模块使用的基本功能。
- 图像处理 (imgproc) - 一个图像处理模块,包括线性和非线性图像过滤、几何图像转换(调整大小、仿射和透视扭曲、基于表的通用重映射)、色彩空间转换、直方图等。
- 视频分析 (video) - 一个视频分析模块,包括运动估计、背景减法和对象跟踪算法。
- 相机校准和 3D 重建 (calib3d) - 基本的多视图几何算法、单摄像机和立体相机校准、对象姿态估计、立体对应算法和 3D 重建元素。
- 2D 特征框架 (features2d) - 显著特征检测器、描述符和描述符匹配器。
- 对象检测 (objdetect) - 检测预定义类的对象和实例(例如,人脸、眼睛、杯子、人物、汽车等)。
- 高级 GUI (highgui) - 一个易于使用的界面,用于简单的 UI 功能。
- 视频 I/O (videoio) - 一个易于使用的视频捕获和视频编解码器接口。
- ...其他一些帮助程序模块,例如 FLANN 和 Google 测试包装器、Python 绑定等。
应用领域
人机互动
物体识别、人脸识别、动作识别
图像分割
运动跟踪、运动分析
机器人
机器视觉
结构分析
汽车安全驾驶
(未完待续...)