2017-05-26 120 views
1

我使用HALCON来做3D应用程序,目前我使用xyz_to_object_model_3d来创建3D模型,而Z图像来自3D传感器。 现实中的项目的样子: Modle picture1修复HALCON中3D模型的间隙

但在HALCON 3D模型的样子: 3D model in HALCON

似乎有这种模式,在HALCON任何运营商来解决这种差距的2个平面之间的差距?谢谢。

回答

1

如果您正在寻找解决方案来自动纠正两个平面之间的任何偏移或手动完成,这并非100%清楚。

如果两平面之间没有角度偏差,即它们平行,解决问题的最简单方法是将偏移应用到对象模型的z坐标。

我会将此偏移校正通过进行侧向平移创建对象模型后:

hom_mat3d_identity(HomMat3D) 
hom_mat3d_translate(HomMat3D, 0, 0, 42, HomMat3DTranslate) 
affine_trans_object_model_3d(ObjectModel3D, HomMat3DTranslate, ObjectModel3DAffineTrans) 

所述的自动方法将包括使用过程register_object_model_3d_pair()。要利用这一点,你需要分离你想要的两个飞机的点。您可以通过利用您想要的程序select_points_object_model_3d()来实现此目的,通过将z范围限制为例如+ - 1个单位。

+0

其实,我是HALCON 3D应用的新手,现在我对此有所了解。如您所知,HALCON使用xyz图像来创建3D模型,Z图像中的某些像素会存在无效值,例如0,并且我会在3D模型中造成间隙。我使用名为“inpainting_aniso”的操作符来固定Z图像中的0,然后3D模型中的差距应该更小或完全消失。谢谢。 – Tommy