Halcon 3D基础知识及常用函数

一、基本概念

1、点云(Point Cloud)

点云是一组3D数据点,每个点由笛卡尔坐标系或其他坐标系中的一个三维坐标表示,它被认为是一组非结构化的三维点,象征着三维物体的几何形状。点云是一种简单、完整的数据结构,消除了网格数据的复杂性。

2、位姿(Pose)

Halcon中的Pose是一个7参数元组,表示3D平移和旋转的组合。它可以描述一个坐标系相对于另一个坐标系的位置和方向,或者用于在不同坐标系间转换点坐标。Pose通过齐次变换矩阵实现刚性变换。一个pose是具有7个参数的元组:3个参数描述平移(TransX、TransY、TransZ),3个参数描述旋转(RotX、RotY、RotZ)。最后一个参数确定了平移和旋转的顺序(以及旋转的方向)。

3、深度图(Depth Map)

深度图就是从图像采集器到场景中各点的距离(深度)作为像素值的图像。像素值表示深度: 深度图的每个像素值代表场景中该点到摄像头或传感器的距离,通常用灰度值来表示。较亮的像素表示较近的物体,而较暗的像素则表示较远的物体。深度值可以是以毫米、米等单位测量的实际距离,或是相机坐标系中的相对距离。

  • 相对深度:在某些情况下,深度图并不提供场景中物体的实际物理距离,而是提供一种相对深度信息,即物体间的相对远近。
  • 绝对深度:这种深度图包含物体到传感器的真实物理距离,这对机器人导航、3D建模等精确应用至关重要。

深度图通常是单通道图像,不包含颜色信息。每个像素的值是一个浮点数或整数,代表场景中的深度。与RGB图像相比,深度图通常更强调几何信息,而非视觉纹理。

视角和投影: 深度图反映的是从摄像机或传感器视角下的距离,因此它通常依赖于特定的相机模型。不同视角或摄像机位置会产生不同的深度图。相机内参(如焦距、光心位置)和外参(相机在空间中的位置和方向)都会影响深度图的生成。

二、Halcon 3D基础函数

1)read_object_model_3d

功能:从文件读取一个3d模型。

参数说明:read_object_model_3d( : : FileName, Scale, GenParamName, GenParamValue : ObjectModel3D, Status)

FileName:要读取的点云文件名;

Scale:文件中数据的缩放因子;

ObjModel3D:输出 3D对象模型句柄;

Status:输出状态信息;

2)visualize_object_model_3d

功能:用于显示3d模型。该函数功能很多,包括设置位姿,颜色,鼠标翻转、缩放、平移,选择和取消选择目标,降低鼠标灵敏度,切换检查模式等。

参数说明:visualize_object_model_3d( : : WindowHandle, ObjectModel3D, CamParam, PoseIn, GenParamName, GenParamValue, Title, Label, Information : PoseOut)

WindowHandle:窗体句柄。

ObjectModel3D:3d模型。

CamParam:相机参数

PoseIn:初始位姿。

PoseOut:用户调整模型姿态后输出这个3d姿态。

3)surface_normals_object_model_3d

功能:用于计算三维物体模型的三维曲面法线。

参数说明:surface_normals_object_model_3d( : : ObjectModel3D, Method, GenParamName, GenParamValue : ObjectModel3DNormals)

: : ObjectModel3D:包含3D点数据的3D对象模型句柄。

Method:法线计算方法。默认值:'mls'。

GenParamName:一般平滑参数的名称。值列表:'mls_abs_sigma', 'mls_force_inwards', 'mls_kNN', 'mls_order', 'mls_relative_sigma'。

GenParamValue :一般平滑参数的值。。

ObjectModel3DNormals:具有计算出的三维法线的三维对象模型的句柄。

4)smooth_object_model_3d

功能:用于平滑3D对象模型的3D点。

参数说明:smooth_object_model_3d( : : ObjectModel3D, Method, GenParamName, GenParamValue : SmoothObjectModel3D)

: : ObjectModel3D:包含3D点数据的3D对象模型句柄。

Method:法线计算方法。默认值:'mls'。

GenParamName:一般平滑参数的名称。值列表:" mls_abs_sigma"," mls_force_inwards"," mls_kNN"," mls_order"," mls_relative_sigma"

SmoothObjectModel3D:带有光滑的三维点数据的三维对象模型的句柄。

5)triangulate_object_model_3d

功能:为三维对象模型创建曲面三角剖分。

参数说明:triangulate_object_model_3d( : : ObjectModel3D, Method, GenParamName, GenParamValue : TriangulatedObjectModel3D, Information)

: : ObjectModel3D:包含3D点数据的3D对象模型句柄。

Method:三角化方法。包括:'greedy', 'implicit', 'polygon_triangulation', 'xyz_mapping' GenParamName: 三角化参数名称。 GenParamValue:三角化参数值。

TriangulatedObjectModel3D:三角化处理后的3D模型;

Information:三角化过程的其他信息。

6)create_surface_model

功能:用于创建3D对象模型的表面匹配模型。内容涉及模型创建、参数设置、采样距离、边缘支持、基于视图的分数计算以及对噪声数据的处理,强调了法线方向和模型质量对匹配稳定性的影响。

参数说明:create_surface_model( : : ObjectModel3D, RelSamplingDistance, GenParamName, GenParamValue : SurfaceModelID)

: : ObjectModel3D:包含3D点数据的3D对象模型句柄。

RelSamplingDistance:相对于物体直径的采样距离。

GenParamName:通用参数的名称。

GenParamValue:通用参数的值。

SurfaceModelID:表面模型的句柄。

7)create_pose

功能:创建3D位姿;

参数说明:create_pose( : : TransX, TransY, TransZ, RotX, RotY, RotZ, OrderOfTransform, OrderOfRotation, ViewOfTransform : Pose)

: : TransX, TransY, TransZ:指定沿x轴,y轴和z轴的平移;

RotX, RotY, RotZ:指定绕x轴,y轴和z轴的旋转;

OrderOfTransform:选择平移方式。

OrderOfRotation:选择旋转方式。

ViewOfTransform:变换的视角。

Pose:三维姿态。输出为一个包含7个元素的 pose,通常表示为 [Tx, Ty, Tz, Rx, Ry, Rz, Order],其中 Tx, Ty, Tz 为平移分量,Rx, Ry, Rz 为旋转分量,Order 为旋转顺序。

8)gen_plane_object_model_3d

功能:创建表示平面的三维对象模型;

参数说明:gen_plane_object_model_3d( : : Pose, XExtent, YExtent : ObjectModel3D)

: : Pose:平面的位姿;输入 平面的中心和旋转;元素数量: Pose == 7

XExtent:指定平面范围的x坐标;

YExtent: 指定平面范围y坐标;

ObjectModel3D:3D模型结果;

9)intersect_plane_object_model_3d

功能:将三维对象模型与平面相交。

参数说明:intersect_plane_object_model_3d( : : ObjectModel3D, Plane : ObjectModel3DIntersection)

: : ObjectModel3D:三维对象模型

Plane :带姿态的平面;

ObjectModel3DIntersection: 将交点描述为一组线的三维对象模型的句柄。

相关推荐
在下胡三汉8 分钟前
Google Store 如何利用 glTF 3D 模型改变产品教育
3d
Hali_Botebie1 小时前
【激光雷达3D(6)】3D点云目标检测方法;CenterPoint、PV-RCNN和M3DETR的骨干网络选择存在差异
网络·目标检测·3d
whuzhang1615 小时前
3DGS之齐次坐标
人工智能·3d·自动驾驶
90后小陈老师1 天前
WebXR教学 05 项目3 太空飞船小游戏
windows·3d·web·js
艾恩小灰灰2 天前
CSS中的`transform-style`属性:3D变换的秘密武器
前端·css·3d·css3·html5·web开发·transform-style
工业3D_大熊2 天前
HOOPS Exchange 与HOOPS Communicator集成:打造工业3D可视化新标杆!
3d·hoops·3d数据格式转换·3d模型可视化·bim技术数字解决方案·3d模型桌面可视化
二狗哈2 天前
使用最新threejs复刻经典贪吃蛇游戏的3D版,附完整源码
游戏·3d
huoyingcg3 天前
VR、AR、互动科技:武汉数字展馆制作引领未来展览新体验
科技·3d·ar·vr·动画·虚拟现实
鑫优威激光模组4 天前
3D机器视觉激光器在智能制造领域的主要应用
3d·制造
3DVisionary4 天前
蓝光三维扫描技术:高效精密测量相机镜头底座注塑件
数码相机·3d·3d扫描·蓝光三维扫描 注塑件检测·精密测量 相机镜头底座·全尺寸检测 高效检测·有限元分析 极端环境测试