用Halcon做三维测量的一些情况

文章原文:Halcon三维测量以及demo
1 Halcon三维测量思路
(1) Halcon三维测量是通过将世界坐标的深度信息转化为二维图像上对应的深度信息,进而通过灰度图像的相应的分割,提取算法进行处理。该算法在大量的点云融合后,空间信息比较复杂的情况无法处理。
(2) 将三维坐标的X,Y,z三个点分别生成三幅图像,通过 xyz_to_object_model_3d 生成3D模型,通过visualize_object_model_3d 可视化显示,xyz_to_object_model_3d函数以及包含空间点的所有三维信息,visualize_object_model_3d实际上只是调用了Opengl进行显示而已,xyz_to_object_model_3d输入参数为三维渲染的视角,但是进行3D渲染以后的图像如何处理?

3d点云可视化化demo
在这里插入图片描述
3d处理demo
Gocator处理

参考原文:机器视觉学习系列一:线结构光三维测量重建
项目背景:
项目用于工业零件的公差检测,主要是针对缝隙和高低差两种公差,具体应用领域如汽车、飞机的蒙皮对接检测,当然,对于别的公差改变一些代码,也是可以做到的;
技术方案:
采用线结构光进行三维重建,用三维点云数据进行相应公差计算;
选用硬件:basler相机一只,stackyale激光器一只,精密一维移动平台一台(记得好像是北京的路科锐威的),棋盘格标定版一个(好像是深圳的一家)
软件:opencv1.0 + c++ + VS2003
具体步骤:
1.硬件外形设计,采用激光器垂直照射,相机倾斜的外形布局;
2.系统标定,包括相机的内、外参数标定,激光器的结构参数标定,主要是光平面方程;
a、相机标定,经典标定方法是张正友的和TSAI,我选的是Tsai,具体标定步骤按照Tsai论文中来,获取二维和三维坐标矩阵后,直接用opencv搞定;
b、激光器标定,借助移动平台和棋盘格,采集几幅带有线结构光的棋盘格图像,对光条进行处理,包括二值化、形态学、去噪,细化(骨架化),获取线结构光光条的
二维坐标和三维坐标,三维坐标的获取类似相机标定的做法,拟合平面方程;
3,三维重建,采集一幅测量目标的线结构光图像,经过光条细化后,基于系统参数和光条二维坐标,获取光条对应的三维坐标;
4,根据三维点云坐标,进行相应公差特征计算;
创新点:
首次采用二次标定算法。系统标定好后,使用一段时间,测量精度会下降,或者首次(或连续多次)标定均达不到精度要求,
这时不知道你们会怎么办?我们的做法是二次标定,即使用该系统三维测量一个标准件,通过测量误差和实际误差的不同,进行优化,把系统参数调整到最优,
优化理论基于非线性最小二乘算法,目标函数主要基于光平面方程推导而来,实验证明二次优化很有效果。
下面是当时设计的产品,现在看来真是丑陋啊,不过测量精度还是不错的,达到0.03mm,达到了需要公司的要求了。

Halcon-依据点关系计算物体三维位姿

你可能感兴趣的:(Halcon学习记录)