ARCore – 来自 arFragment 的图像与片段的显示不同

我正在我的一个项目中使用 ARCore。我arFragment在视图中使用 。从那以后,我用

arFragment.getArSceneView().getArFrame().acquireCameraImage()

它返回一个image. 此图像与片段显示中的预览不同。我认为我通过 AR 片段看到的是通过 捕获的内容acquireCameraImage,但看起来获取的图像比片段显示的部分更多,而且方向是横向的(片段显示中的纵向视图)。

我需要一个与片段显示中的预览相同的图像对象。
有没有办法得到它?


杨__羊羊
浏览 222回答 1
1回答

UYOU

正如您所写的 - 公共方法.acquireCameraImage()从与当前帧对应的相机获取图像:public Image acquireCameraImage()为了获得与片段显示中的预览相同的图像对象,只需使用:public Frame update()Google ARCore 开发人员文档:update() 方法更新ARCore系统的状态。这包括:接收新的相机帧、更新设备的位置、更新跟踪锚点的位置、更新检测到的平面等。此调用可能会导致屏幕外 OpenGL 活动。因此,为避免不必要的帧缓冲区刷新和重新加载,不应在渲染帧或屏幕外缓冲区的中间进行此调用。此调用可能会更新所有创建的锚点和检测到的平面的姿态。可通过 访问更新的对象集getUpdatedTrackables(Class)。阻塞模式下的此调用(请参阅 Config.UpdateMode)将等到新的相机图像可用,或直到达到内置超时(当前66ms)。如果相机图像没有到达内置超时,则update()将返回最近的 Frame 对象。对于某些应用程序,了解是否实际获得了新帧可能很重要(例如,如果相机没有生成新帧,则避免重绘)。为此,请将通过 获得的当前帧的时间戳getTimestamp()与之前记录的帧时间戳进行比较。如果它们不同,则这是一个新框架。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java