create_sheet_of_light_model

(ProfileRegion : : GenParamName, GenParamValue : SheetOfLightModelID)
创建一个执行线结构光技术3D测量的的模型

输入:
ProfileRegion
包含要处理的轮廓的图像的ROI。(如果所提供的区域不是矩形的,则使用其最小的外接矩形)

  • GenParamName
    可以为线结构光模型调整的通用参数的名称。
    默认值:“min_gray”
    值列表:’ uity_solving’, ‘calibration’, ‘method’, ‘min_gray’, ‘num_profiles’, ‘offset_x’, ‘offset_y’, ‘offset_z’, ‘scale’, ‘scale_x’, ‘scale_y’, ‘scale_z’, ‘score_type’

  • GenParamValue
    可以为线结构光模型调整的通用参数的值。
    默认值:50
    建议值:‘default’, ‘center_of_gravity’, ‘last’, ‘first’, 'bright ', ‘none’, ‘intensity’, ‘width’, ‘offset_scale’, 50,100,150,180

输出:

  • SheetOfLightModelID
    用于使用和访问光照模型的句柄。

描述

操作符create_sheet_of_light_model使用线结构光技术创建一个模型来执行3d测量。

该技术通过使用区域扫描摄像机和光线投影仪(通常是激光线投影仪)对不透明和漫反射固体的表面进行三维重建。照相机和放映机必须安装好,使它们的主轴形成三角形。三角测量的值通常选择在30°到60°之间。投射的光线在空间中定义了一个平面(结构光平面)。这个平面与被测量的固体表面相交,并建立了一个对摄像机可见的表面轮廓(Profile)。通过移动固体在测量系统前面,(即如照相机和激光器的组合),就有可能记录整个固体的表面。作为一种替代方案,测量系统也可以在被测表面上移动。请注意,轮廓在轮廓图像中必须大致水平定位,因为它们是逐列处理的。

如果有测量装置的几何信息,就可以计算出重建曲面的真实三维坐标。浏览所需几何图形的描述(即,标定)的信息,请参阅操作符set_sheet_of_light_param。如果没有这样的信息,测量的结果是一个视差图像(disparity image),其中每个像素保存着被测轮廓的亚像素精确位置的记录。

操作员在SheetOfLightModelID中返回光表模型的句柄,该句柄用于对光表模型的所有进一步操作,如修改模型的参数、测量轮廓、应用标定转换或访问测量结果。

强制输入图像参数

为了执行测量,您将不得不设置以下输入图标参数:

  • ProfileRegion:定义轮廓图像的区域,操作符measure_profile_sheet_of_light将处理这些区域。这个区域应该是矩形的,可以通过使用操作符gen_rectangle1生成。如果传递给ProfileRegion的区域不是矩形的,那么将使用其最小的外接矩形(包围框)。注意,ProfileRegion仅由操作符measure_profile_sheet_of_light考虑,在处理视差图像时忽略它。

线结构光模型的默认设置参数

  • 线结构光模型的默认设置被用来在基本配置中执行非校准的测量。以下列表提供了默认情况下使用的参数值的概述(有关所有受支持的通用参数的详细描述,请参阅set_sheet_of_light_param):

  • ‘method’
    is set to ‘center_of_gravity’

  • ‘min_gray’:
    is set to 100

  • ‘num_profiles’
    is set to 512

  • ‘ambiguity_solving’
    is set to ‘first’

  • ‘score_type’
    is set to ‘none’

  • ‘calibration’
    is set to ‘none’

修改模型参数

我们建议根据您的特定度量任务调整默认参数,以提高度量的质量或缩短运行时间。如果需要校准结果,还必须修改模型参数的默认值。

create_sheet_of_light_model提供了通用参数GenParamName和GenParamValue来修改大多数模型参数的默认值。注意,还可以使用set_sheet_of_light_param操作符设置模型参数。然而,使用第二个操作符,一次只能设置一个参数,而使用create_sheet_of_light_model一次可以设置多个参数。有关所有受支持的通用参数的详细描述,请参阅set_sheet_of_light_param。

请注意,以下模型参数无法使用create_sheet_of_light_model操作符设置,因此必须使用set_sheet_of_light_param操作符设置:
‘camera_parameter’、‘camera_pose’、‘lightplane_pose’和’movement_pose’。

可以使用操作符get_sheet_of_light_param查询模型参数的值。操作符query_sheet_of_light_params返回所有受支持的模型参数的名称。

使用简化的线结构光模型参数

在一个简单的设置或是否为一个真正的度量标定是必要的,观测到的视差图转换成3D值可以控制使用简化的参数集的线结构光模型:

通过将set_sheet_of_light_param的校准设置为‘offset_scale’,位姿和相机参数将更改为这样的值,即一个像素的偏移量对应于3D结果中的一个单元。这允许从一个未校准的线结构光模型创建一个三维物体模型和三维图像。

从视差到三维坐标的转换可以通过六个参数来控制:‘scale_x’、‘scale_y’、‘scale_z’、‘offset_x’、‘offset_y’、‘offset_z’。有关所有受支持的通用参数的详细描述,请参阅set_sheet_of_light_param。

自由的线结构光模型

由于在操作符create_sheet_of_light_model调用期间以及在接下来的操作期间为模型分配了内存,所以当模型不再使用时,操作符clear_sheet_of_light_model应该显式地释放该模型。

在多个线程中使用句柄

请注意,在多线程中使用线结构光模型’“SheetOfLightModelID’的句柄时必须特别小心。同一句柄不能在不同的线程中并发使用,如果它们修改了句柄。因此,您必须小心,特别是当线程调用更改句柄数据的操作符时。你可以在操作符的“注意”部分找到相应的提示。无论如何,如果您仍然希望在不同线程中并发写入句柄的操作符中使用相同的句柄,则必须同步这些线程,以确保它们不会同时访问相同的句柄。如果您不确定同一句柄的用法是否线程安全,请参阅相应参考手册条目的“注意”部分,如果其中包含指向此问题的警告。但是,可以在不同的线程中独立安全地使用不同的句柄。

示例:

* Create the rectangular region in which the profiles are measured.
gen_rectangle1 (ProfileRegion, 120, 75, 195, 710)
*
* Create a model in order to measure profiles according to
* the sheet-of-light technique. Simultaneously set some
* parameters for the model.
create_sheet_of_light_model (ProfileRegion, ['min_gray','num_profiles', \'ambiguity_solving','score_type'], \[70,290,'first','width'], \SheetOfLightModelID)
*
* Measure the profile from successive images
for Index := 1 to 290 by 1read_image (ProfileImage, 'sheet_of_light/connection_rod_'+Index$'.3')dev_display (ProfileImage)dev_display (ProfileRegion)measure_profile_sheet_of_light (ProfileImage, SheetOfLightModelID, [])
endfor
*
* Get the resulting disparity and score images
get_sheet_of_light_result (Disparity, SheetOfLightModelID, 'disparity')
get_sheet_of_light_result (Score, SheetOfLightModelID, 'score')
*
* Close the sheet-of-light handle once the measurement
* has been performed
clear_sheet_of_light_model (SheetOfLightModelID)

Halcon算子学习:create_sheet_of_light_model相关推荐

  1. Halcon算子学习:图像阈值分割-threshold、binary_threshold、dyn_threshold算子

    Halcon算子学习:图像阈值分割算子 前言 1.threshold-全局固定阈值分割 2.Binary Threshold-自动全局阈值分割 3.dyn_threshold-局部动态阈值分割 小结: ...

  2. Halcon算子学习:XLD几种边缘连接函数

    Halcon算子学习:XLD几种边缘连接函数 1.union_cotangential_contours_xld (Contours : UnionContours : FitClippingLeng ...

  3. Halcon算子学习:get_sheet_of_light_result

    get_sheet_of_light_result ( : ResultValue : SheetOfLightModelID, ResultName : ) 获得用线结构光技术进行测量的标志性结果 ...

  4. Halcon算子学习:find_surface_model

    find_surface_model ( : : SurfaceModelID, ObjectModel3D, RelSamplingDistance, KeyPointFraction, MinSc ...

  5. Halcon算子学习:create_surface_model

    create_surface_model ( : : ObjectModel3D, RelSamplingDistance, GenParamName, GenParamValue : Surface ...

  6. Halcon算子学习:smooth_object_model_3d

    smooth_object_model_3d ( : : ObjectModel3D, Method, GenParamName, GenParamValue : SmoothObjectModel3 ...

  7. Halcon算子学习:surface_normals_object_model_3d

    surface_normals_object_model_3d ( : : ObjectModel3D, Method, GenParamName, GenParamValue : ObjectMod ...

  8. Halcon算子学习:xyz_to_object_model_3d

    xyz_to_object_model_3d (X, Y, Z : : : ObjectModel3D) 将3D点从图像转换为3D对象模型. 输入: X (input_object) 单通道图像→ob ...

  9. [Halcon] 算子学习_Calibration_Calibration Object

    find_caltab find_marks_and_pose 输出参数StartPose是标定板的位姿 通过pose_to_hom_mat3d转化为Hom矩阵可得到下面的关系 3D_Point_Co ...

最新文章

  1. # 2017-2018-1 20155224 《信息安全系系统设计基础》实验四
  2. 关于代码运行时间Stopwatch的使用
  3. 基于FPGA 的8b10b编解码电路前端电路设计
  4. java占位符填充_程序员:深入理解Java虚拟机,对象的内存布局
  5. 防止linux系统文件被误删除,Linux系统防止误删除文件
  6. azkaban的最简版搭建
  7. 打包工具SetupFactory 9 的使用
  8. DNS与GTM协同工作原理
  9. mysql的auto_increment详解
  10. 2020风中劲草pdf电子版完整版 下载
  11. project.json
  12. RabbitMQ手动确认模式(项目开发常用模式)
  13. 省略to的动词不定式八种情况
  14. controller 之@...
  15. Revit二次开发之技能篇(二)———轴网尺寸标注
  16. 核心微生物分析_微生物多样研究—微生物深度分析概述
  17. DCCA互相关系数 理论
  18. 10、乐趣国学—践行《弟子规》的“谨”懂得从容之道(下篇)
  19. Linux下达梦数据库导入导出
  20. 自制作的一个手机平衡球游戏!

热门文章

  1. fft的c语言和matlab对比_傅里叶级数(FS)、傅里叶变换(FT)快速傅里叶变换(FFT)及量子傅里叶变换(QFT)之间推导关系...
  2. 算法与数据结构--空间复杂度O(1)遍历树
  3. 美团数据库运维自动化系统构建之路
  4. 会议交流 | CNCC2021中国计算机大会 —— 知识图谱赋能数字化转型论坛
  5. from torchcrf import CRF
  6. 【Tensorflow】小白入门实战基础篇(下)
  7. 服务器上的Linux中Tomcat有时会挂掉的问题及方法
  8. unittest单元测试笔记
  9. JavaScript中的内置对象-8--4.date对象中-获取,设置日期时间的方法; 获取,设置年月日时分秒及星期的方法;...
  10. netty客户端源码