7

ユーザーの写真をキャプチャして 3D 環境に表示する Unity/iOS アプリがあります。CIFaceFeatureここで、ネイティブ (Objective-C) レイヤーにアクセスする必要がある目の位置を見つけるために活用したいと思います。私のフローは次のようになります。

Unity -> WebCamTexture(画像をエンコードしてネイティブに送信 --これは SLOW です)

Obj-C -> CIFaceFeature(目の座標を見つける)

Unity -> 目の位置を表示

私は動作するプロトタイプを持っていますが、Unity (WebCamTexture) で画像をキャプチャし、それを Obj-C に送信して FaceFeature 検出を行うため、処理が遅くなります。私の Obj-C クラスに「アクティブなカメラを検査する」ように単純に要求する方法があるはずです。これは、画像をエンコードして渡すよりもはるかに高速でなければなりません。

だから私の質問は、一言で言えば:

  • Obj-C で「現在キャプチャしているカメラはありますか?」と問い合わせることはできますか?
  • その場合、現在実行中のセッションからイメージを「スナップショット」するにはどうすればよいですか?

ありがとう!

4

2 に答える 2

2

Unity で CameraCapture.mm を変更することで、カメラのプレビュー キャプチャ ストリームにアクセスできます。

追加のカメラ I/O 機能をキャプチャ セッション /「キャプチャ パイプライン」に追加する方法の例として、Camera Capture と呼ばれる既存のプラグインを確認することをお勧めします。

あなたを正しい方向に向かわせるために。CameraCapture.mm の関数 initCapture を見てください。

- (bool)initCapture:(AVCaptureDevice*)device width:(int)w height:(int)h fps:(float)fps 

ここで、キャプチャ セッションに追加できます。

次に、Apple が提供する顔認識に関するコード サンプルをご覧ください。

https://developer.apple.com/library/ios/samplecode/SquareCam/Introduction/Intro.html

乾杯

于 2016-03-22T11:03:42.457 に答える
1

Unity 3D では、ネイティブ コードを実行できます。スクリプト リファレンスで、ネイティブ プラグインを探します。このようにして、ネイティブの iOS ビューを表示し (必要に応じてカメラ ビューを非表示にすることもできます)、Objective C コードを実行できます。次に、3D ビューで必要な場合は、目の検出の結果を Unity に返します。

于 2013-05-19T05:25:30.783 に答える