3

我使用一个UIImagePickerController来显示后置摄像头作为背景。一切都按预期工作,但是在图像中iPhone 5可能iPhone 4s有一个绿色框,例如

人脸检测

我认为是人脸检测功能,但我现在不知道如何禁用它。有什么建议吗?

这是我使用的代码片段UIImagePickerController
我在我的 .h 文件中声明广告 UIView

UIView *overlay;

在我的 .m 文件的 init 方法中

#define CAMERA_TRANSFORM  1.24299

UIImagePickerController *uip;

@try {
      uip = [[[UIImagePickerController alloc] init] autorelease];
      uip.sourceType = UIImagePickerControllerSourceTypeCamera;
      uip.showsCameraControls = NO;
      uip.toolbarHidden = YES;
      uip.navigationBarHidden = YES;
      uip.wantsFullScreenLayout = YES;
      uip.cameraViewTransform = CGAffineTransformScale(uip.cameraViewTransform, CAMERA_TRANSFORM, CAMERA_TRANSFORM);
}
@catch (NSException * e) {
    [uip release];
    uip = nil;
}
@finally {
    if(uip) {
        [overlay addSubview:[uip view]];
        [overlay release];
    }
}
4

1 回答 1

0

看看这个帖子

他的问题是相反的,我敢肯定,如果您调整特征检测器的设置,您将能够将其关闭,如果它无法打开,请尝试以镜像模式或倒置模式运行它,而且它无法检测到人脸并且似乎“关闭”

但我很确定它可以被禁用。

这是我发现的另一个参考另外请务必查看类参考

更新:

警告:我根本不建议使用它,它只是为了展示我设法隐藏这些盒子的一种方式,它迟早会坏掉。

在修改了一下之后,我设法找到了包含这些小方块的子视图并将其隐藏属性设置为 YES

简单地说,在你的初始化代码的末尾,你 makeKeyAndVisible,把这个:

[[[[[[[[[[[[[[uip childViewControllers] objectAtIndex:0] view]
subviews] objectAtIndex:0]
subviews] objectAtIndex:0]
subviews] objectAtIndex:0]
subviews] objectAtIndex:0]
subviews] objectAtIndex:0]
setHidden:YES];

抱歉,格式不好,我很匆忙,但你明白了,而且在搞砸的时候,我发现你可以控制相机光圈视图和其他一些功能。但这应该可以解决问题 此外,这不会禁用面部检测,这意味着当用户完成选择时,您可以找出检测到多少面部特征!

我也认为这只适用于 iPhone 4s 及更高版本!,你需要进行大量测试,这真的是非常糟糕的黑客,我不建议在生产应用程序上使用!

于 2013-01-29T13:10:19.430 回答