码迷,mamicode.com
首页 > 移动开发 > 详细

iOS开发中使用CIDetector检测人脸

时间:2015-12-23 19:36:24      阅读:3641      评论:0      收藏:0      [点我收藏+]

标签:

在iOS5 系统中,苹果就已经有了检测人脸的api,能够检测人脸的位置,包括左右眼睛,以及嘴巴的位置,返回的信息是每个点位置。在 iOS7中,苹果又加入了检测是否微笑的功能。通过使用 CIDetector可以实现上述功能,一个小demo如下:

#import <CoreImage/CoreImage.h>   //首先包含响应的头文件

/**
 *  用来存储检测到的信息
 */
@property (nonatomic,strong) NSArray *features;

//正式代码如下:
UIImage *image = [[UIImage alloc] initWithContentsOfFile:self.imagePath];
    NSLog(@"imagePath = %@",self.imagePath);
    
    CIDetector *faceDetector = [CIDetector detectorOfType:CIDetectorTypeFace context:nil options:[NSDictionary dictionaryWithObject:CIDetectorAccuracyHigh forKey:CIDetectorAccuracy]];
    self.features = [faceDetector featuresInImage:[CIImage imageWithCGImage:image.CGImage]];
    for(CIFaceFeature *feature in self.features){
        if(feature.hasLeftEyePosition){
            CGPoint leftEyePos = feature.leftEyePosition;
            NSLog(@"leftX = %f  leftY = %f",leftEyePos.x,leftEyePos.y);
        }
        if(feature.hasRightEyePosition){
            CGPoint rightEyePos = feature.rightEyePosition;
            NSLog(@"rightX = %f  rightY = %f",rightEyePos.x,rightEyePos.y);
        }
        if(feature.hasMouthPosition){
            CGPoint mouthPos = feature.mouthPosition;
            NSLog(@"mouthX = %f mouthY = %f",mouthPos.x,mouthPos.y);
        }
    }

可以看一下 CIFaceFeature 里面的信息,如下:

@interface CIFaceFeature : CIFeature
{
	CGRect bounds;
	BOOL hasLeftEyePosition;
	CGPoint leftEyePosition;
	BOOL hasRightEyePosition;
	CGPoint rightEyePosition;
	BOOL hasMouthPosition;
	CGPoint mouthPosition;
	
    
	BOOL hasTrackingID;
	int trackingID;
	BOOL hasTrackingFrameCount;
	int trackingFrameCount;
	
	BOOL hasFaceAngle;
	float faceAngle;
	
	BOOL hasSmile;
	BOOL leftEyeClosed;
	BOOL rightEyeClosed;
}

可以看到,通过调用 hasSmile 即可得到图片是否微笑。

最后有一点需要注意:

得到的坐标点中,y值是从下开始的。比如说图片的高度为300,左眼的y值为100,说明左眼距离底部的高度为100,换成我们习惯的,距离顶部的距离就是200,这一点需要注意~  

iOS开发中使用CIDetector检测人脸

标签:

原文地址:http://www.cnblogs.com/acBool/p/5070733.html

(0)
(2)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!