我使用Kinect SDK通过Kinect V2捕获了一组保存的数据 . 数据采用RGB图像,深度图像和彩色点 Cloud 的形式 . 我用C#这个 .
现在我想仅使用保存的颜色和深度图像分别创建点 Cloud ,但是在Matlab中 .
pcfromkinect Matlab函数需要一个实时Kinect . 但我想生成没有连接Kinect的点 Cloud .
请问任何想法 .
我发现了以下相关问题,但没有一个有明确的线索 .
我使用Kinect SDK通过Kinect V2捕获了一组保存的数据 . 数据采用RGB图像,深度图像和彩色点 Cloud 的形式 . 我用C#这个 .
现在我想仅使用保存的颜色和深度图像分别创建点 Cloud ,但是在Matlab中 .
pcfromkinect Matlab函数需要一个实时Kinect . 但我想生成没有连接Kinect的点 Cloud .
请问任何想法 .
我发现了以下相关问题,但没有一个有明确的线索 .
1 回答
我已经为我的申请做了同样的事情 . 所以这里简要介绍一下我做了什么:
Save the data (C#/Kinect SDK):
如何保存深度图片:
将缓冲区写入文件:
为了快速节省考虑一个环形缓冲区 .
ReadIn the data (Matlab)
如何获得z_data:
如何获取XYZ数据:
为此,请考虑将uv坐标转换为xyz(formula)的针孔模型公式 .
要获得cameramatrix K,您需要校准相机(matlab calibration app)或从Kinect-SDK(
var cI= kinectSensor.CoordinateMapper.GetDepthCameraIntrinsics();
)获取相机参数 .coordinateMapper with the SDK :
从Kinect SDK直接获取XYZ的方法非常简单 . 为此,link可以帮助你 . 只需通过kinect sdk获取缓冲区并将rawData与
coordinateMapper
转换为xyz . 然后将其保存到csv或txt,因此很容易在matlab中读取 .