MPSizector传感器输出数据M3dm转换为Halcon可识别的格式
m3dm数据格式转为halcon可识别数据格式:
halcon的算子丰富多样功能齐全且使用方便。其可识别的数据格式比较多,如 'om3', 'dxf', 'off', 'ply', 'obj', 'stl'等
附上m3dm格式数据转为'om3'数据格式代码(仅供参考)
1.关于引用
2. MP3DFrameManaged Buffer3DLast;
Buffer3DLast为3D相机中的 MP3DFrameManaged的数据结构
3.代码
private bool M3dmToOm3(string FileName) //m3dm数据格式转为halcon可识别的om3数据格式
{
float[] DataX = new float[Buffer3DLast.SensorWidth * Buffer3DLast.SensorHeight];
float[] DataY = new float[DataX.Length];
float[] DataZ = new float[DataX.Length];
for (int i = 0; i < Buffer3DLast.SensorWidth * Buffer3DLast.SensorHeight; i++)
{
if (Buffer3DLast.Data[i].Mask == 0)
{
DataX[i] = Buffer3DLast.Data[i].X;
DataY[i] = Buffer3DLast.Data[i].Y;
DataZ[i] = Buffer3DLast.Data[i].Z;
}
else
{
DataX[i] = float.NaN;
DataY[i] = float.NaN;
DataZ[i] = float.NaN;
}
}
HalconDotNet.HOperatorSet.GenObjectModel3dFromPoints(new HTuple(DataX), new HTuple(DataY), new HTuple(DataZ),
out HTuple objcectModel3d);
HalconDotNet.HOperatorSet.WriteObjectModel3d(objcectModel3d, "om3", FileName, new HTuple(), new HTuple());
return true;
}