[iOS]iOS结合OpenCV做视频流处理或人脸识别
2016-09-26 20:51
337 查看
下面是做好的demo的样子。
然后我来讲一下怎么实现的。
首先去
http://opencv.org/downloads.html
下载OpenCV for iOS
我下载的是3.1版本。链接点进去没反应的自行翻墙一下。
然后将里面的framework直接拖入到iOS工程中。
界面什么的随便搭一下。
头文件引入
还要在Build Phases中加入下面这些framework
opencv2
Accelerate
AssetsLibrary
AVFoundation
CoreGraphics
CoreImage
CoreMedia
CoreVideo
QuartzCore
第二个头文件和官方说的不一样,注意一下,官方的比较老了,是错误的。
然后两个变量
然后在viewdidload里面加入这些代码:
注意使用协议
下面实现代理方法
里面的代码是我自己写的,你们想怎么修改都可以,反正是对图片进行处理,包括人脸识别都可以在这个函数里面完成。
另外,如果你和我一样升级到了iOS10,xcode8的话,在info.plist里面加上下面这样一段代码,先请求摄像头权限,不然会报错。
参考:
http://docs.opencv.org/2.4/doc/tutorials/ios/video_processing/video_processing.html#opencviosvideoprocessing
然后我来讲一下怎么实现的。
首先去
http://opencv.org/downloads.html
下载OpenCV for iOS
我下载的是3.1版本。链接点进去没反应的自行翻墙一下。
然后将里面的framework直接拖入到iOS工程中。
界面什么的随便搭一下。
头文件引入
#import <opencv2/opencv.hpp> #import <opencv2/videoio/cap_ios.h>
还要在Build Phases中加入下面这些framework
opencv2
Accelerate
AssetsLibrary
AVFoundation
CoreGraphics
CoreImage
CoreMedia
CoreVideo
QuartzCore
第二个头文件和官方说的不一样,注意一下,官方的比较老了,是错误的。
然后两个变量
@property (weak, nonatomic) IBOutlet UIImageView *imageView; @property (strong, nonatomic) CvVideoCamera* videoCamera;
然后在viewdidload里面加入这些代码:
self.imageView.layer.borderColor = [UIColor blackColor].CGColor; self.imageView.layer.borderWidth = 1; self.videoCamera = [[CvVideoCamera alloc] initWithParentView:self.imageView]; self.videoCamera.delegate = self;//设置代理 self.videoCamera.defaultAVCaptureDevicePosition = AVCaptureDevicePositionBack;//用背面摄像头 self.videoCamera.defaultAVCaptureSessionPreset = AVCaptureSessionPreset352x288; //截取图片大小 self.videoCamera.defaultAVCaptureVideoOrientation = AVCaptureVideoOrientationPortrait;//竖屏 self.videoCamera.defaultFPS = 30; self.videoCamera.grayscaleMode = NO;
注意使用协议
@interface ViewController ()<CvVideoCameraDelegate>
下面实现代理方法
- (void)processImage:(cv::Mat &)image{ Mat gray; cvtColor(image, gray, CV_RGB2GRAY); GaussianBlur(gray, gray, cv::Size(5,5), 1.2,1.2); Mat edges; Canny(gray,edges,0,50); image.setTo(Scalar::all(255)); image.setTo(Scalar(0,128,255,255),edges); }
里面的代码是我自己写的,你们想怎么修改都可以,反正是对图片进行处理,包括人脸识别都可以在这个函数里面完成。
另外,如果你和我一样升级到了iOS10,xcode8的话,在info.plist里面加上下面这样一段代码,先请求摄像头权限,不然会报错。
参考:
http://docs.opencv.org/2.4/doc/tutorials/ios/video_processing/video_processing.html#opencviosvideoprocessing
相关文章推荐
- [iOS]iOS结合OpenCV做视频流处理或人脸识别
- opencv 人脸识别 (一)训练样本的处理
- opencv 人脸识别 (一)训练样本的处理
- ios学习之基于 OpenCV的人脸识别
- ios OpenCv的配置和人脸识别技术
- android jni中将大数据回调到java层的时候用法,比如视频流,音频流等,图片流等 比如我用ffmpeg解码好视频流,想送到java层使用opengGL进行显示,opencv进行人脸识别等等
- Qt5.7+Opencv2.4.9人脸识别(三)人脸处理
- opencv 人脸识别 (一)训练样本的处理
- OpenCV结合V4l2实现人脸检测以及人脸识别
- 图像处理--linux opencv2多线程人脸识别
- opencv实现人脸识别中过曝光人脸图片处理
- ios--OpenCV--人脸识别核心代码
- opencv 人脸识别 (一)训练样本的处理
- python与opencv的结合之人脸识别值
- python利用Opencv进行人脸识别(视频流+图片)
- OpenCV图像处理——人脸表情识别
- 使用Opencv实现IOS平台下的人脸识别
- iOS中基于OpenCV的人脸识别
- opencv 人脸识别 (一)训练样本的处理
- opencv 人脸识别 (一)训练样本的处理