首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何设置正确的setTargetResolution大小来分析目标检测图像?

如何设置正确的setTargetResolution大小来分析目标检测图像?
EN

Stack Overflow用户
提问于 2020-07-08 00:35:09
回答 1查看 700关注 0票数 1

我正在使用CameraX和对象检测来分析来自相机的帧,并且我在设置正确的大小时遇到了问题,以便创建一个覆盖,以显示当前正在检测的对象。

代码语言:javascript
运行
复制
val imageAnalysis = ImageAnalysis.Builder()
            .setTargetRotation(rotation)
            .setTargetResolution(size)
            .setBackpressureStrategy(ImageAnalysis.STRATEGY_KEEP_ONLY_LATEST)
            .build()
            .also { it.setAnalyzer(cameraExecutor, imageAnalyzer) }

我有一个CustomView(覆盖层),我给出了boundingBox给我的Rect,我画了这个。

我尝试过一些事情,但结果不一致:

如果我做了:val size = Size(DisplayMetrics().heightPixels, DisplayMetrics().widthPixels)

  • 应用程序在所有版本的安卓系统中都能正常工作,但是当我尝试获取boundingBox rect并设置覆盖层时,边框与屏幕上的对象不匹配。

如果我喜欢的话:val size = Size(224,224)喜欢在一个android代码库中使用

这是来自codelabs github的:

代码语言:javascript
运行
复制
// This sets the ideal size for the image to be analyse, CameraX will choose the
// the most suitable resolution which may not be exactly the same or hold the same               
// aspect ratio
.setTargetResolution(Size(224, 224))

在本例中,

  • 在android中运行良好,覆盖边框仍然关闭,而在Android和奥利奥等旧版本中,它会像小故障一样一次又一次地打开摄像头,并冻结应用程序

如果我这样做:val size = Size(1280, 720)喜欢ImageAnalysis文档中的示例

versions

  • Tried的边框也关闭了,但是这个应用程序在所有的Android 中都能正常工作,640x480也一样,如果我做480x640或720x1280的话,
  • 也会得到相同的结果,我得到了冻结应用

的故障。

我只能用val size = Size(DisplayMetrics.widthPixels, DisplayMetrics().heightPixels)让它工作

  • 这显示了与屏幕上的对象匹配的正确边框,但它只在Android中工作,在老版本中,我得到了与相机保持打开和冻结屏幕

相同的闪光。

第一张照片的边框在不正确的位置,第二张是它正确工作的时候。

如果有人对我做错了什么以及如何解决这个问题有任何想法,我会感谢你的帮助。很抱歉寄了这么长的邮件,谢谢。

EN

回答 1

Stack Overflow用户

发布于 2022-03-07 16:16:54

你必须从

导入android.util.Size

下面是代码片段

代码语言:javascript
运行
复制
val imageAnalysis = ImageAnalysis
        .Builder()
        // RGBA output is needed.
        .setOutputImageFormat(ImageAnalysis.OUTPUT_IMAGE_FORMAT_RGBA_8888)
        .setTargetResolution(Size(1280,720))

*注1280为我的预览视图宽度,720为高度,纵横比应保持不变,因此可以添加如下变量

代码语言:javascript
运行
复制
.setTargetResolution(Size(previewView.width, previewView.height))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62785832

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档