面结构光拍摄生成的点云模型,往往相对系统坐标系是有角度的。首先讲一下调平的目的: 1.为接下来的预处理切除背景面做准备 3.不做调平,后续处理会很麻烦,因为不清楚坐标系在平台的为位置 2.对于无序抓取项目,平台相对相机可能是有角度的,将抓取平台调整到与相机平行,可以以Z轴方向,从高到低获取抓取物点云。处理速度更快,且干扰更少。 常见的调平手法有三种。
一.拟合平面方式
该方法适合平面点云模型的调平处理回顾一下上一篇预处理去噪,讲了去除多余噪声,并将点云模型拆分成x,y,z坐标组成的三个集合。应用X,Y,Z三个坐标集合求出平面的质心坐标以及法向量,并检验平面的平面度是否合格。(这个知识点在我的博客’基于Halcon的结构光三维重建’中有讲解通过质心坐标以及法向量拟合平面,得到平面位姿
二.非平面或不规则三维物体的调平
沿着物体主轴,根据密度最大的方向作为标准轴,调正一个三维物体这个方法与上文拟合平面的方法最大的区别:需要必须将姿态逆变换(pose_invert) 调整姿态后的效果图
三.规则的三维物体的姿态调正
对于外形规整的零件,可以绘制最小外接箱体来代替立体物体的姿态。 与moment方法相同,要对外界箱体做姿态翻转’pose_invert’,这个翻转类似于矩阵的求逆。 最小面积的外界箱体调平效果 与坐标轴重合的最小外界箱体调平效果 画外接箱体的操作对比Halcon二维获取外接矩形套路。
* read_image(Image
, 'fabrik')
* threshold
(Image
, Regions
, 155, 255)
* connection(Regions
, ConnectedRegions
)
* select_shape_std(ConnectedRegions
, SelectedRegions
, 'max_area', 70)
* smallest_rectangle1(SelectedRegions
, Row1
, Column1
, Row2
, Column2
)
* dev_set_color('green')
* dev_set_draw('margin')
* dev_display(SelectedRegions
)
* gen_rectangle1(Rectangle
, Row1
, Column1
, Row2
, Column2
)
四.调平处理
1.调平有两种方式: 1)坐标系平移到点云模型的表面 1)直接将点云模型平移到坐标系处
在图中可看到坐标系 Z轴是面对平台向里的,为了方便观察,可将点云模型沿y轴旋转180, 沿y轴负方向平移200个单位进行校正。
六.总结
无论是拟合平面、非规则物体调平、规则三维物体调平核心思想都是先求出当前三维空间物体的姿态,之后对姿态(Pose)翻转,使其与坐标轴重合。