OpenCV是一个开源跨平台的的计算机视觉和机器学习库,可以用来做图片视频的处理、图形识别、机器学习等应用,本序列将着重记录在OC语言中的使用
安装
介绍 OpenCV的安装有三种方式:
1.github下载源码编译 下载地址
2. 使用CocoaPods安装
在项目podfile中加入pod 'OpenCV-iOS', '~> 3.1',在cmd 下cd 至项目路径 运行pod install 等待下载完成.
3.在官方下载framework 下载地址
将下载好的opencv2.framework添加到项目中,并且将OpenCV所需的依赖库添加到项目中。
libc++.tbd
AVFoundation.framework
CoreImage.framework
CoreGraphics.framework
QuartzCore.framework
Accelerate.framework
如果要使用摄像头做视频处理,还需要添加以下两个依赖库:
CoreVideo.framework
CoreMedia.framework
AssetsLibrary.framework
项目中使用
因为openCV 是C++编写,所以我们要在项目中使用需以 Object-C++的兼容方式来写,即在要引入openCV的文件的.m改成.mm即可编译.
导入头文件
重要两个函数
UIImage *image = [UIImage imageNamed:@"test"];
/*
UIImage 转换成openCV 使用格式Mat
openCV 提供方法 UIImageToMat(const UIImage *image, cv::Mat &m)
第一个参数 输入的参数
第二个参数 转换成的 Mat格式
*/
MatinputImage;
UIImageToMat(image, inputImage);
/************************处理逻辑**********************/
/*
Mat格式转换成 UIImage
openCV提供方法 MatToUIImage(const cv::Mat &image)
第一个参数 输入的参数
第二个参数 转换成的 Mat格式
*/
UIImage*outImage = MatToUIImage(inputImage);
openCV 模块介绍
core
定义了基本数据结构,包括最重要的Mat和一些其他的模块
imgproc
该模块包括了线性和非线性的图像滤波,图像的几何变换,颜色空间转换,直方图处理等等
video
该模块包括运动估计,背景分离,对象跟踪
calib3d
基本的多视角几何算法,单个立体摄像头标定,物体姿态估计,立体相似性算法,3D信息的重建
features2d
显著特征检测,描述,特征匹配
objdetect
物体检测和预定义好的分类器实例(比如人脸,眼睛,面部,人,车辆等等)
highgui
视频捕捉、图像和视频的编码解码、图形交互界面的接口
gpu
利用GPU对OpenCV模块进行加速算法
ml
机器学习模块(SVM,决策树,Boosting等等)
flann
Fast Library for Approximate Nearest Neighbors(FLANN)算法库
legacy
些已经废弃的代码库,保留下来作为向下兼容
网友评论