最近项目在有一个功能 是利用opencv的一个功能,在集成opencv 的时候遇见了很多小问题 也是非常头疼的,在这里记录一下,希望大家能少走点弯路 那么开始记录:
1.导入 opencv2.framework
在pch 中添加头文件
#ifdef __cplusplus
#import
#endif
其他的用 包含起来
#ifdef __OBJC__
#endif
common + b 报错
解决: Enable Bitcode 改为No
2. common + b 报错 添加以后这时候你build一下如果发现编译不过,出现了一个很蛋疼的错误缺少一个libjpg库,不要惊慌,请按照下列解决方法:
解决方法 :
http://sourceforge.net/projects/libjpeg-turbo/files/1.4.0/下载 libjpeg-turbo-1.4.0.dmg
安装这个库,然后你会在路径/opt/libjpeg-turbo/lib找到它libjpeg.a
打开终端输入 lipo -info /opt/libjpeg-turbo/lib/libjpeg.a 看是不是armv7 x86-64都全,然后把这个.a拷贝到你的工程目录下
然后把库拖进你的工程里 添加opencv 依赖 libjpeg.a (需要下载) 完成后 向 Library Search Paths 添加 /opt/libjpeg-turbo/lib 寻找libjpeg.a的路径
3. common + b 运行成功 开始写关于 opencv 的代码啦
导入已写完成的c++ 代码
解决方法 : 在pch 添加两个头文件 一定要在 #import <opencv2/opencv.hpp>de前面
4.还可能出现如下错误
dyld: Library not loaded: /opt/libjpeg-turbo/lib/libjpeg.62.dylib
Referenced from: /Users/malata/Library/Developer/CoreSimulator/Devices/5A63F3E9-9097-46F6-879C-66C26135B5AA/data/Containers/Bundle/Application/33C4EED6-79E7-48A5-B798-E65FF127F640/LocationManager.app/LocationManager
Reason: no suitable image found. Did find:
/opt/libjpeg-turbo/lib/libjpeg.62.dylib: mach-o, but not built for iOS simulator
解决办法很简单:
将添加进入工程的libjpeg.a 在Build phases -> Link binary with Libraries 把required 改成 optional。
5.还可能出现如下错误
在background_segm.hpp里出现“ 'list' file not found”
解决办法很简单:
1)把用到opencv的类的后缀从.m改为.mm
必须添加的类库
AVFoundation
CoreMedia
AssetLibrary
CoreVideo
在项目中 .cpp c++ 利用 ifstream in(xx.txt); or Mat img_color = imread("41.jpg"); 一直读取不了txt 和图片的信息 有明白的大神可以告知一下,