google-project-tango - 有没有办法在Java中访问探戈点云相机图像像素

标签 google-project-tango

所以我知道 setSurface,并且将它用作叠加层或其他任何东西都没有问题 - 它在表面控件上。也就是说,我对获取像素数据感到困惑

1)我已经尝试了所有我能想到的(控件、根等)来使用绘图缓存功能来获取相机表面的位。啊,没有。缓存的位图总是被清零。

2) 我已经成功地使用 SurfaceView 和 GLSurfaceView 作为 setSurface 目标。我不能使用任何其他类,例如 TextureView。

3)我研究了 C API,我看到相机公开了 connectOnFrameAvailable,这将使我能够访问像素

我的猜测是内部探戈逻辑只是使用 Java 中的表面来访问底层位传输 channel - 在 C API 中它需要一个纹理 ID,这让我在一天结束时怀疑,相机数据是很快传送到 GPU,我敢打赌 CUDA 库在它上面运行 - 鉴于事物的状态,我无法看到如何在不 Root 设备的情况下获取 Java 端的位 - 只是因为我有一个纹理或简单的表面 View 在屏幕上呈现原始位并不意味着我可以得到它们。

我不想将图像数据从 GPU 中剥离出来。为此,我需要将忙碌的动画从 watch 切换到日历。

在深入研究 C API 之前,有什么方法可以在 Java 中获取相机位吗?我真的希望能够将它们与特定的姿势相关联,但现在我什至不知道如何获得它们。我真的很想知道 3D 点的位置和颜色。我只需要相机内在函数、点云和生成点云的二维图像。但是,如果我无法获得像素,我将无能为力,并且图像与(姿势和点云)之间的关系越可疑,任何努力都会变得越粗略。

如果我深入研究 C,connectOnFrameAvailable 会提供我需要的东西吗?它与点云生成的同步程度如何?哦,我做对了吗?彩色相机用于深度,鱼眼用于姿势?

我可以混合使用 Java 和 C,即在 Java 中创建一个 Tango 实例,然后只使用 C 来处理图像问题吗?或者我将不得不重新实现 C 中的所有内容并停止使用 tango java jar ?

最佳答案

  • connectOnFrameAvailable 会提供我需要的东西吗?

  • 是的,它确实返回了 YUV 字节缓冲区。
  • 它与点云生成的同步程度如何?

  • Tango API 本身不提供彩色图像和深度点云之间的同步,但是,它提供了允许您在应用程序级别同步的时间戳。
  • 彩色相机用于深度,鱼眼用于姿势?

  • 你是对的。
  • 我可以混合使用 Java 和 C(即在 Java 中创建一个 Tango 实例,然后只使用 C 来处理图像问题)
    启动两个 Tango 实例真的不是 Tango 支持的方式,即使它可以工作,它也会非常hacky..

  • 作为临时走动,您可能可以尝试使用 View 的绘图缓存?

    关于google-project-tango - 有没有办法在Java中访问探戈点云相机图像像素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27893587/

    相关文章:

    java - ADF 文件导出不起作用。不通过调用exportAreaDescriptionFile() 也不通过Intent

    google-project-tango - 如何从 c#/Unity 设置探戈相机曝光和 iso 参数

    google-project-tango - project-tango 还可以用于 ar 开发吗?

    android - Google Tango 服务已过时

    android - Tango 原始深度数据 - 更新?

    java - 探戈Java SDK : onFrameAvailable not being called

    android - 如何导出点云数据(Project Tango)?

    c - 使用 C API 需要 #include <tango-api/public-api.h>

    c# - 网格划分示例 -> 网格错误 |探戈计划 |统一

    c - Project Tango - 服务坐标系开始,C API