mediapipe 坐标转换为UE5中的世界坐标 c++
时间: 2023-09-22 16:07:39 浏览: 200
坐标转换C++
5星 · 资源好评率100%
要将MediaPipe中的坐标转换为UE4中的世界坐标,你需要知道以下信息:
1. MediaPipe中的坐标原点是左上角,而UE4中的坐标原点是中心点。
2. MediaPipe中的坐标以像素为单位,而UE4中的坐标以厘米为单位。
3. MediaPipe中的坐标系是2D平面,而UE4中的坐标系是3D空间。
因此,为了将MediaPipe中的坐标转换为UE4中的世界坐标,你需要进行以下步骤:
1. 将MediaPipe中的坐标原点移动到左下角。
2. 将MediaPipe中的坐标从像素转换为厘米。
3. 将MediaPipe中的坐标转换为3D坐标。
4. 将3D坐标转换为UE4中的世界坐标。
以下是一个示例代码,它将MediaPipe中的坐标转换为UE4中的世界坐标:
```cpp
// MediaPipe坐标
cv::Point3f mediapipe_point = ...;
// 将原点移动到左下角
mediapipe_point.y = height - mediapipe_point.y;
// 将坐标从像素转换为厘米
mediapipe_point.x *= cm_per_pixel;
mediapipe_point.y *= cm_per_pixel;
// 将2D坐标转换为3D坐标
cv::Point3f mediapipe_point_3d(mediapipe_point.x, mediapipe_point.y, 0);
// 将3D坐标转换为UE4中的世界坐标
FVector world_location = FVector(mediapipe_point_3d.x, mediapipe_point_3d.y, mediapipe_point_3d.z);
```
其中,`height`是MediaPipe中图像的高度,`cm_per_pixel`是每个像素对应的厘米数。要注意,这个值需要根据实际情况进行设置。然后,将MediaPipe中的2D坐标转换为3D坐标时,我们将其z坐标设置为0,因为MediaPipe中的坐标系是2D平面。最后,我们将3D坐标转换为UE4中的世界坐标时,我们使用了UE4中的`FVector`类型。
阅读全文