庫設計通用考慮:
1、 Cv 命名空間
2、自動內存管理 主要採用了智能指針,引用計數功能
3、飽和操作 處理溢出值
4、數據類型支持和多通道支持
5、錯誤和異常處理
6、多線程和可重入性
core 主要定義了 traits 多類型支持,點,矩形,mat,vec,ptr,動態結構等數據結構
imgproc 主要定義了圖像濾波,幾何變換,直方圖,結構描述等數字圖像處理基本算法
...
主要關注 opencv中抽象類層次的定義和使用
features2D 定義了特徵檢測,特徵描述,特徵比較等三個抽象類層次
ml 定義了機器學習抽象類層次
這些算法的使用都是用基類指針指向具體實體類
ptr<基類> pointToTarget = new 實體類
但是基類指針只能訪問基類接口,所以opencv在設計類層次的時候定義了虛函數來封裝子類具體實現。