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

Halcon 3D 常见算子描述

一、简介

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、ObjectModel32、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, 25、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 位姿。
元素数量:姿势 == 7GenParamName (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:特征值的范围

http://www.lryc.cn/news/2417385.html

相关文章:

  • 万能DOS启动盘制作全攻略!(软盘+光盘+U盘+硬盘+NTFS+应急实用工具)
  • Java语言中关键字strictfp的用途
  • 文件安全之只允许网站内打开,禁止单独打开下载
  • Kafka架构详解及安装部署
  • applet java_Java applet 类
  • 用 Python 图像识别打造一个小狗分类器
  • JAVA学习笔记24——Dubbo、zookeeper相关讲解及实战入门
  • 使用国际化资源文件ResourceBundle和反射手段,实现将配置文件properties信息映射到Java对象中
  • android开发入门
  • Recordset对象方法详解
  • 探索R Markdown Book:一个强大的文档创作与分享平台
  • HTML常用语法总结【精华】
  • 基于Spring Boot的网吧管理系统-计算机毕业设计源码03067
  • 推荐文章:bt2qbt —— 简化你的种子迁移之旅
  • tsql_TSQL的历史
  • Linux mlabel命令教程:如何给磁盘添加卷标(附案例详解和注意事项)
  • ABAP基础知识 复杂程序的性能优化
  • 1.23聚类算法(kmeans(初始随机选k,迭代收敛),DBSCAN(dij选点),MEANSHIFT(质心收敛),AGENS(最小生成树)),蚁群算法(参数理解、过程理解、伪代码、代码)
  • 【设计模式】备忘录模式 ( 简介 | 适用场景 | 优缺点 | 代码示例 )
  • linux内核register_chrdev_region()系列函数
  • eclipse中如何使用svn
  • 结构体sockaddr、sockaddr_in、sockaddr_in6之间的区别和联系
  • I3D模型_2017_CVPR
  • Framework3.5 最终文件下载及离线安装
  • OpenGL 入门(一)— 创建窗口
  • Matlab roundn()函数使用样例
  • iOS - 融云RTC功能梳理
  • 信息安全-网络安全测评技术与标准
  • 学习心得——析构函数
  • AutoIt3使用