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