-1
CoreImage的人脸检测出现问题。我的应用程序使用前置摄像头拍摄脸部照片。这里是我的设置:肖像中的iOS人脸检测
CIImage* image = [CIImage imageWithCGImage:self.photo.CGImage];
CIContext *context = [CIContext contextWithOptions:nil];
CIDetector* detector = [CIDetector detectorOfType:CIDetectorTypeFace
context:context options:@{CIDetectorAccuracyHigh:CIDetectorAccuracy}];
NSDictionary* imageOptions = [NSDictionary dictionaryWithObject:[NSNumber numberWithInt:6] forKey:CIDetectorImageOrientation];
NSArray* features = [detector featuresInImage:image options:imageOptions];
for (CIFaceFeature *f in features)
{
NSLog(@"%@",NSStringFromCGRect(f.bounds));
if (f.hasLeftEyePosition)
NSLog(@"Left eye %.0f %.0f", f.leftEyePosition.x, f.leftEyePosition.y);
if (f.hasRightEyePosition)
NSLog(@"Right eye %.0f %.0f", f.rightEyePosition.x, f.rightEyePosition.y);
if (f.hasMouthPosition)
NSLog(@"Mouth %.0f %.0f", f.mouthPosition.x, f.mouthPosition.y);
}
这里是我的控制台输出:
{{437.5, 170}, {625, 625}}
Left eye 628 371
Right eye 639 594
Mouth 906 482
有2个问题是:
- 这些坐标显然不是用我的应用程序的视图( 320 X 568)
- 他们似乎是错误的方向。眼睛应该有大约相同的y水平,但他们有相同的x水平
我该如何解决这些问题?
它们可能是像素,可能是肖像。 – Jessedc