苹果在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中的实际位置最后在计算出的位置和区域,加一个红色的框。
iOS人脸识别技术
最新推荐文章于 2024-01-14 18:33:20 发布