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に設定することができました

簡単に言えば、init コードの最後で、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 に答える