先在官网https://opencv.org/releases/下载ios pack下的OpenCV2包并解压
Xcode新建一个ios项目
把解压的opencv2.framework拉进项目
在项目的Build Phases --> Link Binary with Libraris添加其他框架来支持OpenCV2
Build Settings --> Framework Search Paths设置框架搜索路径$(PROJECT_DIR)
创建Objective-C文件OpenCVWrapper.m,修改为OpenCVWrapper.mm,并确认创建creating bridging header ( OpenCV-Bridging-Header.h ),最后再创建头文件OpenCVWrapper.h
OpenCVWrapper.mm内容
#import "OpenCVWrapper.h"
#import <opencv2/opencv.hpp>
@implementation OpenCVWrapper : NSObject
+ (NSString *)openCVVersionString {
return [NSString stringWithFormat:@"OpenCV Version %s", CV_VERSION];
}
@end
OpenCV-Bridging-Header.h内容
#include "OpenCVWrapper.h"
OpenCVWrapper.h内容
#ifndef OpenCVWrapper_h
#define OpenCVWrapper_h
#import <Foundation/Foundation.h>
@interface OpenCVWrapper: NSObject
+ (NSString *)openCVVersionString;
@end
#endif /* OpenCVWrapper_h */
创建PCH文件PrefixHeader.pch
#ifndef PrefixHeader_pch
#define PrefixHeader_pch
#ifdef __cplusplus
#include <opencv2/opencv.hpp>
#endif
#endif /* PrefixHeader_pch */
在Build Settings --> Prefix Header 添加PrefixHeader.pch存放的路径(我的是放在项目根目录下)
${SRCROOT}/PrefixHeader.pch
点击运行会报错,解决方法:
Build Settings --> Quoted Include In Framework Header的值改为NO
Build Settings --> Documentation Comments的值改为NO
最后测试打印OpenCV的版本号,成功运行