OpenCV(一):集成

开这个系列文章,记录本身在项目中使用OpenCV所走的步骤流程,方便之后再次使用.若是有不正确的地方,欢迎指正.html

 

OpenCV在其官网上,已经发布有iOS版的库,可是只有核心模块的功能,扩展模块(好比:人脸识别)的功能并无添加进去.若是只是单纯使用核心模块的功能,那么能够直接去官网下载,或则用cocoapods集成(这个方法集成好像有问题了,推荐去官网下载,拖进项目.2017.3.28标记),这个是很方便,也没什么难点.
python

如今记录的是,怎么把扩展模块的功能,也集成到opencv2.framework中,方便咱们集成到项目中.ios

首先,去github上下载OpenCV的核心模块与扩展模块,也就是打开网页以后的opencv,opencv_contrib两个项目都须要下载. 而后咱们须要下载一个CMake.关于这个是用来干吗的,请自行百度,我也不知道.最后还须要下载一个编译过程须要下载的一个包 protobuf-cpp-3.1.0.tar.gz ,下载页面已经提醒你放在哪里了,具体我后面再说.git

到这,咱们前期工做已经作完了,接下来就是把两个模块整合在一块儿了.首先把opencv项目放在一个文件夹中,路径最好不要有中文,防止编译出错. 打开opencv_contrib项目中modules文件夹,复制里面全部的文件夹,粘贴到opencv项目的modules文件夹中.固然,你也根据我的须要只复制你须要功能,具体能够查看OpenCV的文档介绍.完成以后,再把咱们下载的 protobuf-cpp-3.1.0.tar.gz 压缩包放到opencv项目modules/dnn/.download/bd5e3eed635a8d32e2b99658633815ef/v3.1.0 ,由于.download是隐藏文件夹,你能够直接 Finder 右键前往文件夹,直接输入路径进去.github

如今就到编译阶段了.打开opencv项目的platforms找到你要的环境,点击进去,查看readme.txt,里面就有相关的终端命令.我是iOS开发,因此只尝试了iOS的.app

python命令Mac是自带的,能够直接执行.而咱们要作的就是,把build_framework.py的路径弄对. 你能够在终端cd到iOS目录下,而后执行 $ python build_framework.py ios  ,也能够直接使用绝对路径. 不过在执行,须要先执行一句 $ PATH=$PATH:/Applications/CMake.app/Contents/bin ,由于咱们是直接安装CMake APP,终端没有相关的环境,会出现ui

anil-Mac-2s-Mac-mini:opencv pws-mac-2$ python platforms/ios/build_framework.py ios Executing: ['cmake', '-GXcode', '-DCMAKE_BUILD_TYPE=Release', '-DCMAKE_TOOLCHAIN_FILE=/Users/pws-mac-2/Desktop/opencv/platforms/ios/cmake/Toolchains/Toolchain-iPhoneOS_Xcode.cmake', '-DCMAKE_INSTALL_PREFIX=install', '-DENABLE_NEON=ON', '/Users/pws-mac-2/Desktop/opencv', '-DCMAKE_C_FLAGS=-fembed-bitcode', '-DCMAKE_CXX_FLAGS=-fembed-bitcode'] in /Users/pws-mac-2/Desktop/opencv/ios/build/armv7-iPhoneOS 

 的错误,这个我是在stackoverflow找到的解决方法.spa

弄好后,终端就开始执行命令了,这个时候iOS目录下会生成一个iOS文件夹,打开进去里面还有一个build.咱们就不用管了,等命令执行完成以后,在这个文件夹中就会有一个新的opencv2.framework,你集成到项目里面,就能够看到比官网下载的opencv2.framework多了扩展模块了.而后就是添加相关的系统库了.其中还会有两个错误,报错是NO 只要把NO修改为 NO_EXPOSURE_COMPENSATOR 或 NO_EXPOSURE_COMPENSATOR =0 也行..net

接下来编译项目应该是没什么问题了.使用过程当中 opencv.hpp 并无引入扩展模块的头文件,因此你要用到扩展模块的功能,还须要本身引入扩展模块的头文件.code

 

 集成就这么多了,之后遇到新的问题,再来修改.

相关文章
相关标签/搜索