IOS下OpenCV集成步骤及注意事项

导入OpenCV三种方式

1.CocoaPods:pod “OpenCV”

2.下载官方iOS包:http://opencv.org/downloads.html,直接拖入自己新建的IOS工程

3.在GitHub下代码自己编译:GitHub地址https://github.com/Itseez/opencv,编译教程http://docs.opencv.org/doc/tutorials/introduction/ios_install/ios_install.html#ios-installation

ObjectiveC++及封装

OpenCV的API是C++编写的,需要在Objective-C++文件中使用,同时需要将文件后缀名.m改为.mm。这里内存管理是需要注意的,ARC是无效的,所以assign需要在dealloc里将C++对象正确释放掉。更多的混用C++和Objective-C的细节参考Matt Galloway的教程:http://www.raywenderlich.com/62989/introduction-c-ios-developers-part-1,正确的方式是给所有你要在 app 中使用到的 OpenCV 功能写一层 Objective-C++ 封装。这些 Objective-C++ 封装把 OpenCV 的 C++ API 转化为安全的 Objective-C API,以方便地在所有 Objective-C 类中使用。走封装的路子,你的工程中就可以只在这些封装中调用 C++ 代码,从而避免掉很多让人头痛的问题,比如直接改文件后缀名会因为在错误的文件中引用了一个 C++ 头文件而产生难以追踪的编译错误。

注意事项

1.OpenCV下载的Framework拖入工程编译无法找到:/usr/bin/codesign failed with exit code 1

解决方法:1)删除引用,重新Add Files To …导入一遍  2)使用cocoapods导入

2.编译报错:exposure_compensate.hpp:66:12: Expected identifier

解决方法:点到源代码处把NO改为NO_EXPOSURE_COMPENSATOR = 0,重新编译OK

3.编译panorama.framework时报错找不到ovx.hpp。

解决方法:直接注释掉那一行

4.调用opencv人脸识别,提示找不到haarcascade_frontalface_default.xml文件

解决方法:网上下载此文件,然后拖入工程即可

5.#import<opencv2/highgui/cap_ios.h>提示无法找到

解决方法:改为:#import<opencv2/videoio/cap_ios.h>

    原文作者:melodyrite
    原文地址: https://www.jianshu.com/p/390e8b1c4022
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞