Не видя свой код, трудно сказать, но я предполагаю, что вы не устанавливаете CIDetectorImageOrientation
? У меня было обнаружение сбоя, когда произошла несогласованность между ориентацией изображения и ориентацией детектора.
Некоторый код ниже - не вырезать 'пасту, но более грубый пример.
- (void)detectFacialFeatures:(UIImage *)image withHighAccuracy:(BOOL) highAccuracy
{
CIImage* ciImage = [CIImage imageWithCGImage:sourceImage.CGImage];
if (ciImage == nil){
printf("ugh \n");
// bail
}
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
NSString *accuracy = highAccuracy ? CIDetectorAccuracyHigh : CIDetectorAccuracyLow;
NSDictionary* options = [NSDictionary dictionaryWithObjectsAndKeys:
CIDetectorAccuracyHigh, CIDetectorAccuracy,
orientation, CIDetectorImageOrientation,
nil];
CIDetector* detector = [CIDetector detectorOfType:CIDetectorTypeFace
context:nil options:options];
NSArray *features = [detector featuresInImage:ciImage];
NSLog(@"features %@", features);
});
}
Спасибо, человек. Это сработало – Jason
Yay! Не забудьте принять ответ. Чем больше очков я получаю, тем больше ... что мы получаем за репортеров? Я забыл. :-) –