发现关于halcon2d的资料,网络上非常多,但是关于halcon3d的相关资料还不是很多,
经过测试halcon提供的例程,结合了一些网上的资料,总结了一些halcon3d的用法,
自己学习记录一下。
读取点云,生成深度图,生成点云
一般来说,市面上常见的激光线扫相机(比如LMI Keyence DeepVision)调用对应的SDK来获取采集的点云数据,无论注册回调函数来接受点云数据还是说阻态函数接收点云数据,最终基本都是获取到数据指针,大部分可能是int类型的指针,里面是一个数组,我们拿到这个数据指针之后需要做的就是将指针里面的数据拷贝出来,或根据数据的长度(一般是图像的长乘上宽)直接生成深度图;
一般我们在项目中直接拿指针生成深度图,调用halcon的算子gen_image_1
用于生成深度图,此时需要和相机供应商沟通此时数据传输过来的格式,一般是int数据类型
第一种方式:调用以上代码,根据3D相机上设置的XY方向上的分辨率数值来创建基于XY方向的图像,并和拿到的深度图Z来生成一个点云对象。
第二种方式:将若干个点的xyz坐标数组来生成一个点云
写入点云
在生成了一个点云对象之后我们考虑的就是如何将点云数据写入到硬盘,以及如何从硬盘中读取点云对象。
这些功能halcon都提供的相关的算子来实现;
在写入点云中,halcon提供算子
在这个算子中,支持的存储格式为
而读取点云对象的算子和上面类似