Java 阿科雷– ;来自arFragment的图像与片段';s显示器

Java 阿科雷– ;来自arFragment的图像与片段';s显示器,java,kotlin,augmented-reality,arcore,sceneform,Java,Kotlin,Augmented Reality,Arcore,Sceneform,我正在我的一个项目中与ARCore合作。我正在视图中使用arFragment。因此,我使用 arFragment.getArSceneView().getArFrame().acquireCameraImage() 它返回一个图像。此图像与片段显示中的预览不同。我认为我通过AR片段看到的是通过acquireCameraImage捕获的图像,但看起来获取的图像比片段显示的部分多,而且方向是横向的(片段显示中的纵向视图) 我需要一个与片段显示预览相同的图像对象。 有什么方法可以得到它吗?正如您正确

我正在我的一个项目中与ARCore合作。我正在视图中使用
arFragment
。因此,我使用

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

我需要一个与片段显示预览相同的图像对象。

有什么方法可以得到它吗?

正如您正确写的那样–一个公共方法
。acquireCameraImage()
从相机获取与当前帧对应的图像:

public Image acquireCameraImage()
为了获得与片段显示预览相同的图像对象,只需使用:

public Frame update()
谷歌ARCore开发者文档

更新
ARCore
系统的状态。这包括:接收新的摄像机帧、更新设备的位置、更新跟踪锚的位置、更新检测到的平面等。此调用可能会导致屏幕外OpenGL活动。因此,为了避免不必要的帧缓冲区刷新和重新加载,该调用不应在渲染帧或屏幕外缓冲器的中间进行。此调用可能会更新所有创建的锚点和检测到的平面的姿势。更新的对象集可以通过
getUpdatedTrackables(类)
访问。阻塞模式下的此调用(请参阅Config.UpdateMode)将等待新的摄像头图像可用,或者直到达到内置超时(当前
66ms
)为止。如果相机图像未在内置超时前到达,则
update()
将返回最近的帧对象。对于某些应用,了解是否实际获得了新帧可能很重要(例如,如果相机没有生成新帧,则避免重画)。为此,将通过
getTimestamp()
获得的当前帧的时间戳与之前记录的帧时间戳进行比较。如果它们不同,这是一个新的框架


你怎么知道他们不同?请张贴比较图片和清单的活动声明。谢谢您的回答。。!!我通过对生成的位图进行缩放和旋转解决了这个问题。但是很难找到纵横比。Hi@AngathanNesarasa,如何将横向图像转换为从acquireCameraImage()接收的纵向图像。你能给我提供密码吗?