5

SO のおかげで、私はプロジェクトに取り組んでおり、焦点を合わせて顔検出を機能させる必要がありました。

現在、写真を撮っていますが、Nexus 5 の前面カメラと 1280x960 のプレビュー サイズを使用すると、再生サービスは写真サイズを 320x240 に設定しているようです。

確認したところ、プレビューと画像の両方で 1280x960 がサポートされています。

反射を使用してパラメータを変更しようとしましたが(フォーカスと同じ)、何も変わりませんでした。プレビューを開始する前にそれを変更する必要があるようです...

難読化されたコードを読み取ってデバッグしようとしましたが、ライブラリがこの低解像度を選択する理由がわかりません:-(

使用されているコードは、サンプルに含まれているものに近く、CameraSource.takePicture(...) を使用して写真を撮る可能性を追加しただけです。

サンプルリポジトリでコードを見つけることができます

問題を再現するコード =>こちら

カメラの初期化を次のように変更しました:

mCameraSource = new CameraSource.Builder(context, detector)
    .setRequestedPreviewSize(1280, 960)
            .setFacing(CameraSource.CAMERA_FACING_FRONT)
            .setRequestedFps(30.0f)
            .build();

ボタンを追加し、クリックリスナーを接続しました:

findViewById(R.id.snap).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            mCameraSource.takePicture(null, new CameraSource.PictureCallback() {
                @Override
                public void onPictureTaken(byte[] bytes) {
                    Bitmap bmp = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
                    Log.d("BITMAP", bmp.getWidth() + "x" + bmp.getHeight());
                }
            });
        }
    });

ログ出力:

BITMAP﹕ 320x240

助けてくれてありがとう !

4

1 に答える 1

1

最近、CameraSource クラスをオープンソース化しました。ここを参照してください:

https://github.com/googlesamples/android-vision/blob/master/visionSamples/barcode-reader/app/src/main/java/com/google/android/gms/samples/vision/barcodereader/ui/camera/ CameraSource.java

このバージョンには、画像サイズの問題に対する修正が含まれています。プレビューの縦横比に一致する、カメラがサポートする最高の解像度が自動的に選択されます。

于 2015-08-30T20:30:01.060 に答える