如果我从横向模式单击快照,人脸检测算法将不起作用

Posted

技术标签:

【中文标题】如果我从横向模式单击快照,人脸检测算法将不起作用【英文标题】:Face Detection algorithm is not working if I click a snap from landscape mode 【发布时间】:2012-07-23 07:04:40 【问题描述】:

我使用以下代码从图像中检测人脸:

-(void)markFaces:(UIImageView *)imagePick 

CIImage* image = [CIImage imageWithCGImage:imagePick.image.CGImage];
CIDetector* detector = [CIDetector detectorOfType:CIDetectorTypeFace 
                                          context:nil options:[NSDictionary dictionaryWithObject:CIDetectorAccuracyHigh forKey:CIDetectorAccuracy]];
NSDictionary* imageOptions = [NSDictionary dictionaryWithObject:[NSNumber numberWithInt:6] forKey:CIDetectorImageOrientation];
NSLog(@"imageOptions %@",imageOptions);
NSArray* features = [detector featuresInImage:image options:imageOptions];

if([features count] > 0)

    NSLog(@"Face Found");

else

    NSLog(@"Face not Found");        


如果我从横向模式单击快照,此算法将不起作用。为什么?任何帮助将不胜感激。

提前致谢

【问题讨论】:

它是否适用于以纵向倒置模式拍摄的图像(顶部的主页按钮)。您可以尝试通过应用变换来旋转捕获图像.. 看看***.com/questions/10496724/…它可能对你有帮助:) 【参考方案1】:

我认为问题出在这一行:

NSDictionary* imageOptions = [NSDictionary dictionaryWithObject:[NSNumber numberWithInt:6] forKey:CIDetectorImageOrientation];

您实际上是在告诉它仅在您传递的数字是 6 时才寻找纵向方向。

头文件中的文档说:

// 可与 -[CIDetector featuresInImage:options:] 一起使用的选项

/* 这个键的值是一个从 1..8 开始的整数 NSNumber,例如 在 kCGImagePropertyOrientation 中找到。如果存在,将进行检测 基于该方向,但返回特征中的坐标将 仍然是基于那些图像。 */

选项是

很烦人 featuresInImage:options: 没有记录(我现在必须提交一个错误,因为我已经看到它了)

【讨论】:

好的,谢谢你,我也发现了。

以上是关于如果我从横向模式单击快照,人脸检测算法将不起作用的主要内容,如果未能解决你的问题,请参考以下文章

实时人脸检测不起作用

如果 iOS 设备上未安装应用程序,通用链接将不起作用

如果应用程序已通过深层链接打开,Android 深层链接将不起作用

Dlib 正面人脸检测在 IOS 中不起作用。?

React 本机人脸检测对我不起作用(iOS)

单击通知不会在后台打开活动