遵循iTunes U关于如何进行人脸检测的教程(该教程仅在视频中,并非在线编写,因此我无法发布直接链接)。基本上,我已经让面部检测工作了,但前提是手机处于 LandscapeLeft 模式。
关于它为什么会这样工作的任何想法?
遵循iTunes U关于如何进行人脸检测的教程(该教程仅在视频中,并非在线编写,因此我无法发布直接链接)。基本上,我已经让面部检测工作了,但前提是手机处于 LandscapeLeft 模式。
关于它为什么会这样工作的任何想法?
没有看到你的代码很难说,但我猜你没有设置CIDetectorImageOrientation
?当图像方向与检测器方向设置不匹配时,我的检测失败。
下面的一些代码 - 不是剪切'n粘贴,而是更多的粗略示例。
- (void)detectFacialFeatures:(UIImage *)image withHighAccuracy:(BOOL) highAccuracy
{
CIImage* ciImage = [CIImage imageWithCGImage:sourceImage.CGImage];
if (ciImage == nil){
printf("ugh \n");
// bail
}
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
NSString *accuracy = highAccuracy ? CIDetectorAccuracyHigh : CIDetectorAccuracyLow;
NSDictionary* options = [NSDictionary dictionaryWithObjectsAndKeys:
CIDetectorAccuracyHigh, CIDetectorAccuracy,
orientation, CIDetectorImageOrientation,
nil];
CIDetector* detector = [CIDetector detectorOfType:CIDetectorTypeFace
context:nil options:options];
NSArray *features = [detector featuresInImage:ciImage];
NSLog(@"features %@", features);
});
}