1

AVCaptureSession 内の AVCaptureVideoDataOutput から取得した画像データをリアルタイムで処理するアプリケーションを作成しています。

現在、セッションを開始し、入力と出力を追加してから、画像データを取得し、UIImage に変換して、画面にライブで表示することができます。

私が抱えている主な問題は、画像の向きがぎこちないことです。回転してミラーリングされており、歪んで見えます。私はそれについていくつかの調査を行い、関連する 質問をいくつか見つけました。提案されたコードを試しましたが、回転の問題は解決しません。

リンクされた質問は、UIImages が別の場所 (おそらく、向きなどのより多くの情報を画像に自動的に追加する高レベルの API) からのものであると想定していると思います。または、ビデオ出力フィードから取得しているためでしょうか?

私は実際にそれを修正するコードを探しているわけではありませんが (注釈付きの例は本当に役に立ちます)、この方法で取得した画像のライフサイクルがどのように機能するかについての適切な説明です。電話の向きに適した方法で画面に表示できるようにするための推奨される方法は何ですか? 返ってきた CGImageRef の向きは?等

AVCaptureSession をセットアップするために使用しているコードを含む以前の質問があります。

4

1 に答える 1

3

ビデオ接続は通常、横向きです (例: AVCaptureVideoOrientationLandscapeRight) このアップルに関する良い情報があります Q&A

私の理解では、AVCaptureVideoDataOutput でビデオの向きを設定することはできません。したがって、AVCaptureSessionデリゲートメソッドで現在のフレーム画像を回転させるためのリンクのさまざまなトリックcaptureOutput:didOutputSampleBuffer:fromConnection:

前回の投稿から、SquareCam サンプル プロジェクトを見たと思います。RosyWriter プロジェクトは、接続の videoOrientation プロパティをアプリケーションが期待する「参照」縦方向と比較することにより、向きの興味深い処理も提供します。

それが役に立てば幸い。

于 2012-12-06T22:27:19.610 に答える