iOS人脸识别技术

苹果在iOS 5.0中加入了CoreImage框架,让图形处理变得非常的方便。这是一个很强悍的框架,不仅支持使用滤镜来对静态图片甚至是视频进行实时的处理, 而且提供人脸识别技术。CoreImage使用起来非常的简单,下面通过一个Demo简单介绍下。1) 新建项目,并加入必要的框架打开Xcode,新建一个iPhone项目加入使用Core Image要用到和Demo中用到的视频播放框架:QuartzCore.framework,CoreImage.framework,CoreVideo.framework,CoreMedia.framework,AssetsLibrary.framework,AVFoundation.framework2) 接收摄像头传过来的图像在viewDidLoad中创建一个脸部识别器,并设置摄像头来接收图像。Source code - (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) 识别脸部图像从摄像头传来的每一帧图像中,用在上一步创建好的脸部识别器从图片中取出具有脸部特征的区域。Source code - (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中的实际位置最后在计算出的位置和区域,加一个红色的框。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值