OpenCV 架构学习


OpenCV 架构学习_第1张图片

库设计通用考虑:

1、 Cv  命名空间

2、自动内存管理 主要采用了智能指针,引用计数功能

3、饱和操作 处理溢出值

4、数据类型支持和多通道支持

5、错误和异常处理

6、多线程和可重入性


core  主要定义了 traits 多类型支持,点,矩形,mat,vec,ptr,动态结构等数据结构

imgproc 主要定义了图像滤波,几何变换,直方图,结构描述等数字图像处理基本算法

...

主要关注 opencv中抽象类层次的定义和使用


features2D 定义了特征检测,特征描述,特征比较等三个抽象类层次


ml 定义了机器学习抽象类层次

OpenCV 架构学习_第2张图片


这些算法的使用都是用基类指针指向具体实体类

ptr<基类>  pointToTarget = new 实体类

但是基类指针只能访问基类接口,所以opencv在设计类层次的时候定义了虚函数来封装子类具体实现。





你可能感兴趣的:(OpenCV 架构学习)