因此,我知道setSurface,并没有问题,使用它作为一个覆盖或其他-它的表面控制。话虽如此,我对于获取像素数据感到困惑。
1)我尝试了我所能想到的一切(控件、根等)来使用绘图缓存函数来获取相机表面的位。是啊,不。缓存的位图始终为零。
2)我成功地使用了SurfaceView和GLSurfaceView作为setSurface标记。我不能使用任何其他类,例如TextureView。
3)我研究了C,我看到相机暴露了connectOnFrameAvailable,这会让我访问像素
我的猜测是,内部探戈逻辑只是使用java中的图面来访问底层的位传输通道--在C API中,它需要一个纹理ID,这让我怀疑在一天结束时,相机数据会很快地被传送到GPU,而且我打赌CUDA lib在它上运行--考虑到事情的情况,我看不出如何在没有生根设备的情况下获得Java端的比特--仅仅因为我在屏幕上有一个纹理或简单的表面视图呈现原始数据,并不意味着我可以找到它们。
我不想把图像数据从GPU中剥离出来。我需要把忙碌的动画从手表换成日历。
在深入研究C API之前,有什么方法可以在Java中获取相机位吗?我真的很想把它们和一个特定的姿势联系起来,但是现在我甚至不知道如何得到它们。我真的很想知道三维点的位置和颜色。相机的本质,点云,和产生点云的2d图像是我所需要的。但是,如果我不能得到像素,我什么也做不了,图像和(姿势和点云)之间的关系就越可疑,任何努力都会变得越粗糙。
如果我真的深入到C中,connectOnFrameAvailable会给我所需要的吗?它与点云生成有多好的同步?哦,我说对了吗?彩色相机用于深度,鱼眼用于姿态?
我可以混合Java和C,即在Java中创建Tango实例,然后只使用C来处理图像问题吗?还是我必须重新实现C语言中的一切,停止使用探戈java jar?
发布于 2015-01-16 01:55:19
是的,它确实返回YUV字节缓冲区。
Tango本身并不提供彩色图像和深度点云之间的同步,但是它提供了允许您在应用程序级别同步的时间戳。
是的,你是对的。
当临时遍历时,您可能会尝试使用视图的绘图缓存吗?
https://stackoverflow.com/questions/27893587
复制相似问题