和mediapipe的坐标系进行转换
时间: 2023-09-24 16:13:13 浏览: 496
Mediapipe使用的坐标系与UE5中使用的坐标系不同。在Mediapipe中,坐标系的原点位于图像的左上角,x轴指向右侧,y轴指向下方,z轴指向屏幕内部。因此,需要进行坐标系的转换才能将Mediapipe中的坐标系转换为UE5中的坐标系。
具体地,可以按照以下步骤进行坐标系的转换:
1. 将Mediapipe中的坐标系原点从左上角移动至图像中心,即将x、y坐标都减去图像宽度和高度的一半。
2. 将y坐标取反,以将y轴方向从向下改为向上。
3. 将z轴与y轴进行交换,以将z轴方向从屏幕内部改为向上。
4. 将x、y、z坐标按照比例进行缩放,以将坐标值映射到UE5中使用的坐标系的尺度范围内。
需要注意的是,由于Mediapipe和UE5中的坐标系不同,转换过程中可能会出现一些误差,需要根据实际情况进行调整。
相关问题
mediapipe 坐标转换
MediaPipe是一个跨平台的开源框架,可以方便地实现许多计算机视觉和机器学习任务。关于坐标转换,MediaPipe提供了一些实用的工具类,可以帮助我们在不同的坐标系之间进行转换。
以下是一些常用的坐标转换工具类:
1. `mediapipe::NormalizedLandmark`:表示一个归一化的关键点,其坐标范围在[0,1]之间。可以通过`LocationDataToNormalizedLandmark`函数将其他坐标系的点转换为归一化关键点。
2. `mediapipe::Landmark`:表示一个像素坐标系下的关键点,其坐标值为整数。可以通过`NormalizedLandmarkToLandmark`函数将归一化关键点转换为像素坐标系下的关键点。
3. `mediapipe::NormalizedRect`:表示一个归一化的矩形,其坐标范围在[0,1]之间。可以通过`LocationDataToNormalizedRect`函数将其他坐标系的矩形转换为归一化矩形。
4. `mediapipe::Rect`:表示一个像素坐标系下的矩形,其坐标值为整数。可以通过`NormalizedRectToRect`函数将归一化矩形转换为像素坐标系下的矩形。
5. `mediapipe::NormalizedLandmarkList`:表示一组归一化关键点。可以通过`LocationDataToNormalizedLandmarkList`函数将其他坐标系的关键点列表转换为归一化关键点列表。
6. `mediapipe::LandmarkList`:表示一组像素坐标系下的关键点。可以通过`NormalizedLandmarkListToLandmarkList`函数将归一化关键点列表转换为像素坐标系下的关键点列表。
以上这些工具类可以在MediaPipe的官方文档中找到详细的说明和使用示例。
mediapipe坐标转换ue坐标
MediaPipe 和 Unreal Engine 使用的坐标系不同,因此需要进行坐标转换。具体方法如下:
1. MediaPipe 坐标系是以左上角为原点的坐标系,横轴向右延伸,纵轴向下延伸,单位为像素。
2. Unreal Engine 坐标系是以中心点为原点的坐标系,横轴向右延伸,纵轴向上延伸,单位为厘米。
因此,需要进行以下步骤:
1. 将 MediaPipe 坐标系的原点从左上角移动到中心点。方法是将 x 坐标减去图像宽度的一半,将 y 坐标减去图像高度的一半。
2. 将 MediaPipe 坐标系的纵轴方向翻转。方法是将 y 坐标乘以 -1。
3. 将 MediaPipe 坐标系的单位由像素转换为厘米。方法是将 x 和 y 坐标分别除以一个缩放因子,该缩放因子可以通过实际测试得到,一般为 30 或者 40。
以下是一个示例代码,其中 `mp_x` 和 `mp_y` 是 MediaPipe 坐标系的坐标值,`img_width` 和 `img_height` 是图像的宽度和高度,`scale_factor` 是缩放因子,`ue_x` 和 `ue_y` 是转换后的 Unreal Engine 坐标系的坐标值。
```c++
float scale_factor = 30.0f; // or 40.0f
float ue_x = (mp_x - img_width / 2) / scale_factor;
float ue_y = -(mp_y - img_height / 2) / scale_factor;
```
阅读全文