如果没有箱子的 CAD 网格模型,可以采用以下方法将场景缩减到箱子内的物体:
smallest_bounding_box_object_model_3d (Scene, 'oriented', BoundingBoxPose, \ Length1, Length2, Length3) gen_box_object_model_3d (BoundingBoxPose, Length1, Length2, Length3, BoundingBox)
pose_invert (BoundingBoxPose, PoseInverted) rigid_trans_object_model_3d (Scene, PoseInverted, SceneRigidTrans)
object_model_3d_to_xyz (X, Y, Z, SceneRigidTrans, 'from_xyz_map', [], []) threshold (X, RegionX, -Length1 / 2 * 0.85, Length1 / 2 * 0.85) threshold (Y, RegionY, -Length2 / 2 * 0.85, Length2 / 2 * 0.85)
或者,您也可以使用 select_points_object_model_3d 对 X 坐标和 Y 坐标应用阈值。在这种情况下,可以跳过下一步。
intersection (RegionX, RegionY, RegionIntersection) intersection (RegionIntersection, SceneDomain, ROI) reduce_object_model_3d_by_view (ROI, Scene, 'xyz_mapping', [], SceneReduced)