3D相机适配
跳到导航
跳到搜索
引用Camera3D.dll,在工程中写一个类:MainIOObject : Camera3DIOObject,参考以下流程进行适配。
1.3D相机适配参数含义
- 点云数据结构
public struct CameraPoint3D
{
public float X;//点云x
public float Y;//点云y
public float Z;//点云z
public byte intensity; // 强度,0-255
public byte r, g, b; // rgb色彩,0-255
public float depth;//深度
}
- 色彩模式
public enum Camera3dCloudColorMode
{
Rgb = 0,
Depth = 1,
Intensity = 2,
Solid = 3,
}
2.适配流程
//命名空间为3D相机名称
namespace XXX
{
//继承3D相机父类
public class MainIOObject : Camera3DIOObject
{
//启动方法,若有参数则加入参数
public void Start()
{
Console.WriteLine("Starting XXX");
//点云显示模式
CloudColorMode = Camera3dCloudColorMode.Intensity;
new Thread(() =>
{
while (true)
{
try
{
Loop();
}
catch (Exception ex)
{
Console.WriteLine($"msg:{ex.Message}, stack:{ex.StackTrace}");
Thread.Sleep(1000);
}
}
}).Start();
}
private void Loop()
{
//解析相机数据,赋值给cachedPoints
//.....解析部分.....
//帧号+1,output数据
frame += 1;
scanC += 1;
Output();
}
}
}
启动相机
在Medulla目录下startup.iocmd中增加以下代码
//io load xxx.dll时,会寻找dll里面class MainIOObject并实例化相应的对象赋值给等号左侧的3dcam 3dcam = io load plugins/xxx.dll ////Start对应Start函数,传的参数放在后面,空格隔开 3dcam Start