画面に表示せずに生の画像で画像処理を行いたいのですが、明らかにパフォーマンスが低下します。
このスレッドへの回答によると、プレビューなしでカメラから写真を撮ることは Android 1.5 では不可能でしたが、Android 4 (API レベル 15) で可能かどうかは誰にもわかりませんか?
画面に表示せずに生の画像で画像処理を行いたいのですが、明らかにパフォーマンスが低下します。
このスレッドへの回答によると、プレビューなしでカメラから写真を撮ることは Android 1.5 では不可能でしたが、Android 4 (API レベル 15) で可能かどうかは誰にもわかりませんか?
Android 4 で生の画像データを画面に表示せずに受け取る最も簡単な方法は、Camera.setPreviewTexture()呼び出しを使用してプレビュー フレームを GPU にルーティングすることです。
これは、次の 2 つの方法で使用できます。
コメントできないので。エディの答えについて。Java インターフェイスを使用するとパフォーマンス上の利点がなくなるため、NDK でこれを使用する必要があります。PixelBuffer を使用する必要があることは、パフォーマンスの観点からはまったく正気ではありません。RGBA888 から YUV への変換も C で行う必要があります。
TextureView をそのまま使用しないでください。さらに悪化します。YUVに変換する前に、ピクセルをビットマップにコピーしてから、ビットマップから配列にコピーする必要があります。これだけで、新しい Nexus 7 2013 にまたがるブランドの CPU 使用率のほぼ 30% を占めます。
最も効率的な方法は、Camera.h と直接やり取りして、すべての Android API をバイパスすることです。独自のバッファを作成し、YUV データが他の場所に移動する前にインターセプトできます。