iOS开发中使用CIDetector检测人脸
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了iOS开发中使用CIDetector检测人脸,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1710字,纯文字阅读大概需要3分钟。
内容图文
![iOS开发中使用CIDetector检测人脸](/upload/InfoBanner/zyjiaocheng/1214/b824d9a2705d46ad9846350044fffe85.jpg)
在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,这一点需要注意~
原文:http://www.cnblogs.com/acBool/p/5070733.html
内容总结
以上是互联网集市为您收集整理的iOS开发中使用CIDetector检测人脸全部内容,希望文章能够帮你解决iOS开发中使用CIDetector检测人脸所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。