Open Source Computer Vision Library

https://opencv.org/

开源的计算机视觉和机器学习软件库,它提供了一系列的编程接口和算法,用于实时的计算机视觉任务。

是计算机视觉、图像处理、机器人感知领域最重要的开源库之一。它不仅支持图像处理、机器学习、视频流处理,还支持多平台、多语言。

常用模块

模块功能
core核心数据结构与基本运算
imgproc图像处理:滤波、边缘检测、形态学操作
highgui图像显示、视频捕获
video光流、背景建模、运动检测
calib3d相机标定、立体视觉、三维重建
features2d特征检测与匹配(SIFT、ORB、FAST)
objdetect目标检测(Haar、HOG)
dnn深度学习推理
ml机器学习
photo图像修复、去噪、HDR
videoio视频输入输出
viz3D 可视化

操作的共性与核心思维

读取图像 → 预处理 → 核心处理 → 可视化/保存

OpenCV- Python 快速原型验证 OpenCV- C++ 高性能应用

数据结构 :Mat

所有图像、视频、矩阵数据统一存储在 cv::Mat(C++)或 numpy. array(Python) 中。Mat 的本质:行列二维数组,每个像素可能包含灰度值、RGB、深度等信息。

图像通道与颜色约定

OpenCV 默认通道顺序:BGR(而非 RGB) 转换颜色空间:cv2.cvtColor,支持 BGR、GRAY、HSV、Lab、YUV 等 统一的图像数据类型:

  • 8 位灰度:np. uint8
  • 8 位彩色:np. uint8 三通道
  • 浮点型图像:np. float32(如光流)

操作共性

所有滤波操作(均值、卷积、高斯、腐蚀、膨胀)本质上是:

  • 在像素邻域滑动窗口进行局部运算
  • 结果存储于新 Mat,不修改原图

所有图像几何操作(仿射、透视、旋转、缩放):

  • 都通过计算变换矩阵
  • 使用统一函数 cv2.warpAffine 或 cv2.warpPerspective