Halcon 3D 常见算子描述

34 篇文章 29 订阅

一、简介

halcon 中有很多常见的算子,我们经常在用,但是作为一名算法工程师我们不仅要会用,知道原理也是很重要的,所以对于很多事情我们不仅要所以然更有知其所以然。

二、算子解释

1、smooth_object_model_3d 

对3D模型中的每个点进行平滑处理

面前支持的方法只有MLS就是“移动最小二乘法”:'mls_abs_sigma', 'mls_force_inwards', 'mls_kNN', 'mls_order', 'mls_relative_sigma'

注解:

对于每个点 P,MLS 平滑算法将平面曲面或更高阶多项式曲面拟合到其 k 邻域(k 个最近点)。表面拟合本质上是分别对平面或多项式表面参数进行标准加权最小二乘参数估计。 P 的最近邻居比其他点具有更高的贡献,这由以下带有参数的权重函数控制:

然后将该点投影到曲面上。对所有点重复此过程,从而产生平滑的点集。拟合的表面具有明确定义的法线(即,它们可以很容易地从表面参数中计算出来)。因此,作为平滑的副作用,相应的法线会增加这些点
smooth_object_model_3d (ObjectModel3D, 'mls', [], [], SmoothObjectModel3D1)
参数:
1、ObjectModel3

2、Method 
默认值: 'mls'(目前只支持这个)
List of values: 'mls'


3、GenParamName :
默认: []
List of values: 'mls_abs_sigma', 'mls_force_inwards', 'mls_kNN', 'mls_order', 'mls_relative_sigma'

4、GenParamValue 
默认: []
Suggested values: 10, 20, 40, 60, 0.1, 0.5, 1.0, 2.0, 0, 1, 2

5、SmoothObjectModel3D 

效果: (个人感觉弄一些杂点的话效果就很明显了,但是我手头没有这种文件)

2、moments_object_model_3d  求矩

Halcon 3D moments_object_model_3d简介_Σίσυφος1900的博客-CSDN博客_halcon显示3d模型

3、surface_normals_object_model_3d  计算3D模型的3D表面法线

Halcon 3D 计算3D模型的3D表面法线_Σίσυφος1900的博客-CSDN博客_halcon 法线

4、triangulate_object_model_3d  为 3D 对象模型创建表面三角剖分

Halcon 3D 三维重建_Σίσυφος1900的博客-CSDN博客

这个原理还在学习,PCL中可以找到

5、create_pose  创建姿态

Halcon 3D create_pose_Σίσυφος1900的博客-CSDN博客

6、intersect_plane_object_model_3d   将 3D 对象模型与平面相交

* 将 3D 对象模型与平面相交  将三角化之后的平面和创建的那个pose的平面相交
intersect_plane_object_model_3d (TriangulatedObjectModel3D, Pose1, ObjectModel3DIntersection1)

ObjectModel3D 3D 对象模型的句柄。

平面(input_control)飞机的姿势。
默认值:[0,0,0,0,0,0,0]

ObjectModel3DIntersection 将交点描述为一组线的 3D 对象模型的句柄。

7、project_object_model_3d 将 3D 对象模型投影到图像坐标中。

参数:

ModelContours (output_object) xld_cont(-array)投影模型轮廓。

ObjectModel3D (input_control) object_model_3d3D 对象模型的句柄。


CamParam (input_control) 内部相机参数。
元素数量:CamParam == 8 ||CamParam == 10 ||CamParam == 12 ||CamParam  == 14


姿势(input_control)相机坐标中世界坐标系的 3D 位姿。
元素数量:姿势 == 7

GenParamName (input_control) 字符串(-array) → (string)
泛型参数的名称。
默认值: []
值列表:'data'、'false'、'hidden_​​surface_removal'、'min_face_angle'、'point_orientation'、'point_shape'、
'point_size'、'true'、'union_adjacent_contours'


GenParamValue (input_control) 泛型参数的值
默认值: []
建议值:0.17, 0.26, 0.35, 0.52, 'true', 'false', 'auto', 
'points', 'faces', 'lines', 'circle', 'cross', 1, 2, 3, 4 , 0.785398
* The inverted intersection plane pose is our projection pose
pose_invert (PoseIntersectionPlane, PoseInvert)
* Make sure, the projection plane lies in front of the camera
get_object_model_3d_params (ObjectModel3DIntersection, 'diameter_axis_aligned_bounding_box', Diameter)
PoseInvert[2] := PoseInvert[2] + Diameter
* Use a parallel projection to achieve the desired scaling (default 1:1)
Scale := 1
gen_cam_par_area_scan_telecentric_division (1.0, 0, 1.0 / Scale, 1.0 / Scale, 0, 0, 512, 512, CamParam)
project_object_model_3d (Intersection, ObjectModel3DIntersection, CamParam, PoseInvert, 'data', 'lines')
return ()

8、Select_Contours_xld  这个应该是2D

经常在后面加上regress_contours_xld 这个算子

Select_Contours_xld(Contours:SelectedContours:Features,Min,Max,Min2,Max2
作用:选择多种特征要求的XLD轮廓 (如长度 开闭 方向 等特征,不支持多边形)
算子参数:
Contours:要提取的XLD轮廓
SelectedContours:提取到的XLD轮廓
Features:提取XLD轮廓的依据(筛选)
		'contour_length':
		不返回长度小于 Min1 或大于 Max1 的所有轮廓(Min2 和 Max2 在这里没有影响)。

		'maximum_extent':
		不返回最大范围小于 Min1 或大于 Max1 的所有轮廓( Min2 和 Max2 在这里没有影响)。

		'direction':
		仅返回回归线的方向在 Min1 和 Max1 之间(以弧度为单位,逆时针方向)的等高线。 Min1 和 Max1 映射到 [0,2*PI[. (Min2 和 Max2 在这里没有影响)。

		'curvature':
		仅返回与回归线的平均距离介于 Min1 和 Max1 之间且距离的标准差介于 Min2 和 Max2 之间的等高线。

		'closed':
		仅返回其起点和终点之间的距离小于或等于 Max1 像素的轮廓。 (Min1、Min2 和 Max2 在这里没有影响。)

		'open':
		仅返回起点和终点之间的距离大于 Min1 像素的轮廓。 (Max1、Min2 和 Max2 在这里没有影响)。

		如果 Min1 = Max1 = 0 或 Min2 = Max2 = 0 用于根据曲率进行选择,则相应的特征对选择没有影响。
Min,
Max,
Min2,
Max2:特征值的范围

  • 2
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Halcon 3D算子是一种用于处理三维图像的技术,它可以对三维图像进行高效、准确的分析和识别。Halcon 3D算子可以识别三维物体的形状、轮廓、表面特征等,从而实现三维物体的快速检测、测量和定位。 Halcon 3D算子的实现基于先进的计算机视觉技术,它利用三维图像处理和分析技术,结合光学成像技术和三维成像技术,实现对三维物体的快速处理和识别。Halcon 3D算子具有高效、准确、智能化等优点,为三维图像分析和计算机视觉领域的应用提供了强有力的技术支持。 Halcon 3D算子的应用范围广泛,包括机器人视觉、工业自动化、医学影像处理、三维地图建模等领域。在自动化生产和机器人工业中,Halcon 3D算子可以实现对三维物体的快速、精准检测和定位,从而提高生产效率和产品质量;在医学影像处理中,Halcon 3D算子可以实现三维图像的快速重构和分析,为医学诊断提供更加高效和可靠的技术支持;在三维地图建模中,Halcon 3D算子可以实现对地形和建筑的三维建模和分析,从而为城市规划和建设提供科学依据。 总之,Halcon 3D算子是一种高效、准确、智能化的三维图像处理技术,为计算机视觉领域的发展和应用带来了新的突破。 ### 回答2: Halcon 3D算子是一种用于实现三维视觉技术的计算机算法。通过对三维图像处理,可以让计算机获得图像的三维信息,从而实现对物体的空间定位、大小测量、形状分析等功能。 Halcon 3D算子具有高效、准确、可靠等特点,可以应用于精密测量、机器人导航、医学影像分析等领域。使用该算子需要一定的数学基础和图像处理知识。 Halcon 3D算子广泛应用于工业自动化生产线以及商品品质检测等场景,通过红外线等多种技术手段进行扫描,实现对三维物体的快速识别和定位。其优越的性能在智能化工业领域和辅助医学领域等方面将得到越来越广泛的运用。 总之,Halcon 3D算子是一种具有广泛应用前景的三维视觉算法,它将成为未来智能化制造、机器人技术和医疗影像等领域中不可或缺的技术手段。 ### 回答3: Halcon 3D算子是一种专门针对三维图像处理的技术,它利用了光学相机和激光扫描等多种工具获取三维场景中的对象信息,然后通过各种算子来处理这些数据,以实现目标检测、分类和定位等功能。 Halcon 3D算子的处理过程中需要考虑多个因素,如物体的形状、纹理、颜色和光照等,因此它不仅具备高精度和高速度,还可以适应不同的环境和场景。 在实际应用中,Halcon 3D算子具有广泛的应用前景。例如,在工业自动化中,可以利用它来检测和分类产品,完成精准的自动化生产;在医疗领域中,可以应用于医学影像分析,实现病灶的精确定位和诊断等;在机器人领域中,可以通过它来实现机器人的高精度定位和人机交互等功能。 需要注意的是,Halcon 3D算子的应用还有一定的局限性。它需要依赖于先进的硬件设备和丰富的数据库,同时对操作员的技术水平也有一定的要求。因此,在实际使用中需谨慎操作,避免出现误差或故障,以保证其准确性和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值