我一直在做一个项目,并得到了人脸检测工作,与焦点,感谢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
我们最近开源了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这个版本包含了对图片大小问题的修复。它将自动选择相机支持的最高分辨率,该分辨率与预览的宽高比相匹配。