android 图片分析,分析图片  |  Android 开发者  |  Android Developers

本文介绍了Android中图片分析的实现,包括阻塞和非阻塞模式,以及如何在分析方法中处理图像,并确保在analyze()方法返回前关闭图像引用以避免预览停顿和图像丢失。示例代码展示了如何配置ImageAnalysis并将其与预览用例绑定。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

图片分析用例为您的应用提供可供 CPU 访问的图片来执行图片处理、计算机视觉或机器学习推断。应用会实现对每个帧运行的 analyze 方法。

实现

本主题中的代码示例展示了如何执行此操作,以及如何将图片分析用例和预览用例绑定到 LifecycleOwner。如需了解如何创建预览用例,请参阅实现预览。

图片分析可以分为两种模式:阻塞模式和非阻塞模式。通过使用 STRATEGY_BLOCK_PRODUCER 调用 setBackpressureStrategy() 可以启用阻塞模式。在此模式下,执行器会依序从相应相机接收帧;这意味着,如果 analyze() 方法所用的时间超过单帧在当前帧速率下的延迟时间,所接收的帧便可能不再是最新的帧,因为在该方法返回之前,新帧会被阻止进入流水线。

通过使用 STRATEGY_KEEP_ONLY_LATEST 调用 setBackpressureStrategy() 可以启用非阻塞模式。在此模式下,执行程序在调用 analyze() 方法时会从相机接收最新的可用帧。如果此方法所用的时间超过单帧在当前帧速率下的延迟时间,它可能会跳过某些帧,以便 analyze() 在下一次接收数据时获取相机流水线中的最新可用帧。

从 analyze() 返回前,请通过调用 image.close() 关闭图像引用,以避免阻塞其他图像的生成(导致预览停顿)并避免可能出现的图像丢失。此方法必须完成分析或创建副本,而不是超出分析方法之外传递图像引用。

Kotlin

val imageAnalysis = ImageAnalysis.Builder()

.setTargetResolution(Size(1280, 720))

.setBackpressureStrategy(ImageAnalysis.STRATEG

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值