使用 ArCore 时是否可以捕获高分辨率图像?

2024-04-14

在我的应用程序中,我尝试在自定义相机视图中使用 ArCore 作为“相机助手”。

需要明确的是 - 我想在用户的相机中显示图像并让他捕获以下图像don't包含 AR 模型。

据我了解,为了使用 ArCore 捕获图像,我必须使用 Camera2 API,该 API 通过将会话配置为使用“共享相机”来启用。

但是,我似乎无法将相机配置为使用任何高端分辨率(我使用的是 Pixel 3,所以我应该能够高达 12MP)。

在“共享相机示例”中,它们在 Camera2 和 ArCore 之间切换(可惜没有适用于 CameraX 的 API),并且存在几个问题:

  1. 在 ArCore 模式下,图像模糊(我认为这是因为深度传感器被禁用,如其文档中所述)
  2. 在Camera2模式下我根本无法提高分辨率。
  3. 在显示 ArCore 模型时,我无法使用 Camera2 API 捕获图像。

目前这个要求是否可行?


我还没有使用 ARCore 共享相机,但我可以就你问题的要点说几句话。

在 ARCore 中,您可以配置 CPU 图像大小和 GPU 图像大小。您可以通过检查所有来做到这一点可用的相机配置 https://developers.google.com/ar/reference/java/com/google/ar/core/Session#getSupportedCameraConfigs(com.google.ar.core.CameraConfigFilter)(可通过Session.getSupportedCameraConfigs(CameraConfigFilter cameraConfigFilter))并通过将其传回 ARCore 会话来选择您喜欢的一个。在各个相机配置 https://developers.google.com/ar/reference/java/com/google/ar/core/CameraConfig您可以检查您将获得哪个 CPU 图像大小和 GPU 纹理大小。

可能您当前正在使用(也许默认情况下?)具有最低 CPU 图像的 CameraConfig,如果我没记错的话,为 640x480 像素,所以是的,渲染时它看起来肯定很模糊(但在这方面与深度传感器无关)。

听起来您可以选择更高的 CPU 映像,然后就可以了...但不幸的是,情况并非如此,因为该配置适用于每一帧。获取更高分辨率的 CPU 图像将导致性能大幅降低。当我对此进行测试时,我的测试设备每秒大约有 3-4 帧,绝对不理想。

那么现在怎么办?我认为你有两个选择:

  1. 暂停 ARCore 会话,切换到更高的 CPU 图像 1 帧,获取图像并切换回“正常”配置。
  2. 也许您已经获得了不错的 GPU 图像,由于相机预览的原因可能不是最好的,但希望足够好?不确定如何渲染它,但通过一些 OpenGL 技能,您可以复制该纹理。当然不是直接的,因为整个GL_TEXTURE_EXTERNAL_OES东西...但是将其渲染到另一个帧缓冲区上,然后读取附加到它的纹理可以工作。当然,您可能需要自己处理纹理坐标(完整图像与可见区域),但这是另一个主题。

关于CameraX,请注意,它包装了Camera2 API,以便提供一些相机用例,以便应用程序开发人员不必担心相机生命周期。据我了解,ARCore 不适合使用 CameraX,因为我认为他们需要完全控制相机。

我希望这有一点帮助!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 ArCore 时是否可以捕获高分辨率图像? 的相关文章

  • Kapt 未在即时应用程序功能模块中生成类

    我在我的 Android 应用程序中使用 dagger2 即使没有错误 它也不会生成匕首组件类 我已经在设置中启用了注释处理器并重新启动了我的 android studio 但这对我来说不起作用 我也读过这个帖子Dagger2 不生成 Da
  • 处理 Android 锁屏上的音量变化?

    我想做的是 能够在 android 4 4 上的锁屏上捕获音量增大 减小按钮操作 Google Cast 设计清单 https developers google com cast docs design checklist sender
  • 添加动态数据时 footable 出现问题

    我需要 jQuery Mobile 方面的一些帮助富表 http css tricks com footable a jquery plugin for responsive data tables 我正在表中动态添加数据 HTML tab
  • 在代码中旋转按钮(或其中的文本)

    我必须通过编码随机旋转按钮 或里面的文本 它是相同的 API级别低于11是否有button setRotate x 好吧 看了一下 答案是 很复杂 您可以使用旧的动画框架旋转按钮 例如像这样 Button button Button fin
  • Android Facebook sdk 3.5 分享对话框

    您好 我正在为 android sdk 3 5 实现 facebook 共享对话框 但是我按照指南没有取得任何成功 FacebookDialog shareDialog new FacebookDialog ShareDialogBuild
  • Android 5.0 Lollipop 中屏幕固定关闭时如何收到通知?

    我有一个在后台运行的应用程序 并在手机上发生特定事件时启动活动 我发现在 Android 5 0 中 当用户使用另一个应用程序打开屏幕固定时 startActivity intent 调用将被完全忽略 我的应用程序不知道该活动尚未启动 因此
  • 游标索引越界异常

    打开后出现光标索引越界错误 数据库 请任何人告诉我如何打开现有数据库 sqllite Android 我想在数据库上触发一个选择查询 检索一些信息 public void getPatient SQLiteDatabase db Strin
  • 多语言 Android 应用程序:在电子邮件和密码字段中显示英文键盘

    我们正在开发一款多语言 Android 应用程序 针对英语和阿拉伯语 面临的问题是在登录和注册屏幕中 我们希望仅以英文文本输入用户名和密码字段 从而显示英文键盘 无论设备区域设置语言如何 已尝试在 edittext 中设置 inputtyp
  • 需要在 Android 中伪造正在扫描的 NFC 标签

    好的 我有一个应用程序 此应用程序仅在扫描 NFC 标签 任何标签 时才会完成任务 唯一的问题是 我没有任何 nfc 标签 无论如何 我正试图消除对卡的需要 所以我需要的是一种 伪造 使其看起来 就像已扫描 nfc 标签的方法 我可以编写应
  • Android:BATTERY_STATUS_DISCHARGING 和 BATTERY_STATUS_NOT_CHARGING 之间的区别

    我想知道这两个标志之间的区别 BatteryManager BATTERY STATUS DISCHARGING And BatteryManager BATTERY STATUS NOT CHARGING 我开发了一个使用这两个标志的应用
  • android 多关键词搜索

    我的应用程序包含搜索功能 它将搜索数据库内的内容 我的搜索的弱点是 我只能使用一个标签进行搜索 例如我只能搜索 猫 它会返回我的数据库中包含 猫 一词的内容 因为我正在使用LIKE在 select 语句期间进行查询 如何使用多个标签进行搜索
  • Android 消费品:“已经拥有该商品”,但 inventory.hasPurchase() 为 false

    我被 Google In App v3 困住了 我测试了一次没有消费的购买 例如 当应用程序在购买和消费之间崩溃时 现在我找不到出路 如果我尝试再次购买 它会显示 您已经拥有该商品 但是当我测试所有权时 它说我不拥有它 Inventory
  • Android - 多次实例化一个片段?

    我正在创建一个在 ListView 中显示数据的应用程序 数据分为两种类型 热门 收藏夹 我有一个活动和两个片段 片段根据类别显示项目列表 我为此使用了 ListView 然后我有两个fragment layouts 它们在设计上完全相同
  • 使用 UPI url 调用 PSP 应用程序

    我正在尝试创建一个商家应用程序 它将根据 NPCI 的指南生成一个 url 此 url 将作为意图共享 并且 PSP 应用程序 任何注册的银行应用程序 应该能够侦听该 url 并被调用 我已经形成了这样的网址 upi pay pa icic
  • 按名称获取 ArrayList

    这是正确的获取方式吗ArrayList
  • 有没有办法在多个嵌套的 RecyclerView 之间共享同一个 LayoutManager

    我正在开发一个显示游戏列表的应用程序 在每个游戏的 itemView 内 我还有一个要显示的视频列表 预览和结构如下 我部署了一个RecyclerView作为窗口根视图 然后对于视频 我使用网格样式的RecyclerView来显示 所以这里
  • 如何更改 Android 12 启动屏幕中的图标形状?

    我想要矩形形状的启动屏幕图标 而不是 android 12 中的圆形形状 我不相信你可以 如果你看这里的第 3 点 https developer android com about versions 12 features splash
  • 使用后退按钮启动 Activity

    我正在 Android 中开发一个应用程序 我正在寻找解决方案 有一个活动 例如 A1 通过单击按钮 用户可以转到另一个活动 例如 A2 现在 一旦用户完成 A2 活动 他就会单击后退按钮 返回到上一个活动 A1 这是众所周知的事实 A1此
  • 使用 RecyclerView.Adapter 在 onBindViewHolder() 内设置 onItemClickListener

    我有一个自定义对象 学生班 public class Student private String name private String age public String getName return name public void
  • 改造方法调用可能会产生“java.lang.NullPointerException”

    使用 Retrofit 2 3 0 我在 Android Studio 中收到以下消息 有关如何删除此 IDE 错误消息的任何建议 谢谢 来自Response文档 http square github io retrofit 2 x ret

随机推荐