Guten Tag,
ich bin am verzweifeln:
Ich möchte eine Gesichtserkennung von einen über die Kamera auf genommenen Bild machen. Nur leider wir nie etwas erkannt. Wenn ich dann die Gesichtserkennung aber mit einen abgespeicherten Bild ausprobiere funktioniert diese. Was kann ich tun? Hier mein Quelltext:
View Controller.h:
Alles anzeigen
ViewController.m:
Alles anzeigen
Wenn ich jetzt aber wie gesagt das:
durch das ersetze geht es:
Vielen Dank im Voraus
Nils
ich bin am verzweifeln:
Ich möchte eine Gesichtserkennung von einen über die Kamera auf genommenen Bild machen. Nur leider wir nie etwas erkannt. Wenn ich dann die Gesichtserkennung aber mit einen abgespeicherten Bild ausprobiere funktioniert diese. Was kann ich tun? Hier mein Quelltext:
View Controller.h:
Quellcode
- #import <UIKit/UIKit.h>
- #import <MobileCoreServices/MobileCoreServices.h>
- @interface ViewController : UIViewController
- <UIImagePickerControllerDelegate, UINavigationControllerDelegate>
- {
- UIImageView *cameraView;
- BOOL newMedia;
- }
- @property (strong, nonatomic) IBOutlet UIImageView *cameraView;
- @property (strong, nonatomic) IBOutlet UILabel *lbMouth;
- @property (strong, nonatomic) CIImage *cImage;
- - (IBAction)cameraClicked:(id)sender;
- - (IBAction)analysePicture:(id)sender;
- - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info;
- -(void)imagePickerControllerDidCancel:(UIImagePickerController *)picker;
- @end
ViewController.m:
Quellcode
- #import <QuartzCore/QuartzCore.h>
- #import <CoreImage/CoreImage.h>
- @interface ViewController ()
- @end
- @implementation ViewController
- @synthesize cameraView;
- @synthesize lbMouth;
- @synthesize cImage;
- - (void)viewDidLoad
- {
- [super viewDidLoad];
- // Do any additional setup after loading the view, typically from a nib.
- }
- - (void)didReceiveMemoryWarning
- {
- [super didReceiveMemoryWarning];
- // Dispose of any resources that can be recreated.
- }
- - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
- {
- return YES;
- }
- - (IBAction)cameraClicked:(id)sender
- {
- if ([UIImagePickerController isSourceTypeAvailable:
- UIImagePickerControllerSourceTypeCamera])
- {
- UIImagePickerController *imagePicker =[[UIImagePickerController alloc] init];
- imagePicker.delegate = self;
- imagePicker.sourceType =UIImagePickerControllerSourceTypeCamera;
- imagePicker.mediaTypes = [NSArray arrayWithObjects:(NSString *) kUTTypeImage,nil];
- imagePicker.allowsEditing = NO;
- [self presentViewController:imagePicker animated:YES completion:nil];
- }
- }
- - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
- {
- [self dismissViewControllerAnimated:YES completion:nil];
- UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
- cImage = [[CIImage alloc] initWithImage:image];
- cameraView.image = image;
- }
- -(void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
- {
- [self dismissViewControllerAnimated:YES completion:nil];
- }
- - (IBAction)analysePicture:(id)sender
- {
- if (cameraView.image == NULL) {
- NSLog(@"Kein Bild vorhanden");
- } else {
- CIImage *image = [CIImage imageWithCGImage:cameraView.image.CGImage];
- CIDetector *detector = [CIDetector detectorOfType:CIDetectorTypeFace context:nil options:[NSDictionary dictionaryWithObject:CIDetectorAccuracyHigh forKey:CIDetectorAccuracy]];
- NSArray *features = [detector featuresInImage:image];
- NSLog(@"features.count: %i", features.count);
- for(CIFaceFeature *feature in features)
- {
- if(feature.hasMouthPosition)
- {
- lbMouth.text = [NSString stringWithFormat:@"%f", feature.mouthPosition.x];
- NSLog(@"es geht");
- } else {
- lbMouth.text = @"Es geht nicht";
- }
- }
- }
- }
- @end
Wenn ich jetzt aber wie gesagt das:
durch das ersetze geht es:
Vielen Dank im Voraus
Nils