5

多亏了 SO,我一直在从事一个项目,并且必须重点关注人脸检测。

我现在正在拍照,但使用 Nexus 5 上的前置摄像头和 1280x960 的预览尺寸,播放服务似乎将图片尺寸设置为 320x240。

我检查了,预览和图片都支持 1280x960。

我尝试使用反射更改参数(与焦点相同),但没有任何改变。似乎有必要在开始预览之前更改它...

我一直在尝试阅读和调试混淆代码,但我不明白为什么库决定采用这种低分辨率:-(

使用的代码接近示例中包含的代码,只是增加了使用 CameraSource.takePicture(...) 拍照的可能性

您可以在示例 repo中找到代码

重现问题的代码=>在这里

我改变了相机初始化:

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 回答