iOS人脸识别技术
来源:互联网 发布:会计理解 知乎 编辑:程序博客网 时间:2024/06/09 16:47
http://blog.chukong-inc.com/index.php/2012/03/04/ios人脸识别技术/
iOS人脸识别技术
苹果在iOS 5.0中加入了CoreImage框架,让图形处理变得非常的方便。这是一个很强悍的框架,不仅支持使用滤镜来对静态图片甚至是视频进行实时的处理, 而且提供人脸识别技术。CoreImage使用起来非常的简单,下面通过一个Demo简单介绍下。
1) 新建项目,并加入必要的框架
- 打开Xcode,新建一个iPhone项目
- 加入使用Core Image要用到和Demo中用到的视频播放框架:QuartzCore.framework,CoreImage.framework,CoreVideo.framework,CoreMedia.framework,AssetsLibrary.framework,AVFoundation.framework
2) 接收摄像头传过来的图像
- 在viewDidLoad中创建一个脸部识别器,并设置摄像头来接收图像。
- (void)viewDidLoad { [super viewDidLoad]; NSDictionary *detectorOptions = [[NSDictionary alloc] initWithObjectsAndKeys:CIDetectorAccuracyLow, CIDetectorAccuracy, nil]; faceDetector = [[CIDetector detectorOfType:CIDetectorTypeFace context:nil options:detectorOptions] retain]; [detectorOptions release]; [self setupCamera]; }
3) 识别脸部图像
- 从摄像头传来的每一帧图像中,用在上一步创建好的脸部识别器从图片中取出具有脸部特征的区域。
- (void)drawFaceBoxesForFeatures:(NSArray *)features forVideoBox:(CGRect)clap orientation:(UIDeviceOrientation)orientation { imageOptions = [NSDictionary dictionaryWithObject:[NSNumber numberWithInt:exifOrientation] forKey:CIDetectorImageOrientation]; NSArray *features = [faceDetector featuresInImage:ciImage options:imageOptions]; }
- 从CIFaceFeature类中,可以看到封装好的脸部,眼睛和嘴的位置
4) 对脸部进行处理
- 下面我们就对脸部做个简单的处理,加一个红色的框。
- 由于Quartz和UIKit的坐标系不同,在drawFaceBoxesForFeatures方法中,通过坐标系的转化,以及实际图像大小和显示图像Layer大小的比例,来计算出脸部在CALayer中的实际位置
- 最后在计算出的位置和区域,加一个红色的框。
Demo下载地址
iOS人脸识别技术
苹果在iOS 5.0中加入了CoreImage框架,让图形处理变得非常的方便。这是一个很强悍的框架,不仅支持使用滤镜来对静态图片甚至是视频进行实时的处理, 而且提供人脸识别技术。CoreImage使用起来非常的简单,下面通过一个Demo简单介绍下。
1) 新建项目,并加入必要的框架
- 打开Xcode,新建一个iPhone项目
- 加入使用Core Image要用到和Demo中用到的视频播放框架:QuartzCore.framework,CoreImage.framework,CoreVideo.framework,CoreMedia.framework,AssetsLibrary.framework,AVFoundation.framework
2) 接收摄像头传过来的图像
- 在viewDidLoad中创建一个脸部识别器,并设置摄像头来接收图像。
- (void)viewDidLoad { [super viewDidLoad]; NSDictionary *detectorOptions = [[NSDictionary alloc] initWithObjectsAndKeys:CIDetectorAccuracyLow, CIDetectorAccuracy, nil]; faceDetector = [[CIDetector detectorOfType:CIDetectorTypeFace context:nil options:detectorOptions] retain]; [detectorOptions release]; [self setupCamera]; }
3) 识别脸部图像
- 从摄像头传来的每一帧图像中,用在上一步创建好的脸部识别器从图片中取出具有脸部特征的区域。
- (void)drawFaceBoxesForFeatures:(NSArray *)features forVideoBox:(CGRect)clap orientation:(UIDeviceOrientation)orientation { imageOptions = [NSDictionary dictionaryWithObject:[NSNumber numberWithInt:exifOrientation] forKey:CIDetectorImageOrientation]; NSArray *features = [faceDetector featuresInImage:ciImage options:imageOptions]; }
- 从CIFaceFeature类中,可以看到封装好的脸部,眼睛和嘴的位置
4) 对脸部进行处理
- 下面我们就对脸部做个简单的处理,加一个红色的框。
- 由于Quartz和UIKit的坐标系不同,在drawFaceBoxesForFeatures方法中,通过坐标系的转化,以及实际图像大小和显示图像Layer大小的比例,来计算出脸部在CALayer中的实际位置
- 最后在计算出的位置和区域,加一个红色的框。
Demo下载地址
- iOS人脸识别技术
- iOS人脸识别技术
- iOS开发技术之人脸识别
- ios OpenCv的配置和人脸识别技术
- 人脸识别技术
- 人脸识别技术
- 人脸识别技术
- ios人脸识别
- ios人脸识别
- iOS 人脸识别
- IOS人脸识别
- ios 人脸识别
- IOS人脸识别和二维码识别
- delphi人脸识别技术
- JavaScript 人脸识别技术
- JavaScript 人脸识别技术
- Android人脸识别技术
- Android人脸识别技术
- 如何用Instruments来分析应用程序的性能瓶颈
- ODBC相关(转)
- APP STORE 付费验证(IAP)服务端验证全过程
- 伙伴系统分配器 - __alloc_pages
- iOS Safari检测并打开App的思路分析
- iOS人脸识别技术
- C++反射机制的实现
- 求指定区间的质数-python版 【Sphere OJ】
- ASIHTTPRequest
- 利用TEA算法进行数据加密
- android Theme使用总结
- HEVC的码率控制的相关提案
- 经典动态规划——HDU1081 To The Max 最大子矩阵问题
- UIImageView的animationImages,不给力啊