利用iOS原生系统进行人脸识别+自定义滤镜(GPUImage)

本文介绍了一种客户端上实现的人脸识别方法,并在识别成功的基础上应用GPUImage进行图片美化滤镜处理。通过CIDetector检测人脸特征,再利用GPUImage实现自定义滤镜效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

人脸识别+滤镜效果(基于GPUImage实现的自定义滤镜)

最近碰到一个好玩的需求。说要客户端这边判定一下是否有人脸。在有的基础上。对相片做进一步的美化滤镜处理。

  • 首先是人脸的识别判定;
  //将图片对象拿到,转化对应CIImage
    CIImage* ciimage = [CIImage imageWithCGImage:_imageView.image.CGImage];
//配置人脸识别时候的属性值
    NSDictionary* opts = [NSDictionary dictionaryWithObject:
                          CIDetectorAccuracyHigh forKey:CIDetectorAccuracy];
//配置识别者
    CIDetector* detector = [CIDetector detectorOfType:CIDetectorTypeFace
                                              context:nil options:opts];
//拿到识别到的特性
    NSArray* features = [detector featuresInImage:ciimage];
    if (features.count == 0)
    {
        _HUD = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
        _HUD.mode = MBProgressHUDModeAnnularDeterminate;
        _HUD.label.text = @"未识别到人脸!!请返回重试。";
        dispatch_async(dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_LOW, 0), ^{
            sleep(2.0);
            dispatch_async(dispatch_get_main_queue(), ^{
                [MBProgressHUD hideHUDForView:self.view animated:YES];
                [self.navigationController popViewControllerAnimated:YES];
            });
        });
    }
    else
    {
        FiltersViewController *beautyVC = [[FiltersViewController alloc] initWithImage:self.image];
        [self.navigationController pushViewController:beautyVC animated:YES];
    }
  • 滤镜的自定义和使用。

对于GPUImage的封装使用,我这里就不一一赘述。自己看demo一一对应吧。

demo地址

转载于:https://www.cnblogs.com/fuunnyy/p/6753910.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值