IOS 6 人脸检测不起作用



>我使用以下代码来检测IOS 5的人脸

CIImage  *cIImage = [CIImage imageWithCGImage:image.CGImage];
            CIDetector* detector = [CIDetector detectorOfType:CIDetectorTypeFace context:nil options:[NSDictionary dictionaryWithObject:CIDetectorAccuracyHigh forKey:CIDetectorAccuracy]];
            NSArray *features = nil;
            features = [detector featuresInImage:cIImage];
            if ([features count] == 0) 
            {
                NSDictionary* imageOptions = [NSDictionary dictionaryWithObject:[NSNumber numberWithInt:6] forKey:CIDetectorImageOrientation];
                features = [detector featuresInImage:cIImage options:imageOptions];
            }

使用此代码,我能够在IOS 5中检测人脸,但是最近我们已将系统升级到Xcode 4.4和IOS 6,现在,面部检测无法正常工作,

我需要做哪些更改才能在 IOS 6 中检测人脸。

非常感谢任何形式的帮助

我注意到iOS6中的人脸检测不如iOS5中的。尝试使用精选图像。您可能会发现它在iOS6中可以正常工作,其中包含许多图像,但并非所有图像。

我一直在测试同一组图像:1. 运行 iOS6 的模拟器。2. 苹果手机 5 (iOS6)3. iPhone 3GS (iOS5)。

3GS比其他两个选项检测更多的人脸。

这是代码,它适用于两者,但在iOS6上效果不佳:

- (void)analyseFaces:(UIImage *)facePicture {
// Create CI image of the face picture
CIImage* image = [CIImage imageWithCGImage:facePicture.CGImage];
// Create face detector with high accuracy
CIDetector* detector = [CIDetector detectorOfType:CIDetectorTypeFace
                                          context:nil options:[NSDictionary dictionaryWithObject:CIDetectorAccuracyHigh forKey:CIDetectorAccuracy]];
// Create array of detected faces
NSArray* features = [detector featuresInImage:image];
// Read through the faces and add each face image to facesFound mutable
for(CIFaceFeature* faceFeature in features)
{
    CGSize parentSize = facePicture.size;
    CGRect origRect = faceFeature.bounds;
    CGRect flipRect = origRect;
    flipRect.origin.y = parentSize.height - (origRect.origin.y + origRect.size.height);
    CGImageRef imageRef = CGImageCreateWithImageInRect([facePicture CGImage], flipRect);
    UIImage *faceImage = [UIImage imageWithCGImage:imageRef];
    CGImageRelease(imageRef);
    if (faceImage)
        [facesFound addObject:faceImage];
} 

}

我希望这对您有所帮助...

添加 CoreImage.framework

-(void)faceDetector
{
// Load the picture for face detection
UIImageView* image = [[UIImageView alloc] initWithImage:
[UIImage imageNamed:@"facedetectionpic.jpg"]];
// Draw the face detection image
[self.window addSubview:image];
// Execute the method used to markFaces in background
[self markFaces:image];
}

-(void)faceDetector
{
// Load the picture for face detection
    UIImageView* image = [[UIImageView alloc] initWithImage:[UIImage 
imageNamed:@"facedetectionpic.jpg"]];

    // Draw the face detection image
    [self.window addSubview:image];
    // Execute the method used to markFaces in background
    [self performSelectorInBackground:@selector(markFaces:) withObject:image];
    // flip image on y-axis to match coordinate system used by core image
    [image setTransform:CGAffineTransformMakeScale(1, -1)];
    // flip the entire window to make everything right side up
    [self.window setTransform:CGAffineTransformMakeScale(1, -1)];

}

并检查这两个链接

http://maniacdev.com/2011/11/tutorial-easy-face-detection-with-core-image-in-ios-5/

http://i.ndigo.com.br/2012/01/ios-facial-recognition/

相关内容

  • 没有找到相关文章

最新更新