Как правильно создать экземпляр объекта класса CIDetector в API распознавания лиц iOS 5

#api #ios5

#API #ios5

Вопрос:

читая документацию Apple, я попытался использовать его новый API распознавания лиц, но безуспешно, хотя ошибок компиляции или времени выполнения нет, метод экземпляра featuresInImage всегда возвращает массив объектов CIFeature с нулевыми значениями.

Первый таймер в stackoverflow, все еще старался изо всех сил быть кратким и конкретным.

Комментарии:

1. получил правильный метод из какого-то другого источника сразу после публикации здесь :-),, код работает отлично,, думаю, я должен поделиться им или, скорее, ответить на свой собственный вопрос 🙂

Ответ №1:

Минимальный код (рабочий) для тестирования нового API распознавания лиц iOS 5

 - (void)viewDidLoad{

[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.

CIImage *ciImage = [[CIImage alloc] initWithImage:[UIImage imageNamed:@"IMG_0056.JPG"]];

NSLog(@"showing image now");
//[imageView setImage:image];


if (ciImage == nil)
    NSLog(@"CIImage is nil");


//imageView.image = [UIImage imageWithCGImage:[context createCGImage:ciImage fromRect:ciImage.extent]];
[imageView setImage:[UIImage imageNamed:@"IMG_0056.JPG"]];

NSDictionary *options = [[NSDictionary alloc] initWithObjectsAndKeys:
                         @"CIDetectorAccuracy", @"CIDetectorAccuracyHigh",nil];
CIDetector *ciDetector = [CIDetector detectorOfType:CIDetectorTypeFace 
                                            context:nil
                                            options:options];
NSArray *features = [ciDetector featuresInImage:ciImage];
NSLog(@"no of face detected: %d", [features count]);
NSString *myString = [[NSString alloc] initWithFormat:@"%d face(s) detectedn",[features count]];

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Face detection" message:myString delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[alert show];
  

}

Ответ №2:

 UIImage* uiimage = nil;
CIImage* image = [CIImage imageWithCGImage:uiimage.CGImage];
CIDetector* detector = [CIDetector detectorOfType:CIDetectorTypeFace context:nil options:[NSDictionary dictionaryWithObject:CIDetectorAccuracyHigh forKey:CIDetectorAccuracy]];
  

Смотрите Здесь полное руководство
http://b2cloud.com.au/how-to-guides/face-detection-in-ios-5