我正在使用kinect v2,我想记录脸部特征的5个点(即眼睛,鼻子和嘴巴的位置),但我注意到我得到的点数是颜色空间坐标(2D)而不是相机空间坐标(3D)。 我尝试使用以下C#代码将点从2D映射到3D:
_sensor.CoordinateMapper.MapColorFrameToCameraSpace(depthFrameArray, cameraSpacePoints);
foreach (PointF pointF in result.FacePointsInColorSpace.Values)
{
CameraSpacePoint csp;
long colorIndex = (long)((pointF.Y + 0.5f) * 1920 + (pointF.X + 0.5f));
csp.X = cameraSpacePoints[colorIndex].X;
csp.Y = cameraSpacePoints[colorIndex].Y;
csp.Z = cameraSpacePoints[colorIndex].Z;
}
其中depthFrameArray是排列在数组中的深度框架。 该代码对我不起作用。你知道怎么做吗? 感谢。