CIDetector und UIImagePickerController

Ich versuche zu implementieren, die built-in-iOS-5 face-detection-API. Ich bin mit einer Instanz von UIImagePickerController um dem Benutzer zu ermöglichen, ein Foto zu machen und dann bin ich versucht zu verwenden CIDetector zum erkennen von Gesichtszügen. Leider featuresInImage gibt immer ein array der Größe 0.

Hier der code:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
UIImage* picture = [info objectForKey:UIImagePickerControllerOriginalImage];

NSNumber *orientation = [NSNumber numberWithInt:
                         [picture imageOrientation]];
NSDictionary *imageOptions =
[NSDictionary dictionaryWithObject:orientation
                            forKey:CIDetectorImageOrientation];

CIImage *ciimage = [CIImage imageWithCGImage:[picture CGImage]
                                     options:imageOptions];


NSDictionary *detectorOptions =
[NSDictionary dictionaryWithObject:CIDetectorAccuracyLow
                            forKey:CIDetectorAccuracy];
CIDetector *detector = [CIDetector detectorOfType:CIDetectorTypeFace
                                          context:nil
                                          options:detectorOptions];

NSArray *features = [detector featuresInImage:ciimage];
NSLog(@"Feature size: %d", features.count);
}

Diese immer 0 zurück features. Allerdings, wenn ich ein UIImage aus einer Datei eingebaut, um die Anwendung, die Gesichtserkennung funktioniert Super.

Ich bin mit code aus diesem Pragmatic Bookshelf Artikel.

Für was es Wert ist, ich finde den Fehler beim konvertieren der UIImage von der Kamera auf einen CIImage, aber es könnte alles sein.

InformationsquelleAutor tonyc | 2012-05-24
Schreibe einen Kommentar