HarmonyOS 鸿蒙Next AR Engine中图片坐标转屏幕坐标
HarmonyOS 鸿蒙Next AR Engine中图片坐标转屏幕坐标
arFrame.acquireCameraImage()
获得了图片,现在我知道图片上的一些坐标点,怎么转为对应的屏幕坐标呢?
ARCore:
我在google的arcore中可以通过以下方法实现:
/
* Transforms a list of 2D coordinates from one 2D coordinate system to another 2D coordinate
* system.
* <p>Same as {@link
* #transformCoordinates2d(com.google.ar.core.Coordinates2d,java.nio.FloatBuffer,com.google.ar.core.Coordinates2d,java.nio.FloatBuffer)},
* but taking float arrays.
* @param inputCoordinates The coordinate system used by {@code inputVertices2d}.
* @param inputVertices2d Input 2D vertices to transform.
* @param outputCoordinates The coordinate system to convert to.
* @param outputVertices2d Buffer to put the transformed 2D vertices into.
/
public void transformCoordinates2d(
com.google.ar.core.Coordinates2d inputCoordinates,
float[] inputVertices2d,
com.google.ar.core.Coordinates2d outputCoordinates,
float[] outputVertices2d) {
// Method contents removed.
}
该方法可以在以下类型的坐标中进行转换:
public enum Coordinates2d {
/ CPU image, (x,y) normalized to [0.0f, 1.0f] range. /
IMAGE_NORMALIZED,
/ CPU image, (x,y) in pixels. */
IMAGE_PIXELS,
/
* OpenGL Normalized Device Coordinates, display-rotated, (x,y) normalized to [-1.0f, 1.0f] range.
/
OPENGL_NORMALIZED_DEVICE_COORDINATES,
/* GPU texture coordinates, (s,t) normalized to [0.0f, 1.0f] range. /
TEXTURE_NORMALIZED,
/* GPU texture, (x,y) in pixels. /
TEXTURE_TEXELS,
/* Android view, display-rotated, (x,y) in pixels. /
VIEW,
/* Android view, display-rotated, (x,y) normalized to [0.0f, 1.0f] range. */
VIEW_NORMALIZED;
}
所以可以很轻松地进行任意的坐标转换,比如cameraImage坐标转屏幕坐标,cameraImage坐标转depthImage坐标…
我想知道华为ar engine如何完成这件事呢?
arFrame.transformDisplayUvCoords 这个方法貌似不奏效
更多关于HarmonyOS 鸿蒙Next AR Engine中图片坐标转屏幕坐标的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
楼主你开发的是安卓应用还是NEXT应用啊?
更多关于HarmonyOS 鸿蒙Next AR Engine中图片坐标转屏幕坐标的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next AR Engine中,图片坐标转屏幕坐标的过程通常涉及将增强现实(AR)空间中的图像坐标映射到设备的显示屏幕坐标系。这通常通过以下步骤实现:
-
获取AR坐标系信息:首先,通过AR Engine的API获取当前图像在AR空间中的坐标,这通常包括图像的二维中心点坐标(x, y)以及可能的其他相关信息,如旋转角度和缩放比例。
-
应用投影矩阵:使用AR Engine提供的投影矩阵,将AR坐标转换为设备屏幕的像素坐标。投影矩阵考虑了设备的相机参数、屏幕尺寸、分辨率等,确保坐标转换的准确性。
-
屏幕坐标计算:应用投影矩阵后,得到的坐标即为图片中心点在屏幕上的像素坐标。如果图片有特定的尺寸或需要计算其他点的屏幕坐标,还需根据图片的宽高比和中心点坐标进行相应的计算。
-
考虑屏幕方向:确保转换过程中考虑了设备的屏幕方向(如横屏或竖屏),以正确映射坐标。
最终,通过上述步骤,可以将AR Engine中的图片坐标成功转换为屏幕坐标。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html