5

我一直在做一个项目,并做了面部检测工作,重点是thanks to SO新视觉API - 图片尺寸

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

我选中了,预览和图片都支持1280x960。

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

我一直在尝试读取和调试混淆代码,但我不明白为什么图书馆决定去为这个低分辨率: - (

使用的代码是接近什么纳入样本,只是增加了使用CameraSource.takePicture(...)

可以在the samples repo

代码中找到的代码来拍照的可能性重现该问题=>here

我改变了相机的init用:

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

增加了一个按钮和一个连接在CLIK听众:

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 

感谢您的帮助!

+0

你能否包含你的实际代码?越多越好。 – Kat

+0

@sparkysword:我添加了一些细节和示例代码的链接。 –

+0

GitHub在这里报告了这个问题:https://github.com/googlesamples/android-vision/issues/19 – pm0733464

回答

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

该版本包括对图片大小问题的修复程序。它会自动选择相机支持的最高分辨率,该分辨率与预览的宽高比相匹配。

+0

正如我所说,我检查了支持的预览和图片尺寸,支持的分辨率... –

+0

@ pm0733464我们如何从Vision API捕捉/保存已追踪脸部图像+叠加图像? –