6

カメラからライブ プレビューをキャプチャする Android アプリケーションを作成しました。シャッター時間を短くすることが重要であり、少なくとも一定である必要があります。

現在、シャッター時間を短くするために次のコードを使用しています。

Parameters params = camera.getParameters();
params.setSceneMode(Parameters.SCENE_MODE_SPORTS);
params.setWhiteBalance(Parameters.WHITE_BALANCE_DAYLIGHT);
params.setFlashMode(Parameters.FLASH_MODE_OFF);
params.setFocusMode(Parameters.FOCUS_MODE_INFINITY);

params.setPreviewFpsRange(9000, 29453);
params.setPreviewFrameRate(29453);
params.setJpegQuality(100);
params.setPreviewFormat(ImageFormat.NV21);

params.setPreviewSize(1280,720);
params.setAntibanding(Parameters.ANTIBANDING_OFF);
params.setExposureCompensation(params.getMinExposureCompensation());
params.set("iso", 1250);
camera.setParameters(params);

私の電話機のファームウェアでは setSceneMode() がサポートされていないようです (getSupportedSceneModes は空のリストを返します)。「ISO」設定はおそらく効果がありません(写真は見ていませんが、フレームレートを計算しただけです)。このコードをどこかで見つけて使用しました...おそらく間違った文字列ですか?

これまでのところ、フレーム レートは 9 から 29,453 fps の間で変化します。これは、サポートされている唯一のフレーム レート範囲です。だからparams.setPreviewFpsRange(29453, 29453);どちらもうまくいきません。フレーム レートは、良好な照明条件 (通常の日、屋内、窓に向けられた) では高く (20 ~ 30 fps)、中/低照度 (日光、屋内、窓から直接離れた場所) では非常に低くなります (8 ~ 10 fps)。条件。

詳細: 高いフレーム レートは必要ありませんが、短いシャッター時間は必要です。収集されたデータは、屋内ナビゲーション (または、最初のステップでの屋内位置特定) に使用されます。アプリケーションは、携帯電話の持ち方を気にせずに、人が普通に歩いているときに写真を撮る必要があります。その人は、走ったり、電話を「振ったり」している可能性もあります (通常、歩いているときに腕を動かすように)。そのため、シャッター時間が長すぎると、通常は多くの「モーション ブラー」が発生します。この状況は、写真がカメラをしっかりと保持しようとする「写真を撮りたい」状況とは大きく異なります。実際には「良い写真」を達成したいわけではありませんが、時々壁のいくつかのエッジを何らかの方法で検出したいと考えています。写真にはたくさんの「ノイズ」が含まれていると思いますが、

アイデアは、NDK を使用してカメラ パラメーターをより詳細に制御できる可能性があるということです。誰かが NDK の経験があり、試してみる価値があると答えてくれますか?

追加情報: HTC Desire Z (別名: 「T-Mobile G2」または「HTC Vision」) をテスト デバイスとして使用しています。

4

1 に答える 1

5

短い答えは「いいえ」です。より長い答えは質問から始まります: あなたのアプリはキャプチャを気にせず、YUV プレビュー フレームのみを使用しますが、それは正しいですか?

ルート アクセス権のない標準のダウンロード アプリとして、カメラ (または他の) デバイスに直接アクセスする権限はありません。カメラの動作に影響を与えるsetParameters() APIしかないため、この API を通じてどのカメラ機能が公開されるかについては、完全に OEM に委ねられます。

ルート化されたデバイスでも機能は制限されていますが、現在はデバイス ドライバーの仕様と特定のカメラ ISP によって制限されています。

どちらの場合も、最初にターゲット デバイスを慎重に選択する必要があります。一部の Android フォンでは、HTC Vision よりもはるかに多くのカメラ制御が可能だと思います。たとえば、Samsung S2 の修正バージョンhttp://pfittech.com/rom_pfittech_jb.htmlは、1080p で安定した 25 FPS を誇っています。

于 2012-09-18T20:16:25.657 に答える