Slicing Through 3D Object Models with HALCON

HALCON offers functions for the full 3D comparison of a 3D point cloud against a model. In many cases, however, it is desired to just measure 2D geometric features across certain cross-sections of the object. For that, HALCON offers an operator that intersects a plane with a point cloud (See Figure 1):

intersect_plane_object_model_3d (OM3DScene, PlanePose, OM3DSlice)

The plane is defined by its position and orientation in scene coordinates (PlanePose). The result is a 3D object model which you can convert into 2D contours (XLDs) with an auxiliary procedure provided with the example intersect_plane_object_model_3d.hdev:

project_object_model_3d_lines_to_contour_xld (XLD, PlanePose, OM3DSlice)

Once the slices have been converted to 2D contours (See Figure 2), you can use all of HALCON’s powerful functions for contour processing and 2D measurements for further analysis.

This serves as a good example of how HALCON’s functions can be combined across categories to solve advanced applications.

Figure 1: Plane intersecting a 3D point cloud

Figure 2: 2D contours from intersecting plane