iOS人脸坐标转换

给AVCaptureSession添加outputMetadata的方式得到人脸

self.metaDataOutput = [[AVCaptureMetadataOutput alloc] init];
    if ([self.session canAddOutput:self.metaDataOutput]) {
        [self.session addOutput:self.metaDataOutput];
        NSArray *metadataObjectTypes = @[AVMetadataObjectTypeFace];         // 3
        self.metaDataOutput.metadataObjectTypes = metadataObjectTypes;
        
        dispatch_queue_t mainQueue = dispatch_get_main_queue();
        [self.metaDataOutput setMetadataObjectsDelegate:self                // 4
                                                  queue:mainQueue];
    }else{
        return;
    }

https://stackoverflow.com/questions/41354698/face-detection-with-camera

//代理方法中获取到人脸数据,但是你打印会发现,该数值是处于0-1之间的数值,而且可能有点莫名其妙,它是wrt,以下代码,苹果API中有preViewLayer该类有专门的方法来进行坐标转化,但是由于很多场景下需要自己转换,例如使用opengl来处理这些坐标数据,以下代码转化成熟悉的屏幕坐标。
- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputMetadataObjects:(NSArray *)metadataObjects fromConnection:(AVCaptureConnection *)connection{

for (AVMetadataFaceObject *faceframe in faces) {                   // 2
//            CGRect bounds = face.bounds;
            
            CGRect face = faceframe.bounds;
            // wrt 图形
            CGRect facePreviewBounds = CGRectMake(face.origin.y * self.bounds.size.width,
                                                  face.origin.x * self.bounds.size.height,
                                                  face.size.width * self.bounds.size.height,
                                                  face.size.height * self.bounds.size.width);
            
            NSLog(@"%@",NSStringFromCGRect(facePreviewBounds));
            
//以下为使用opengl设置Viewport参数大小,不需要可以注释
            CGFloat viewY = self.bounds.size.height - (face.origin.x * self.bounds.size.height)-face.size.width * self.bounds.size.height;

            glViewport(face.origin.y * self.bounds.size.width, viewY, face.size.width * self.bounds.size.height, face.size.height * self.bounds.size.width);
}
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    passiontim阅读 15,642评论 2 45
  • 女人感觉自己变丑了,赶紧换个发型,让自己漂亮一点!哪款刘海能配得上你的脸型? 国字型脸的姑娘适合比较蓬松的波浪卷发...
    宝宝发烧咳嗽阅读 323评论 0 0
  • 浪子的雨小辰阅读 334评论 0 0
  • 我想问你们一个问题,这世界真的绝情吗?就没有一点怜悯之心吗?老天爷为什么要捉弄我,我知道,人在做,天在看,以前犯的...
    畅快人生阅读 316评论 3 0
  • 喜欢蔷薇花。小区里种了许多,我家楼下的一楼院子里,也种了几棵,每到季节就开得浓浓艳艳,真是后悔当时选房没选一...
    沧海一粟15阅读 260评论 3 1