一、简介

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:特征值的范围

Halcon 3D 常见算子描述相关推荐

  1. Halcon 3D 切片法检测物料

    一.简介 在上一篇中,学习了鞋底切片法来求轮廓,那个思路是比较简单的,其次还提到了法向量重建的方法,目前由于没有用法向量重建来做那个项目,所以还是有很大的疑问,后续会继续学习那个方法然后重新在做一次, ...

  2. Halcon的常见错误

    Halcon的常见错误Halcon的常见错误Halcon的常见错误 图像数组索引从1开始 控制变量数组索引从0开始 报错object id is null 指的是只声明了一个HImage,但是没有内容 ...

  3. 3D点云描述子超全综述:传统方式+深度学习方式

    作者丨Tom Hardy@知乎 来源丨https://zhuanlan.zhihu.com/p/395187135 编辑丨3D视觉工坊 摘要 廉价3D数据采集设备的引入有助于3D点云的广泛应用和普及, ...

  4. 量子运算-比算子描述更广泛的一类刻画量子态在客观世界演化的数学工具

    参考链接:1.1 量子运算 - 知乎 (zhihu.com) 一个量子操作(包括量子测量和量子信道)指的是把一个密度矩阵变成另一个密度矩阵的变换,一般记为 背景 演化算符是酉的.这里考虑考虑特殊的演化 ...

  5. Halcon—3D测量算法的那点数学公式和代码实现

    Halcon-3D测量算法的那点数学公式和代码实现 ✨博主介绍 前言 Halcon源码 ✨博主介绍

  6. Spark15:Spark SQL:DataFrame常见算子操作、DataFrame的sql操作、RDD转换为DataFrame、load和save操作、SaveMode、内置函数

    前面我们学习了Spark中的Spark core,离线数据计算,下面我们来学习一下Spark中的Spark SQL. 一.Spark SQL Spark SQL和我们之前讲Hive的时候说的hive ...

  7. Halcon二维码识别,多二维码识别,附代码及常见算子解释

    前言 二维码作为机器视觉常见的检测场景,常常用于产品类型检测,MES系统对接等场景,不同于常见的halcon图像处理流程,二维码识别不需要做图像分割便可以很快的完成二维码区域定位与二维码检测.这里对常 ...

  8. halcon 3D Object Model 三维物体模型算子,持续更新

    目录 3D Object Model 三维物体模型 Creation创建 1.clear_object_model_3d 2.copy_object_model_3d 3. deserialize_o ...

  9. Halcon一些功能算子

    Chapter 1 :Classification 1.1 Gaussian-Mixture-Models 1.add_sample_class_gmm 功能:把一个训练样本添加到一个高斯混合模型的训 ...

最新文章

  1. 刻意练习:LeetCode实战 -- Task28.跳跃游戏
  2. 全国大学生智能汽车竞赛讯飞 -智慧餐厅技术报告 ——信号与系统课程论文
  3. mint ui tabbar选中后怎么改变icon图标_UI全书(下)读后梳理:iPhone设计规范和Material Design规范...
  4. js 里面的键盘事件对应的键码
  5. oracle 拼接_老品牌福建泉州49寸液晶拼接屏多少钱品质
  6. 数据持久化mysql_Nacos数据持久化到MySQL
  7. taro更新页面数据_Taro 全局数据状态管理
  8. Matlab求一个数组的平均值、方差
  9. DS1302实时时钟芯片与单片机接法
  10. 哪些命令可以关闭计算机 poweroff,虚拟机常用命令
  11. 系统渗透与防护——信息收集与暴力破解
  12. ios-破解ipa包中的png 图片
  13. python的truncate()函数
  14. MiniFilter文件系统学习
  15. python爬虫分布式怎么构造_如何构建一个分布式爬虫:基础篇
  16. terminal命令下安装python_Windows Terminal-Windows Terminal命令行安装包下载 官方最新版 - 安下载...
  17. 这是最好的年代,也是最坏的年代?
  18. 改造一台可以计算滤芯使用寿命的智能空气净化器——硬件篇
  19. jquery按钮置灰_点击提交按钮后按钮变灰色不可用状态的三种方法
  20. python学习之路:期权定价与python实现

热门文章

  1. 摄像头(camera)数据传输中 码率/比特率(Bit rate) 与 带宽(Bandwidth)对应表
  2. python爬空气污染实时数据_一键爬取空气质量相关指数
  3. 魔都记--来美团点评公司快两年的总结
  4. 快速入门mybatis(查询、添加日志、插入)
  5. 【OpenCV入门学习--python】图像的矩Image Moments
  6. 年终奖均值7826,你拖后腿了吗?
  7. FamaMacBeth在Python中的最新位置
  8. mysqld_safe 启动数据库报找不到 mysqld 启动文件
  9. melis系统c800_Dell bilgisayarda HDMI bağlantı noktasıyla ilgili Sık Sorulan Sorular (SSS)
  10. Geometry Processing 几何处理 7