如何解决如何使用 CameraX 在 Android 中提高相机速度
嗨,我是 Android 编程新手。
如标题,如何使用CameraX或Camera2或OpenCV提高拍照速度? 我的项目目标是使用 Android 和 OpenCV 尽快处理图像(4k 图像)。
如果您有任何意见,请告诉我。
void bindPreview(@NonNull ProcessCameraProvider cameraProvider) {
Preview preview = new Preview.Builder()
.setTargetAspectRatio(AspectRatio.RATIO_16_9)
.build();
CameraSelector cameraSelector = new CameraSelector.Builder()
.requireLensFacing(CameraSelector.LENS_FACING_BACK)
.build();
executor = Executors.newSingleThreadExecutor();
ImageAnalysis imageAnalysis = new ImageAnalysis.Builder()
.setTargetAspectRatio(AspectRatio.RATIO_16_9)
.setBackpressureStrategy(ImageAnalysis.STRATEGY_KEEP_ONLY_LATEST)
.build();
ImageCapture imageCapture = new ImageCapture.Builder()
.setTargetAspectRatio(AspectRatio.RATIO_16_9)
.setCaptureMode(ImageCapture.CAPTURE_MODE_MAXIMIZE_QUALITY)
.build();
camera_capture_button.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
Log.v("Info","Button Click");
imageCapture.takePicture(executor,new ImageCapture.OnImageCapturedCallback() {
@Override
public void onCaptureSuccess(@NonNull ImageProxy image) {
super.onCaptureSuccess(image);
Log.v("Info","Capture Success = W:" + image.getWidth() + "/" + "H:" + image.getHeight());
Bitmap bitmap = toBitmap(image);
Log.v("Info","Bitmat cvt = W:" + bitmap.getWidth() + "/" + "H:" + bitmap.getHeight());
Mat matOriginal = new Mat();
Mat matResult = new Mat();
Utils.bitmapToMat(bitmap,matOriginal);
Log.v("Info","Mat cvt = W:" + matOriginal.width() + "/" + "H:" + matOriginal.height());
Imgproc.cvtColor(matOriginal,matResult,Imgproc.COLOR_BGR2HSV);
image.close();
}
@Override
public void onError(@NonNull ImageCaptureException exception) {
Log.v("Info","Capture Error");
exception.printStackTrace();
}
});
}
});
这是用来测量时间的 Logcat 消息
2021-05-12 16:20:40.427 V/Info:按钮点击
2021-05-12 16:20:40.976 V/Info:捕获成功 = W:3840/H:2160
2021-05-12 16:20:41.092 V/Info:位图 cvt = W:3840/H:2160
2021-05-12 16:20:41.106 V/Info:Mat cvt = W:3840/H:2160
作为结果
549 毫秒 - takePicture(我觉得太慢了)
116 毫秒 - 位图转换
014 毫秒 - 垫转换
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。