激光三角相机开发

前几天刚完成的线激光三角相机开发,简单实现了简单的线扫功能。

总结

使用鲍威尔激光头(号称是可以产生极细激光线,结果感觉效果和40左右的激光没啥区别,凑合用吧),海康30万像素相机(取像满帧率200),镜头25mm,标定使用halcon标定,计算用c++,标定完成后不依赖halcon可直接运行。
激光三角相机开发
生成单条纹点云图如下:
激光三角相机开发
以下将通过取像,标定,查找激光线,计算单点四步进行讲解:

取像
刚开用了延时取像,结果抓取图像速度太慢(12ms一张图),使用回调函数取像正常帧率。但是这里就有了一个疑问,如果将回调函数封装成dll,当想要修改回调函数中数据处理过程时岂不是都要改源码?有没有很好一种方式,能有利于开发者直接修改回调函数中的程序,编程小白请求答疑。
标定
halcon标定:
1、标定相机内外参数
2、标定光平面
查找激光线
在找激光线的过程中仅使用了阈值分割,遍历每个像素值,找到图像每列上的像素点,未使用滤波、剔除异常点、膨胀等图形处理操作。
计算单点
通过内参校正当前像素点的畸变,通过外参找到此点在空间中的位置,通过投影得到世界坐标系中的位置,根据世界坐标系与光平面关系求得在光平面坐标系中的位置,输出结果,得到输出的点云图。

相关文章: