开这个系列文章,记录自己在项目中使用OpenCV所走的步骤流程,方便以后再次使用.如果有不正确的地方,欢迎指正.

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

现在记录的是,怎么把扩展模块的功能,也集成到opencv2.framework中,方便我们集成到项目中.

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

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

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

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

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找到的解决方法.

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

接下来编译项目应该是没什么问题了.使用过程中 opencv.hpp 并没有引入扩展模块的头文件,所以你要用到扩展模块的功能,还需要自己引入扩展模块的头文件.

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


OpenCV(一):集成的更多相关文章

  1. Android平台OpenGL ES/Assimp/OpenCV/GLM集成说明

    Android平台OpenGL ES/Assimp/OpenCV/GLM集成说明 本文代码见: https://github.com/jiangxincode/OpenGLDemo 集成Assimp ...

  2. opencv 61篇

    (一)--安装配置.第一个程序 标签: imagebuildincludeinputpathcmd 2011-10-21 16:16 41132人阅读 评论(50) 收藏 举报  分类: OpenCV ...

  3. Opencv改变图像亮度和对比度以及优化

    https://blog.csdn.net/u013139259/article/details/52145377 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.cs ...

  4. OpenCV 视频处理框架

    OpenCV 本身集成了 FFmpeg,因此对于视频是有解码和编码功能的.尽管其效率在本人看来还不能跟未被封装的FFmpeg相提并论,然用其来对视频进行解码得到图像,然后对图像进行处理并将得到的图像又 ...

  5. 介绍n款计算机视觉库/人脸识别开源库/软件

    计算机视觉库 OpenCV OpenCV是Intel®开源计算机视觉库.它由一系列 C 函数和少量 C++ 类构成,实现了图像处理和计算机视觉方面的很多通用算法. OpenCV 拥有包括 300 多个 ...

  6. 图像融合之泊松融合(Possion Matting)

    前面有介绍拉普拉斯融合,今天说下OpenCV泊松融合使用.顺便提一下,泊松是拉普拉斯的学生. 泊松融合的原理请参考这篇博文https://blog.csdn.net/u011534057/articl ...

  7. 【OpenCV for Android】Android Studio集成OpenCV

    准备工作 1.下载安装Android Studio(过程略). 2.下载Android OpenCV:https://opencv.org/releases.html,找到Android pack点击 ...

  8. Android OpenCV集成摄像头图片动态识别车牌号

    最近两天开发一个使用OpenCV集成的一个识别车牌号的项目,困难重重,总结一下相关经验,以及开发注意事项: 一.开发环境: Android Studio 个人版本 3.1.4 NDK下载:14b CM ...

  9. OpenCV - Android Studio 中集成Opencv环境(包含opencv_contrib部分)

    我在上一篇博客中说到了在Android中集成OpenCV,但是那个版本的OpenCV是没有SIFT和SURF算法的,因为这些算法是受专利保护的,所以并没有被包含在预编译库中,所以如果想要使用SIFT和 ...

随机推荐

  1. 直方图均衡化与Matlab代码实现

    昨天说了,今天要好好的来解释说明一下直方图均衡化.并且通过不调用histeq函数来实现直方图的均衡化. 一.直方图均衡化概述 直方图均衡化(Histogram Equalization) 又称直方图平 ...

  2. sqlite3出现SQLITE_BUSY错误码的原因以及解决方法

    转载:https://www.cnblogs.com/lijingcheng/p/4454884.html 转载:https://blog.csdn.net/venchia_lu/article/de ...

  3. 开箱即用的VScode C++环境

    对大部分人来说vscode配置c++环境十分繁琐,这里提供简单方法. 1. 下载VSCode 官方网站下载(便携版):VSCode-win32-ia32-1.32.1.zip 解压VSCode-win ...

  4. Gradle 简记

    不是 Gradle,就是 Maven吧.对比下: Maven: 推荐(?)了一个默认的项目结构和生命周期,但是太过死板 虽然暴露了 API 接口,但是插件定制太过复杂 和 Ant 一样,仍然无法表达复 ...

  5. mybatis中mapper接口的参数设置几种方法

    方法一:忽略parameterType,加@param("xxx")注解 在mapper接口中加上@param("xxx")注解,则在配置文件中直接用即可 Li ...

  6. error LNK1169 找到一个或多个多重定义的符号的解决方法

    问题描述如下: 有 三个源文件,A.h.B.cpp.C.cpp. A.h是头文件,其中声明了三个变量a1.a2. a3. B.cpp是A.h中所声明的类的实现源代码,C.cpp是主程序文件.B.cpp ...

  7. [评测]低配环境下,PostgresQL和Mysql读写性能简单对比(欢迎大家提出Mysql优化意见)

    [评测]低配环境下,PostgresQL和Mysql读写性能简单对比 原文链接:https://www.cnblogs.com/blog5277/p/10658426.html 原文作者:博客园--曲 ...

  8. Python中常见的正则表达式符号

    ?  匹配零次或一次前面的分组 *   匹配零次或多次前面的分组 +  匹配一次或多次前面的分组 {n} 匹配n次前面的分组 {n,} 匹配n次或更多次前面的分组 {,m} 匹配零次到m次前面的分组 ...

  9. Reids 持久化AOF 重写实现原理

    AOF重写 AOF重写并不需要对原有AOF文件进行任何的读取,写入,分析等操作,这个功能是通过读取服务器当前的数据库状态来实现的.(auto-aof-rewrite-percentage和auto-a ...

  10. Cocos Creator学习五:触摸和重力传感响应事件

    1.移动设备上主要涉及触摸响应事件以及重力传感响应事件的处理. 事件主要分两类: 针对节点事件处理的节点响应事件cc.Node.EventType(主要是触摸响应事件和鼠标响应事件): 针对全局系统事 ...