机票直达
Android CameraX 详解一 (引言&基础)
Android CameraX 详解二 (实时预览)
Android CameraX 详解三 (拍照)
Android CameraX 详解四 (图片分析)
Android CameraX 详解五(视频拍摄录制)
概述
往往使用相机功能,不仅仅是拍照、录像等 ,还需要可以对这些图像执行图像处理、计算机视觉或机器学习推断。以便实现我们想要的功能
分析器 ImageAnalysis
- 可以通过实现
ImageAnalysis.Analyzer接口并重新analyze(ImageProxy image)来创建分析器 - 在每个分析器中,都会收到一个
ImageProxy,这就是图像数据,它是 Media.Image的封装容器。可以使用ImageProxy.getFormat()来查询图像格式。该格式使用应用通过ImageAnalysis.Builder提供的以下值之一表示:OUTPUT_IMAGE_FORMAT_RGBA_8888,OUTPUT_IMAGE_FORMAT_YUV_420_888 - 创建分析器后,使用
ImageAnalysis.setAnalyzer()注册该分析器以开始分析。完成分析后,使用ImageAnalysis.clearAnalyer()移除已注册的分析器 - 使用方法
val imageAnalysis = ImageAnalysis.Builder()
// enable the following line if RGBA output is needed.
// .setOutputImageFormat(ImageAnalysis.OUTPUT_IMAGE_FORMAT_RGBA_8888)
.setTargetResolution(Size(1280, 720))
.setBackpressureStrategy(ImageAnalysis.STRATEGY_KEEP_ONLY_LATEST)
.build()
imageAnalysis.setAnalyzer(executor, ImageAnalysis.Analyzer { imageProxy ->
val rotationDegrees = imageProxy.imageInfo.rotationDegrees
// insert your code here.
...
// after done, release the ImageProxy object
imageProxy.close()
})
cameraProvider.bindToLifecycle(this as LifecycleOwner, cameraSelector, imageAnalysis, preview)