OpenCV 架构学习

来源:互联网 发布:知乎app下载ipad 编辑:程序博客网 时间:2024/06/10 06:45



库设计通用考虑:

1、 Cv  命名空间

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

3、饱和操作 处理溢出值

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

5、错误和异常处理

6、多线程和可重入性


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

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

...

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


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


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



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

ptr<基类>  pointToTarget = new 实体类

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