• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

iphone - 如何使用 CIFeatures 将图像放在眼睛和嘴巴上

[复制链接]
菜鸟教程小白 发表于 2022-12-12 10:01:13 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我找到了 link将图像放在面部点上。就像我需要检测眼睛并在那里放置图像一样?

为了简单起见,我需要在人眼上放置一个图像。我该怎么做?任何提示将不胜感激!



Best Answer-推荐答案


for ( CIFaceFeature *ff in features ) {

    // find the correct position for the square layer within the previewLayer

    // the feature box originates in the bottom left of the video frame.

    // (Bottom right if mirroring is turned on)

    CGRect faceRect = [ff bounds];



    // flip preview width and height

    CGFloat temp = faceRect.size.width;

    faceRect.size.width = faceRect.size.height;

    faceRect.size.height = temp;

    temp = faceRect.origin.x;

    faceRect.origin.x = faceRect.origin.y;

    faceRect.origin.y = temp;

    // scale coordinates so they fit in the preview box, which may be scaled

    CGFloat widthScaleBy = previewBox.size.width / clap.size.height;

    CGFloat heightScaleBy = previewBox.size.height / clap.size.width;

    faceRect.size.width *= widthScaleBy;

    faceRect.size.height *= heightScaleBy;

    faceRect.origin.x *= widthScaleBy;

    faceRect.origin.y *= heightScaleBy;



    if ( isMirrored )

        faceRect = CGRectOffset(faceRect, previewBox.origin.x + previewBox.size.width - faceRect.size.width - (faceRect.origin.x * 2), previewBox.origin.y);

    else

        faceRect = CGRectOffset(faceRect, previewBox.origin.x, previewBox.origin.y);

你可以得到正确的脸,但你需要细化图像的眼睛

这将帮助你获得每个位置

-(void)markFacesCIImage *)image
{
    // draw a CI image with the previously loaded face detection picture
    @autoreleasepool {
        CIDetector* detector = [CIDetector detectorOfType:CIDetectorTypeFace
                                                  context:nil options:[NSDictionary dictionaryWithObject:CIDetectorAccuracy forKey:CIDetectorAccuracyHigh]];

        // create an array containing all the detected faces from the detector
        NSArray* features = [detector featuresInImage:image];

        NSLog(@"The Address Of CIImage In: %p %s",image,__FUNCTION__);
        NSLog(@"Array Count %d",[features count]);


        NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];


        if([features count]==0)
        {
           //No image is present
        }
        else 
        {
            for(CIFaceFeature* faceFeature in features)
            {

                if(faceFeature.hasMouthPosition)
                {
                   // Your code based on the mouth position
                }


              if (faceFeature.hasLeftEyePosition) {
                 // Write your code Note: points are mirrored point so u need to take care of that 

                }
                if (faceFeature.hasRightEyePosition) {
                 // Write your code Note: points are mirrored point so u need to take care of that 

                }

                }
}
}

关于iphone - 如何使用 CIFeatures 将图像放在眼睛和嘴巴上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15757372/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap