Ich nehme Bilder von der Kamera (unter Verwendung von UIImagePickerController
) und speichere sie im Dokumentverzeichnis.Das Bild wird nicht erkannt, wenn es von der Kamera genommen wird. Verwenden von UIImagePickerControllerSourceTypeCamera
Dann hole ich diese Bilder in einem anderen View-Controller, um das Gesichtsteil mit CIDetector API
und CIfacefeature API
zu erhalten.
Das Problem ist, es erkennt das Gesicht überhaupt nicht, obwohl ich in der Lage bin, die Bilder richtig zu holen. Und wenn ich das gleiche Bild im Hauptbündel ablege, erkennt es.
Ich weiß nicht, wo das Problem ist ??. Ich habe alles versucht. Kann sein, das Problem ist mit der UIImage
oder kann das Format, in dem Bild wird im Dokumentenverzeichnis oder mit der Kamera gespeichert werden.
Bitte helfen. Ich werde dir dankbar sein.
- (void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString* path = [documentsDirectory stringByAppendingPathComponent:
[NSString stringWithString: @"SampleImage.jpg"] ];
NSData* data = UIImageJPEGRepresentation(image, 0);
[data writeToFile:path atomically:YES];
[picker dismissModalViewControllerAnimated:YES];
FCVC *fcvc = [[FCVC alloc] initwithImage:image];
[self.navigationController pushViewController:fcvc animated:YES];
}
In der ViewDidLoad von FCVc I unten Funktion, indem nenne:
-(void)markFaces:(UIImage *)pic
{
CIImage* image = [CIImage imageWithCGImage:pic.CGImage];
CGImageRef masterFaceImage;
CIDetector* detector = [CIDetector detectorOfType: CIDetectorTypeFace
context:nil options:[NSDictionary dictionaryWithObject:CIDetectorAccuracyHigh forKey:CIDetectorAccuracy]];
// create an array containing all the detected faces from the detector
NSArray* features = [detector featuresInImage:image];
for(CIFaceFeature* faceFeature in features)
{
masterFaceImage = CGImageCreateWithImageInRect(facePicture.CGImage,CGRectMake(faceFeature.bounds.origin.x,faceFeature.bounds.origin.y, faceFeature.bounds.size.width,faceFeature.bounds.size.height));
}
self.masterExtractedFace = [UIImage imageWithCGImage:masterFaceImage];
}
Vielen Dank im Voraus.
Wie kann ich erkennen, das Bild in LandScapeMode – siva
Check kCGImagePropertyOrientation – sai