Android CameraX 详解四 (图片分析)

机票直达

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_8888OUTPUT_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)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容