快速查看OpenCV模块依赖与剪裁

    的“提笔写篇文章”文案挺有意思的,不过实际大部分情况无笔可提;应该换成“敲键盘写篇文章”;

提笔写篇文章

敲键盘写篇文章

    Opencv是一个非常优秀而且越来越优秀的开源图形图像库;但是如果只是需要其中某部分的功能,不想带着整个Opencv的代码,就需要进行代码的剪裁,代码剪裁的前提需要捋清楚代码的依赖关系;
    如下图所示,Opencv的代码本身就是模块化设计;捋清楚模块与模块之间的依赖关系基本上就可以进行对应的剪裁了;

快速查看OpenCV模块依赖与剪裁_第1张图片
Opencv源码结构

    那么如何快速弄清楚Opencv模块与模块之间的依赖关系呢?下面说下Mac下使用cmake工具获取模块依赖的方法,非常的方便简洁;

    首先从github获取最新的源码;
   然后从下载cmake工具,cmake官网;目前最新版本下载文件是: cmake-3.6.0-rc4-Darwin-x86_64.dmg;

    然后配置source code路径以及build路径;点击“configure”会出现选择generator;选择Xcode;

快速查看OpenCV模块依赖与剪裁_第2张图片
选择Xcode

    然后点击configure:

快速查看OpenCV模块依赖与剪裁_第3张图片
cmake配置

    cmake会自动检测并配置选项,如果遇到红色项就改过去;具体细节可网上具体查询,然后点击“Generate”就可以生成Xcode项目;但是!generate之前先取消勾选 选项“BUILD_SHARED_LIBS”(上图中高亮选择的选项);

    看下图,是取消勾选 选项“BUILD_SHARED_LIBS”之后生成的Xcode工程target列表;每一个模块都有一个target,如果不取消改选项,就会只有一个“opencv_modules”的target;而我们需要每个模块都有一个target来查看模块的依赖关系;

快速查看OpenCV模块依赖与剪裁_第4张图片
Xcode Target列表

    下面就可以直接看每个模块target的依赖关系,例如core模块不依赖任何其他一个模块:

快速查看OpenCV模块依赖与剪裁_第5张图片
core依赖

而flann依赖core模块:

快速查看OpenCV模块依赖与剪裁_第6张图片
flann依赖

    这样根据你使用到的模块,就可以很方便的知道这些功能依赖了其他哪些模块,从而进行定制和剪裁;core基本上是所有其他模块都需要的;imgproc也有较多模块依赖;
    捋清楚Opencv模块之间的依赖基本上就能进行定制和剪裁了,源码拷贝后,配置好路径就可以集成进行编译;处理thirdpart以及highgui在一些特定的平台可能会遇到一些问题,都可以通过搜索引擎解决,如果后面有机会再详细写。

你可能感兴趣的:(快速查看OpenCV模块依赖与剪裁)