当前位置: 首页 > article >正文

Halcon 3D分割,筛选,矫正

文章目录

  • 形成单独的连通域分割
    • connection_object_model_3d 确定 3D 物体模型的连接组件
  • 筛选
    • get_object_model_3d_params 获取3D物体的属性
    • select_object_model_3d 根据全局特征从 3D 物体模型阵列中选择 3D 物体模型
  • 仿射运算
    • moments_object_model_3d 计算三维物体模型的平均值或二阶中心矩(变换到原始坐标系下的主轴x,y,z)
    • pose_invert 反转三维姿势元组中的每个姿势。
    • rigid_trans_object_model_3d 将刚性三维变换应用于三维物体模型。
    • pose_to_hom_mat3d 将3D姿态转换为同质变换矩阵。
    • affine_trans_object_model_3d 将任意仿射 3D 变换应用于 3D 物体模型。
  • 组合成一个整体
    • triangulate_object_model_3d 形成一个三角形平面
    • smallest_bounding_box_object_model_3d 计算三维物体模型点周围的最小边界框

形成单独的连通域分割

connection_object_model_3d 确定 3D 物体模型的连接组件

connection_object_model_3d( : : ObjectModel3D, Feature, Value : ObjectModel3DConnected)
ObjectModel3D (输入控制)
    类型: 整数数组
    描述: 3D对象模型的句柄。
    解释:
        这个参数是一个整数数组,表示一个或多个3D对象模型的句柄。通过这些句柄,可以访问和操作这些3D对象模型。
Feature (输入控制)
    类型: 字符串数组
    描述: 用于计算连通分量的属性。
    默认值: 'distance_3d'
    可选值:
        'angle': 使用角度作为连通性判断的属性。
        'distance_3d': 使用三维距离作为连通性判断的属性。
        'distance_mapping': 使用距离映射作为连通性判断的属性。
        'lines': 使用线条作为连通性判断的属性。
        'mesh': 使用网格作为连通性判断的属性。
    解释:
        这个参数指定用于计算连通分量的属性。不同的属性会影响连通分量的计算方式。
Value (输入控制)
    类型: 实数或整数数组
    描述: 两个连通分量之间的最大距离值。
    默认值: 1.0
    建议值: 1.0, 1.1, 1.5, 10.0, 100.0
    解释:
        这个参数指定两个连通分量之间的最大距离值。如果两个分量之间的距离小于或等于这个值,则认为它们是连通的。
ObjectModel3DConnected (输出控制)
    类型: 整数数组
    描述: 表示连通分量的3D对象模型的句柄。
    解释:
        这个参数是一个整数数组,表示生成的连通分量的3D对象模型的句柄。每个句柄对应一个连通分量,可以通过这些句柄访问和操作这些连通分量。

筛选

get_object_model_3d_params 获取3D物体的属性

get_object_model_3d_params( : : ObjectModel3D, GenParamName : GenParamValue)
ObjectModel3D (输入控制)
    类型: 整数数组
    描述: 3D对象模型的句柄。
    解释:
        这个参数是一个整数数组,表示一个或多个3D对象模型的句柄。通过这些句柄,可以访问和操作这些3D对象模型。

GenParamName (输入控制)
    类型: 字符串数组
    描述: 查询的3D对象模型的通用属性的名称。
    默认值: 'num_points'
    可选值:
        'blue': 蓝色通道的值。
        'bounding_box1': 轴对齐的边界框。
        'center': 对象的中心点。
        'diameter_axis_aligned_bounding_box': 轴对齐边界框的直径。
        'extended_attribute_names': 扩展属性的名称。
        'green': 绿色通道的值。
        'has_distance_computation_data': 是否包含距离计算数据。
        'has_extended_attribute': 是否包含扩展属性。
        'has_lines': 是否包含线条。
        'has_point_normals': 是否包含点法线。
        'has_points': 是否包含点。
        'has_polygons': 是否包含多边形。
        'has_primitive_data': 是否包含原始数据。
        'has_primitive_rms': 是否包含原始数据的均方根误差。
        'has_segmentation_data': 是否包含分割数据。
        'has_shape_based_matching_3d_data': 是否包含基于形状的3D匹配数据。
        'has_surface_based_matching_data': 是否包含基于表面的匹配数据。
        'has_triangles': 是否包含三角形。
        'has_xyz_mapping': 是否包含XYZ映射。
        'lines': 线条数据。
        'mapping_col': 映射列。
        'mapping_row': 映射行。
        'neighbor_distance': 邻居距离。
        'num_extended_attribute': 扩展属性的数量。
        'num_lines': 线条的数量。
        'num_neighbors': 邻居的数量。
        'num_neighbors_fast': 快速计算的邻居数量。
        'num_points': 点的数量。
        'num_polygons': 多边形的数量。
        'num_primitive_parameter_extension': 原始参数扩展的数量。
        'num_triangles': 三角形的数量。
        'point_coord_x': 点的X坐标。
        'point_coord_y': 点的Y坐标。
        'point_coord_z': 点的Z坐标。
        'point_normal_x': 点法线的X分量。
        'point_normal_y': 点法线的Y分量。
        'point_normal_z': 点法线的Z分量。
        'polygons': 多边形数据。
        'primitive_parameter': 原始参数。
        'primitive_parameter_extension': 原始参数扩展。
        'primitive_parameter_pose': 原始参数姿态。
        'primitive_pose': 原始姿态。
        'primitive_rms': 原始数据的均方根误差。
        'primitive_type': 原始类型。
        'red': 红色通道的值。
        'reference_point': 参考点。
        'score': 分数。
        'triangles': 三角形数据。
    解释:
        这个参数指定要查询的3D对象模型的通用属性的名称。通过这些名称,可以获取相应的属性值。
        
GenParamValue (输出控制)
    类型: 字符串/整数/实数数组
    描述: 通用参数的值。
    解释:
        这个参数是一个数组,包含查询的通用属性的值。根据查询的属性名称,返回相应的字符串、整数或实数值。

select_object_model_3d 根据全局特征从 3D 物体模型阵列中选择 3D 物体模型

select_object_model_3d( : : ObjectModel3D, Feature, Operation, MinValue, MaxValue : ObjectModel3DSelected)
### ObjectModel3D (输入控制)
- **类型**: 整数数组
- **描述**: 可供选择的3D对象模型的句柄。
- **解释**:
  - 这个参数是一个整数数组,表示可供选择的3D对象模型的句柄。通过这些句柄,可以选择满足特定条件的3D对象模型。

### Feature (输入控制)
- **类型**: 字符串数组
- **描述**: 要进行测试的特征列表。
- **默认值**: 'has_triangles'
- **可选值**:
  - 'area': 面积。
  - 'central_moment_2_x': X方向的二阶中心矩。
  - 'central_moment_2_xy': XY平面的二阶中心矩。
  - 'central_moment_2_xz': XZ平面的二阶中心矩。
  - 'central_moment_2_y': Y方向的二阶中心矩。
  - 'central_moment_2_yz': YZ平面的二阶中心矩。
  - 'central_moment_2_z': Z方向的二阶中心矩。
  - 'diameter_axis_aligned_bounding_box': 轴对齐边界框的直径。
  - 'diameter_bounding_box': 边界框的直径。
  - 'diameter_object': 对象的直径。
  - 'has_faces': 是否包含面。
  - 'has_lines': 是否包含线条。
  - 'has_point_normals': 是否包含点法线。
  - 'has_primitive_data': 是否包含原始数据。
  - 'has_segmentation_data': 是否包含分割数据。
  - 'has_shape_based_matching_3d_data': 是否包含基于形状的3D匹配数据。
  - 'has_surface_based_matching_data': 是否包含基于表面的匹配数据。
  - 'has_triangles': 是否包含三角形。
  - 'has_xyz_mapping': 是否包含XYZ映射。
  - 'mean_points_x': X方向的平均点坐标。
  - 'mean_points_y': Y方向的平均点坐标。
  - 'mean_points_z': Z方向的平均点坐标。
  - 'num_faces': 面的数量。
  - 'num_lines': 线条的数量。
  - 'num_points': 点的数量。
  - 'num_triangles': 三角形的数量。
  - 'volume': 体积。
  - 'volume_axis_aligned_bounding_box': 轴对齐边界框的体积。
- **解释**:
  - 这个参数指定要进行测试的特征列表。通过这些特征,可以对3D对象模型进行筛选。

### Operation (输入控制)
- **类型**: 字符串
- **描述**: 用于组合特征的逻辑操作。
- **默认值**: 'and'
- **可选值**:
  - 'and': 逻辑与操作。
  - 'or': 逻辑或操作。
- **解释**:
  - 这个参数指定用于组合特征的逻辑操作。通过这个操作,可以定义多个特征之间的组合方式。

### MinValue (输入控制)
- **类型**: 实数/整数/字符串数组
- **描述**: 给定特征的最小值。
- **默认值**: 1
- **建议值**: 0, 1, 100, 0.1, 'true', 'false', 'min'
- **解释**:
  - 这个参数指定给定特征的最小值。通过这个值,可以筛选出满足最小值条件的3D对象模型。

### MaxValue (输入控制)
- **类型**: 实数/整数/字符串数组
- **描述**: 给定特征的最大值。
- **默认值**: 1
- **建议值**: 0, 1, 10, 100, 0.1, 'true', 'false', 'max'
- **解释**:
  - 这个参数指定给定特征的最大值。通过这个值,可以筛选出满足最大值条件的3D对象模型。

### ObjectModel3DSelected (输出控制)
- **类型**: 整数数组
- **描述**: 满足给定条件的ObjectModel3D的子集。
- **解释**:
  - 这个参数是一个整数数组,表示满足给定条件的3D对象模型的句柄。通过这些句柄,可以访问和操作满足条件的3D对象模型。

仿射运算

moments_object_model_3d 计算三维物体模型的平均值或二阶中心矩(变换到原始坐标系下的主轴x,y,z)

moments_object_model_3d( : : ObjectModel3D, MomentsToCalculate : Moments)
### ObjectModel3D (输入控制)
- **类型**: 整数数组
- **描述**: 3D对象模型的句柄。
- **解释**:
  - 这个参数是一个整数数组,表示一个或多个3D对象模型的句柄。通过这些句柄,可以访问和操作这些3D对象模型。

### MomentsToCalculate (输入控制)
- **类型**: 字符串数组
- **描述**: 要计算的矩。
- **默认值**: 'mean_points'
- **可选值**:
  - 'central_moment_2_points': 二阶中心矩。
  - 'mean_points': 平均点。
  - 'principal_axes': 主轴。
- **解释**:
  - 这个参数指定要计算的矩。通过这些矩,可以获取3D对象模型的统计信息。

### Moments (输出控制)
- **类型**: 实数数组
- **描述**: 计算得到的矩。
- **元素数量**: Moments 的元素数量等于 ObjectModel3D 的元素数量。
- **解释**:
  - 这个参数是一个实数数组,包含计算得到的矩。每个矩对应一个3D对象模型。

pose_invert 反转三维姿势元组中的每个姿势。

pose_invert( : : Pose : PoseInvert)
### Pose (输入控制)
- **类型**: 实数/整数数组
- **描述**: 3D姿态的元组。
- **解释**:
  - 这个参数是一个包含3D姿态的元组。每个姿态通常由7个元素组成,前三个元素表示平移(x, y, z),接下来的三个元素表示旋转(欧拉角或四元数),最后一个元素是比例因子。

### PoseInvert (输出控制)
- **类型**: 实数/整数数组
- **描述**: 反转的3D姿态的元组。
- **解释**:
  - 这个参数是一个包含反转的3D姿态的元组。每个反转的姿态对应输入的姿态,表示其逆变换。

rigid_trans_object_model_3d 将刚性三维变换应用于三维物体模型。

rigid_trans_object_model_3d( : : ObjectModel3D, Pose : ObjectModel3DRigidTrans)
### ObjectModel3D (输入控制)
- **类型**: 整数数组
- **描述**: 3D对象模型的句柄。
- **解释**:
  - 这个参数是一个整数数组,表示一个或多个3D对象模型的句柄。通过这些句柄,可以访问和操作这些3D对象模型。

### Pose (输入控制)
- **类型**: 实数/整数数组
- **描述**: 姿态。
- **解释**:
  - 这个参数是一个包含姿态的数组。每个姿态通常由7个元素组成,前三个元素表示平移(x, y, z),接下来的三个元素表示旋转(欧拉角或四元数),最后一个元素是比例因子。

### ObjectModel3DRigidTrans (输出控制)
- **类型**: 整数数组
- **描述**: 变换后的3D对象模型的句柄。
- **解释**:
  - 这个参数是一个整数数组,表示变换后的3D对象模型的句柄。通过这些句柄,可以访问和操作变换后的3D对象模型。

pose_to_hom_mat3d 将3D姿态转换为同质变换矩阵。

pose_to_hom_mat3d( : : Pose : HomMat3D)
### Pose (输入控制)
- **类型**: 实数/整数
- **描述**: 3D姿态。
- **元素数量**: 7
- **解释**:
  - 这个参数是一个包含7个元素的数组,表示一个3D姿态。前三个元素表示平移(x, y, z),接下来的三个元素表示旋转(欧拉角或四元数),最后一个元素是比例因子。

### HomMat3D (输出控制)
- **类型**: 实数
- **描述**: 等效的齐次变换矩阵。
- **解释**:
  - 这个参数是一个4x4的齐次变换矩阵,表示与输入的3D姿态等效的变换。通过这个矩阵,可以对3D对象进行相应的变换操作。

affine_trans_object_model_3d 将任意仿射 3D 变换应用于 3D 物体模型。

affine_trans_object_model_3d( : : ObjectModel3D, HomMat3D : ObjectModel3DAffineTrans)
### ObjectModel3D (输入控制)
- **类型**: 整数数组
- **描述**: 3D对象模型的句柄。
- **解释**:
  - 这个参数是一个整数数组,表示一个或多个3D对象模型的句柄。通过这些句柄,可以访问和操作这些3D对象模型。

### HomMat3D (输入控制)
- **类型**: 实数数组
- **描述**: 变换矩阵。
- **解释**:
  - 这个参数是一个包含变换矩阵的数组。每个变换矩阵是一个4x4的齐次变换矩阵,用于对3D对象模型进行变换操作。

### ObjectModel3DAffineTrans (输出控制)
- **类型**: 整数数组
- **描述**: 变换后的3D对象模型的句柄。
- **解释**:
  - 这个参数是一个整数数组,表示变换后的3D对象模型的句柄。通过这些句柄,可以访问和操作变换后的3D对象模型。

组合成一个整体

triangulate_object_model_3d 形成一个三角形平面

triangulate_object_model_3d( : : ObjectModel3D, Method, GenParamName, GenParamValue : TriangulatedObjectModel3D, Information)
### ObjectModel3D (输入控制)
- **类型**: 整数数组
- **描述**: 包含3D点数据的3D对象模型的句柄。
- **解释**:
  - 这个参数是一个整数数组,表示包含3D点数据的3D对象模型的句柄。通过这些句柄,可以访问和操作这些3D对象模型。

### Method (输入控制)
- **类型**: 字符串
- **描述**: 三角剖分方法。
- **默认值**: 'greedy'
- **可选值**:
  - 'greedy': 贪婪方法。
  - 'implicit': 隐式方法。
  - 'polygon_triangulation': 多边形三角剖分方法。
  - 'xyz_mapping': XYZ映射方法。
- **解释**:
  - 这个参数指定用于三角剖分的方法。不同的方法会影响三角剖分的计算方式。

### GenParamName (输入控制)
- **类型**: 字符串数组
- **描述**: 三角剖分通用参数的名称。
- **默认值**: []
- **可选值**:
  - 'greedy_fix_flips': 贪婪方法修复翻转。
  - 'greedy_hole_filling': 贪婪方法填充孔洞。
  - 'greedy_kNN': 贪婪方法k近邻。
  - 'greedy_mesh_dilation': 贪婪方法网格膨胀。
  - 'greedy_mesh_erosion': 贪婪方法网格腐蚀。
  - 'greedy_neigh_latitude_tol': 贪婪方法邻居纬度容差。
  - 'greedy_neigh_orient_consistent': 贪婪方法邻居方向一致性。
  - 'greedy_neigh_orient_tol': 贪婪方法邻居方向容差。
  - 'greedy_neigh_vertical_tol': 贪婪方法邻居垂直容差。
  - 'greedy_prefetch_neighbors': 贪婪方法预取邻居。
  - 'greedy_radius_type': 贪婪方法半径类型。
  - 'greedy_radius_value': 贪婪方法半径值。
  - 'greedy_remove_small_surfaces': 贪婪方法移除小表面。
  - 'greedy_suppress_timeout_error': 贪婪方法抑制超时错误。
  - 'greedy_timeout': 贪婪方法超时。
  - 'implicit_min_num_samples': 隐式方法最小样本数。
  - 'implicit_octree_depth': 隐式方法八叉树深度。
  - 'implicit_solver_depth': 隐式方法求解器深度。
  - 'information': 信息。
  - 'xyz_mapping_max_area_holes': XYZ映射方法最大面积孔洞。
- **解释**:
  - 这个参数指定三角剖分通用参数的名称。通过这些参数,可以进一步控制三角剖分的过程。

### GenParamValue (输入控制)
- **类型**: 实数/整数/字符串数组
- **描述**: 三角剖分通用参数的值。
- **默认值**: []
- **建议值**: 6, 8, 12, 'true', 'false', 'auto', 'fixed', 'z_factor', 'verbose', 'num_triangles'
- **解释**:
  - 这个参数指定三角剖分通用参数的值。通过这些值,可以进一步控制三角剖分的过程。

### TriangulatedObjectModel3D (输出控制)
- **类型**: 整数数组
- **描述**: 包含三角剖分表面的3D对象模型的句柄。
- **解释**:
  - 这个参数是一个整数数组,表示包含三角剖分表面的3D对象模型的句柄。通过这些句柄,可以访问和操作三角剖分后的3D对象模型。

### Information (输出控制)
- **类型**: 整数/字符串数组
- **描述**: 三角剖分过程的附加信息。
- **解释**:
  - 这个参数是一个包含三角剖分过程附加信息的数组。通过这些信息,可以了解三角剖分过程的详细情况。

smallest_bounding_box_object_model_3d 计算三维物体模型点周围的最小边界框

smallest_bounding_box_object_model_3d( : : ObjectModel3D, Type : Pose, Length1, Length2, Length3)
### ObjectModel3D (输入控制)
- **类型**: 整数数组
- **描述**: 3D对象模型的句柄。
- **解释**:
  - 这个参数是一个整数数组,表示一个或多个3D对象模型的句柄。通过这些句柄,可以访问和操作这些3D对象模型。

### Type (输入控制)
- **类型**: 字符串
- **描述**: 用于估计最小包围盒的方法。
- **默认值**: 'oriented'
- **可选值**:
  - 'axis_aligned': 轴对齐方法。
  - 'oriented': 定向方法。
- **解释**:
  - 这个参数指定用于估计最小包围盒的方法。不同的方法会影响包围盒的计算方式。

### Pose (输出控制)
- **类型**: 实数/整数数组
- **描述**: 描述生成的包围盒的位置和方向的姿态。
- **解释**:
  - 这个参数是一个包含姿态的数组。每个姿态描述了包围盒的位置和方向,其原点位于包围盒的中心,并且x轴与包围盒的最长边对齐。

### Length1 (输出控制)
- **类型**: 实数数组
- **描述**: 包围盒的最长边的长度。
- **元素数量**: Length1 的元素数量等于 ObjectModel3D 的元素数量。
- **解释**:
  - 这个参数是一个实数数组,包含包围盒的最长边的长度。每个长度对应一个3D对象模型。

### Length2 (输出控制)
- **类型**: 实数数组
- **描述**: 包围盒的第二长边的长度。
- **元素数量**: Length2 的元素数量等于 ObjectModel3D 的元素数量。
- **解释**:
  - 这个参数是一个实数数组,包含包围盒的第二长边的长度。每个长度对应一个3D对象模型。

### Length3 (输出控制)
- **类型**: 实数数组
- **描述**: 包围盒的第三长边的长度。
- **元素数量**: Length3 的元素数量等于 ObjectModel3D 的元素数量。
- **解释**:
  - 这个参数是一个实数数组,包含包围盒的第三长边的长度。每个长度对应一个3D对象模型。

http://www.kler.cn/news/367582.html

相关文章:

  • android openGL ES详解——缓冲区VBO/VAO/EBO/FBO/离屏渲染
  • cherry pick commit
  • 《向量数据库指南》——text-embedding-3-large与Mlivus Cloud打造语义搜索新纪元
  • Axure设置面板状态——元件动作二
  • Vue学习笔记(四)
  • Python 从入门到实战40(数据分析概述)
  • 二十三种设计模式之命令模式
  • Vue3 + Pinia:状态管理的全新体验
  • CoGNN(models文件中的CoGNN.py)
  • 【AI大模型】ChatGPT模型原理介绍
  • Mybatis-plus-入门
  • 2024年10月第3个交易周收盘总结
  • 工具_OpenSSL
  • 【微软商店平台】如何将exe打包上传微软商店
  • SpringCloud学习(补漏)
  • 哈希表之哈希数组、HashSet
  • 随机变量、取值、样本和统计量之间的关系
  • 智能科学与技术(一级学科)介绍
  • 从0开始深度学习(16)——暂退法(Dropout)
  • C++笔记---位图
  • PHP如何抛出和接收错误
  • C语言[求x的y次方]
  • 7.hyperf安装【Docker】
  • 京东电商下单黄金链路:防止订单重复提交与支付的深度解析
  • Pseudo Multi-Camera Editing 数据集:通过常规视频生成的伪标记多摄像机推荐数据集,显著提升模型在未知领域的准确性。
  • 背包九讲——混合背包问题