opencv基本架构分析


参考《Opencv3编程入门》 毛星云编著

v2

  • 在D:\opencv\opencv\build\include\opencv文件夹中包含的是opencv1.0的核心代码。
  • 在D:\opencv\opencv\build\include\opencv2文件夹中包含的是opencv2.0具有划时代意义的代码。具体参照D:\opencv\opencv\build\include\opencv2\opencv_modules.hpp文件的内容,该文件给出了包含的模块,如图1。
    opencv基本架构分析
    可以看到的是opencv2.0带来的核心模块包括19个。在这种架构下,各种模块以整体形式构建然后组合在一起。然而随着功能增加,opencv变的臃肿。

v3

opencv3.0抛弃了原来2.0的整体架构,将整体架构设计成内核+插件的架构形式。同时开始由激进的功能革新转为稳定的改进。所以opencv在github中提供了三个源代码仓库,分别是opencv、opencv_contrib、opencv_extra。

  • opencv:存放着opencv稳定功能的源代码。
  • opencv_contrib:存放着功能相对opencv更激进,但相对不稳定的功能代码。
  • opencv_extra:这个库包含了OpenCV库的额外数据。