問題タブ [front-camera]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
6473 参照

android - onImageAvailable (android Camera2) のフロントカムポートレートモードから未加工の NV21 配列画像 (android.media.Image) を変換して回転させる方法は?

注: 私の投稿のすべての情報は、Samsung Galaxy S7 デバイスにのみ適用されます。エミュレーターやその他のデバイスがどのように動作するかわかりません。

onImageAvailable では、各画像を継続的に NV21 バイト配列に変換し、生の NV21 形式を期待する API に転送します。

これは、イメージ リーダーを初期化し、イメージを受け取る方法です。

画像を raw NV21 に変換する関数 (ここから)、正常に動作します。ポートレート モードでフロント カメラを使用すると、画像は (Android が原因で?) 90 度回転します: (Alex Cohn のコメントに従って、わずかに変更しました)

したがって、「データ」をローテーションする必要があります。この関数 (ここから) を使用すると、奇妙な3 回インターレース画像エラーが発生します。

この写真になります:

悪い結果

注: 同じカップですが、3 ~ 4 回表示されます。

ここから別の提案された回転関数を使用すると、適切な結果が得られます。

結果は問題ありません。

良い結果

上の画像は、テクスチャ ビューのサーフェスを使用し、それを captureRequestBuilder に追加するダイレクト ストリームを示しています。下の画像は、回転後の生の画像データを示しています。

質問は次のとおりです。

  • 「convertYUV420ToNV21_ALL_PLANES」のこのハックは、どのデバイス/エミュレーターでも機能しますか?
  • なぜ、rotateNV21_working は正常に機能するのに、rotateNV21 が機能しないのですか。

編集: ミラーの問題が修正されました。コード コメントを参照してください。転送される API が原因であったスクイーズの問題は修正されました。実際に未解決の問題は、適切なあまり高価ではない機能であり、画像を任意のデバイスで動作する未加工の NV21 に変換および回転します。

0 投票する
1 に答える
1988 参照

c# - xamarin androidを使用してフロントカメラを開くにはどうすればよいですか

「Smile for the camera」というタイトルのアプリで、顔認証のためにデバイスの前面カメラを開きたいです。これを行うにはどうすればよいですか。現在、背面カメラのデフォルトを取得しています。バックカメラオプションを非表示にします。

私を助けてください

カメラを開くコードは次のとおりです