iOS开发 - OpenCV + OpenCV_contrib

2018-11-09  本文已影响0人  Seacen_Liu

日常iOS开发中,我们基本都可以使用Cocoapod直接进行依赖管理。现在项目中使用到了OpenCV,我也像往常一样在podfile中添加了pod 'OpenCV'。感觉这样就行了,但是在项目中还用到了OpenCV一个额外的模块——OpenCV_contrib,就有了下面的折腾历程了。

在Cocoapod中寻找

Cocoapod.png

Cocoapod中我找到了上述的两个库,但是再pod install中都出现了问题,添加不上去,如果有人使用过这两个可以在评论区说一下。

手动下载和依赖全过程

由于我用Cocoapod的方法没有成功,所以尝试着自己打包,再导入到项目中

其他依赖

根据上面的方法将opencv2.framework导入到项目中是还不能用的,command B走起来会发现Error了

常见错误:

linker command failed with exit code 1 (use -v to see invocation)

如果出现这个恶心的问题,我们需要右键点击Reveal in log,耐心的去看那一大堆信息。
当时我出现下图的报错

log.png
通过AVCaptureSessionPresetMediumCvVideoCamera初步猜测出我还需要引入AVFoundation.frameworkCoreMedia.framework。如下图所示:
resolve.png

然后再command BBuild Succeeded

注意事项

在我们使用OpenCV的时候要注意CPP的头文件需要先引入,为了方便起见,我们可以在PrefixHeader.pch中使用下面的形式

#ifndef PrefixHeader_pch
#define PrefixHeader_pch

#ifdef __cplusplus

#import <opencv2/opencv.hpp>
#import "opencv2/face.hpp"

#endif


#ifdef __OBJC__

// ...

#endif

#endif /* PrefixHeader_pch */

结语

本文是笔者的踩坑和当前解决方案,如果大家有更好的方法,欢迎留言~

上一篇 下一篇

猜你喜欢

热点阅读