利用CIDetector来人脸识别

利用CIDetector来人脸识别

by 伍雪颖

利用CIDetector来人脸识别

添加图片:

UIImage* image = [UIImage imageNamed:@"face.jpg"];

UIImageView *testImage = [[UIImageView alloc] initWithImage:
image];

[testImage setTransform:CGAffineTransformMakeScale(1,
-1)];

[[[UIApplication sharedApplication] delegate].window setTransform:

CGAffineTransformMakeScale(1,
-1)];

[testImage setFrame:CGRectMake(0, 0,
testImage.image.size.width,

testImage.image.size.height)];

[self.view addSubview:testImage];

识别图片:

CIImage* ciimage = [CIImage imageWithCGImage:image.CGImage];

NSDictionary* opts = [NSDictionary dictionaryWithObject:

CIDetectorAccuracyHigh forKey:CIDetectorAccuracy];

CIDetector* detector = [CIDetector detectorOfType:CIDetectorTypeFace

context:nil options:opts];

NSArray* features = [detector featuresInImage:ciimage];

标出脸部,眼睛和嘴:

for (CIFaceFeature *faceFeature in features){

}

// 标出脸部

CGFloat faceWidth = faceFeature.bounds.size.width;

UIView* faceView = [[UIView alloc] initWithFrame:faceFeature.bounds];

faceView.layer.borderWidth = 1;

faceView.layer.borderColor =
[[UIColor redColor] CGColor];

[self.view addSubview:faceView];

// 标出左眼

if(faceFeature.hasLeftEyePosition) {

UIView* leftEyeView = [[UIView alloc] initWithFrame:

CGRectMake(faceFeature.leftEyePosition.x-faceWidth*0.15,

faceFeature.leftEyePosition.y-faceWidth*0.15,
faceWidth*0.3, faceWidth*0.3)];

[leftEyeView setBackgroundColor:[[UIColor blueColor] colorWithAlphaComponent:0.3]];

[leftEyeView setCenter:faceFeature.leftEyePosition];

leftEyeView.layer.cornerRadius =
faceWidth*0.15;

[self.view  addSubview:leftEyeView];

}

// 标出右眼

if(faceFeature.hasRightEyePosition) {

UIView* leftEye = [[UIView alloc] initWithFrame:

CGRectMake(faceFeature.rightEyePosition.x-faceWidth*0.15,

faceFeature.rightEyePosition.y-faceWidth*0.15,
faceWidth*0.3, faceWidth*0.3)];

[leftEye setBackgroundColor:[[UIColor blueColor] colorWithAlphaComponent:0.3]];

[leftEye setCenter:faceFeature.rightEyePosition];

leftEye.layer.cornerRadius = faceWidth*0.15;

[self.view  addSubview:leftEye];

}

// 标出嘴部

if(faceFeature.hasMouthPosition) {

UIView* mouth = [[UIView alloc] initWithFrame:

CGRectMake(faceFeature.mouthPosition.x-faceWidth*0.2,

faceFeature.mouthPosition.y-faceWidth*0.2,
faceWidth*0.4, faceWidth*0.4)];

[mouth setBackgroundColor:[[UIColor greenColor] colorWithAlphaComponent:0.3]];

[mouth setCenter:faceFeature.mouthPosition];

mouth.layer.cornerRadius =
faceWidth*0.2;

[self.view  addSubview:mouth];

}

code

时间: 2024-11-07 12:44:08

利用CIDetector来人脸识别的相关文章

利用CoreImage进行人脸识别

地址: http://code4app.com/ios/%E5%88%A9%E7%94%A8CoreImage%E8%BF%9B%E8%A1%8C%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB/5195a56f6803fa4273000000 介绍: 利用CoreImage进行人脸识别,可以判断人脸整体位置,以及两只眼睛和嘴巴的大概位置.并根据人脸范围,对图片进行剪切. 小编注:感谢作者@Chili小灰灰 分享代码于Code4App. 测试环境: [Code4App]编

利用CoreImage进行人脸识别--iOS

来源:http://code4app.com/codesample/5195a56f6803fa4273000000 Licence:Zlib 作者:Chili小灰灰 http://code4app.com/member/4ffd0cec6803fa407a000000 介绍: 利用CoreImage进行人脸识别,可以判断人脸整体位置,以及两只眼睛和嘴巴的大概位置.并根据人脸范围,对图片进行剪切. 小编注:感谢作者@Chili小灰灰 分享代码于Code4App. 效果图: <ignore_js_

opencv之人脸识别

最近在做一个类似于智能广告投放的项目,简单思路是利用opencv获取摄像头图像,然后调用接口或利用其他一些离线模型进行人脸属性识别,进而投放广告.本篇先简单介绍利用opecv进行人脸识别. # -*- coding: utf-8 -*- import cv2 cascPath = """C:\Users\Administrator\Downloads\opencv\sources \data\haarcascades\haarcascade_frontalface_alt2.

python3+dlib人脸识别及情绪分析

一.介绍 我想做的是基于人脸识别的表情(情绪)分析.看到网上也是有很多的开源库提供使用,为开发提供了很大的方便.我选择目前用的比较多的dlib库进行人脸识别与特征标定.使用python也缩短了开发周期. 官网对于dlib的介绍是:Dlib包含广泛的机器学习算法.所有的设计都是高度模块化的,快速执行,并且通过一个干净而现代的C ++ API,使用起来非常简单.它用于各种应用,包括机器人技术,嵌入式设备,手机和大型高性能计算环境. 虽然应用都比较高大上,但是自己在PC上做个情绪分析的小软件还是挺有意

c# 利用AForge和百度AI开发实时人脸识别

baiduAIFaceIdentify项目是C#语言,集成百度AI的SDK利用AForge开发的实时人脸识别的小demo,里边包含了人脸检测识别,人脸注册,人脸登录等功能 人脸实时检测识别功能 思路是利用AForge打开摄像头,通过摄像头获取到的图像显示在winform窗体中AForge的控件中,利用AForge控件中的NewFrame事件获取要显示的每一帧的图像,获取图像传输到百度AI平台进行人脸检测,并且将检测结果反馈到界面显示的图像中.在这个过程中有两个问题,获取图像上传到百度AI平台进行

利用openCV实现自动抓拍,人脸识别,清晰度的验证等

1.本文主要涉及到opencv的视频帧抓拍和验证的相关问题,不包含如何集成opencv 2.主要讲解涉及到opencv中的关键类及一些常用的方法 3.着重讲解代理方法: - (void)processImage:(cv::Mat &)image 4.集成过程中的注意事项 5.附上抓拍的小demo的下载地址 6.扩展,验证抓拍的图片中是否包含人脸 =====================================分割线====================================

利用Emgu.CV实现人脸识别详解 (C#)--附源码

 本文由:姚磊岳([email protected])于2016-6-9撰,转载请保留作者信息. 最近需要实现一个基于生理特征的门禁准入系统,其中一个环节就是要用到人脸识别.虽说人脸识别的算法已经非常成熟,网络上也有很多专业的介绍,但从零做起工作量还是太大,所以想找一些现成的控件.上网一搜,还真发现了不少:如果是基于移动端的android开发,科大讯飞的人脸识别插件应该是个不错的选择:百度也提供人脸识别的插件(没深入看,不知道要不要收费).对比再三,发现如果是要做C/S程序,精度又不是要求非

opencv 利用Haar 人脸识别

#include <opencv2/opencv.hpp> #include <cstdio> #include <cstdlib> #include <iostream> #include <Windows.h> using namespace std; int main() { // 加载Haar特征检测分类器 // haarcascade_frontalface_alt.xml系OpenCV自带的分类器 下面是我机器上的文件路径 const

利用face_recognition,dlib与OpenCV调用摄像头进行人脸识别

用已经搭建好 face_recognition,dlib 环境来进行人脸识别 未搭建好环境请参考:https://www.cnblogs.com/guihua-pingting/p/12201077.html 使用OpenCV 调用摄像头 import face_recognition import cv2 video_capture = cv2.VideoCapture(0) # VideoCapture打开摄像头,0为笔记本内置摄像头,1为外USB摄像头,或写入视频路径 mayun_img