*****編集******
何かが欠けているかどうかを確認するためにいくつかのテストを行っていたところ、imgHolder.image が null を返していることがわかりましたが、画像が表示されています。[void viewDidLoad] でこれを呼び出しています。
*****編集******
写真を撮る簡単なアプリケーションを作成しています。次に、その画像を別のView Controllerに渡し、画像内の顔を検出しようとします。多くのチュートリアルを使用して、問題をグーグルで調べてみましたが、解決策が見つかりませんでした。問題は、コードを何度変更したり、別の画像を試したりしても、機能が検出されないことです。私が試したチュートリアルのいくつかを、コードとともに以下に示します。
CIImage* image = [CIImage imageWithCGImage:imgHolder.image.CGImage];
CIDetector* detector = [CIDetector detectorOfType:CIDetectorTypeFace context:nil options:[NSDictionary dictionaryWithObject:CIDetectorAccuracyHigh forKey:CIDetectorAccuracy]];
NSDictionary *imageOptions = [NSDictionary dictionaryWithObject:[NSNumber numberWithInt:6]
forKey:CIDetectorImageOrientation];
NSArray* features = [detector featuresInImage:image options:imageOptions];
for(CIFaceFeature* feature in features)
{
UIView* face = [[UIView alloc] initWithFrame:feature.bounds];
[face setBackgroundColor:[[UIColor yellowColor] colorWithAlphaComponent:0.4]];
[self.view.window addSubview:face];
if(feature.hasLeftEyePosition)
{
UIView* eye = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 15, 15)];
[eye setBackgroundColor:[[UIColor blueColor] colorWithAlphaComponent:0.2]];
[eye setCenter:feature.leftEyePosition];
[self.view.window addSubview:eye];
}
if(feature.hasRightEyePosition)
{
UIView* eye = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 15, 15)];
[eye setBackgroundColor:[[UIColor redColor] colorWithAlphaComponent:0.2]];
[eye setCenter:feature.rightEyePosition];
[self.view.window addSubview:eye];
}
if(feature.hasMouthPosition)
{
UIView* mouth = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 15, 15)];
[mouth setBackgroundColor:[[UIColor greenColor] colorWithAlphaComponent:0.2]];
[mouth setCenter:feature.mouthPosition];
[self.view.window addSubview:mouth];
}
}
NSLog(@"%d", features.count);
http://www.tokbox.com/blog/fun-with-core-graphics-in-ios/ http://b2cloud.com.au/how-to-guides/face-detection-in-ios-5 CIDetectorおよび UIImagePickerController