首页 > 其他分享 >找直线

找直线

时间:2023-08-11 14:23:32浏览次数:33  
标签:直线 metrology MetrologyHandle object 测量 参数 measure

 

  1 dev_close_window ()
  2 read_image (Image, '测量/0.bmp')
  3 get_image_size (Image, Width, Height)
  4 dev_open_window (0, 0, Width, Height, 'black', WindowHandle)
  5 
  6 dev_display (Image)
  7 
  8 * 绘制直线
  9 draw_line (WindowHandle, Row1, Column1, Row2, Column2)
 10 gen_region_line (Line1, Row1, Column1, Row2, Column2)
 11 
 12 
 13 * 根据绘制的直线坐标构建参数对象
 14 Line1Param := [Row1, Column1, Row2, Column2]
 15 
 16 * 1.创建计算测量句柄
 17 create_metrology_model (MetrologyHandle)
 18 * 2.设置测量模型图像的大小,主要是为了提高效率
 19 set_metrology_model_image_size (MetrologyHandle, Width, Height)
 20 * 3.添加测量模型对象
 21 * 参数1:测量句柄
 22 * 参数2:要查找的模型类型 可以是 线 圆 椭圆 旋转矩形
 23 * 参数3:对应的模型参数 
 24 *       ‘圆形’:类型圆的计量对象的几何形状由其中心(行,列)和半径指定
 25 *       ‘旋转矩形’:ShapeParam = [行,列,Phi,长度1,长度2]
 26 *       ‘椭圆’:ShapeParam = [行,列,Phi,Radius1,Radius2]
 27 *       ‘线’:ShapeParam = [RowBegin,ColumnBegin,RowEnd,ColumnEnd]
 28 * 参数4:MeasureLength1 垂直于边界的测量区域的一半长度  半长
 29 * 参数5:MeasureLength2 与边界相切的测量区域的一半长度  半宽  vp中的搜索长度类似
 30 * 参数6:MeasureSigma Sigma的高斯函数用于平滑 默认值:1.0   类似于过滤一半像素
 31 * 参数7:MeasureThreshold 最小边缘幅度 对比度阈值
 32 * 参数8:GenParamName 通用参数的名称 默认值: []
 33 * 参数9:GenParamValue 通用参数的值 默认值: []
 34 * 参数10:索引 创建的计量对象的索引
 35 add_metrology_object_generic (MetrologyHandle, 'line', Line1Param, 20, 5, 1, 30, [], [], Index)
 36 
 37 * 参数1:测量句柄
 38 * 参数2:Index:指定测量对象,为all时所有计量对象的参数都被设置(‘all’)
 39 * 参数3:GenParamName:输入参数名称;默认:‘num_instances’,参考:
 40 *            'measure_length1':区域,垂直于边界的测量区域的一半长度
 41 *            'measure_length2':区域,相切于边界的测量区域的一半长度
 42 *            'measure_distance':区域,两个测量区域中心之间的距离
 43 *            'num_measures':区域,测量区域数
 44 *            'measure_sigma':测量,用于平滑的高斯函数的 Sigma
 45 *            'measure_threshold':测量,最小边缘幅度阈值
 46 *            'measure_select':测量,边缘端点的选择('last'、'first')
 47 *            'measure_transition':测量,方向('all'、'negative'、 'positive')
 48 *            'measure_interpolation':测量,插值类型
 49 *            'min_score':拟合,最小分数
 50 *            'num_instances':拟合,成功拟合实例的最大数量
 51 *            'distance_threshold':拟合,距离阈值 
 52 * set_metrology_object_param (MetrologyHandle, 'all', 'measure_transition', 'all')
 53 * 4.设置测量句柄的参数
 54 * 设置找线的极性 由黑到白 由白到黑 all
 55 set_metrology_object_param (MetrologyHandle, 'all', 'measure_transition', 'all')
 56 * 设置测量区域的个数 卡尺数量
 57 set_metrology_object_param (MetrologyHandle, 'all', 'num_measures', 50)
 58 * 设置最少多少个点可以拟合成功 
 59 set_metrology_object_param (MetrologyHandle, 'all', 'num_instances', 30)
 60 * 设置平滑系数
 61 set_metrology_object_param (MetrologyHandle, 'all', 'measure_sigma', 2)
 62 * 半长  卡尺搜索长度
 63 set_metrology_object_param (MetrologyHandle, 'all', 'measure_length1', 10)
 64 * 半宽  卡尺投影长度 
 65 set_metrology_object_param (MetrologyHandle, 'all', 'measure_length2', 0.5)
 66 * 对比度阈值 
 67 set_metrology_object_param (MetrologyHandle, 'all', 'measure_threshold', 20)
 68 * 设置找线插值方法
 69 set_metrology_object_param (MetrologyHandle, 'all', 'measure_interpolation', 'bilinear')
 70 * 设置查找到的第一条边还是第二条边
 71 set_metrology_object_param (MetrologyHandle, 'all', 'measure_select', 'last')
 72 * 设置最小分数
 73 set_metrology_object_param (MetrologyHandle, 'all', 'min_score', 0.7)
 74 * 5.测量并拟合测量模型中所有计量对象的几何形状
 75 apply_metrology_model (Image, MetrologyHandle)
 76 * 6.获取测量区域和计量模型的计量对象的边缘位置结果
 77 * 参数1:Contours 测量区域的矩形XLD轮廓
 78 * 参数2:处理计量模型
 79 * 参数3:计量对象的索引 默认值:‘all’
 80 * 参数4:Transition 选择浅色/深色或深色/浅色边缘 默认值:‘all’
 81 * 参数5、6:输出查找到点的行列坐标
 82 get_metrology_object_measures (Contours, MetrologyHandle, 'all', 'all', Row, Column)
 83 * 7.把找到的点通过十字叉显示 
 84 * 为每个输入点(行、列)生成交叉形状的XLD轮廓
 85 * Cross(out):生成XLD轮廓
 86 * Row(in):输入点集的行坐标
 87 * Col(in):输入点集的列坐标,Col元组的个数与Row元组的个数相同
 88 * Size(in):十字形长度,长度大于等于0
 89 * Angle(in):十字形方向
 90 gen_cross_contour_xld (Cross, Row, Column, 3, rad(45))
 91 * 8.获取计量模型的测量结果
 92 * 参数1:测量句柄
 93 * 参数2:Index 计量对象的索引
 94 * 参数3:Instance 计量对象的实例
 95 * 参数4:通用参数的名称 默认值:‘result_type’ 值列表:‘angle_direction’,‘result_type’,‘used_edges’
 96 *        如果GenParamName设置为’result_type’,则GenParamValue允许控制计量对象的返回方式和结果。
 97 *        可以立即查询查询的计量对象的所有测量参数,可以单独查询特定参数或者可以查询计量对象的分数
 98 
 99 *        ‘angle_direction’:该参数确定由拟合产生的角度的旋转方向。
100 *        将参数’angle_direction’设置为’正’,在物体的主轴和坐标系的水平轴之间以数学正方向(逆时针方向)指定角度。
101 *        将参数’angle_direction’设置为’负’,在对象的主轴和坐标系的水平轴之间沿数学负方向(顺时针)指定角度。角度的结果以弧度返回。
102 *        ‘used_edges’:
103 *        要查询实际用于拟合度量对象的边缘点,可以选择以下GenParamValue值:
104 *        ‘行’:返回用于拟合度量对象的边的行坐标。
105 *        ‘列’:返回用于拟合度量对象的边的列坐标。
106 *        ‘振幅’:返回用于拟合度量对象的边缘的边缘幅度。
107 * 参数5:泛型参数的值 默认值:‘all_param’
108 * 参数6:结果值
109 get_metrology_object_result (MetrologyHandle, 'all', 'all', 'result_type', 'all_param', Parameter)
110 *获取测量结果里的开始行坐标
111 get_metrology_object_result (MetrologyHandle, 'all', 'all', 'result_type', 'row_begin', RowBegin)
112 *获取测量结果里的开始列坐标
113 get_metrology_object_result (MetrologyHandle, 'all', 'all', 'result_type', 'column_begin', ColBegin)
114 *获取测量结果里的结束行坐标
115 get_metrology_object_result (MetrologyHandle, 'all', 'all', 'result_type', 'row_end', RowEnd)
116 *获取测量结果里的结束列坐标
117 get_metrology_object_result (MetrologyHandle, 'all', 'all', 'result_type', 'column_end', ColEnd)
118       
119 * 查询计量对象的结果轮廓 
120 * MetrologyHandle 处理计量模型
121 * Index 计量对象的索引 默认值:‘all’ 建议值:‘all’,0,1,2
122 * Instance 计量对象的实例 默认值:‘all’ 建议值:‘all’,0,1,2
123 * Resolution 相邻轮廓点之间的距离 默认值:1.5
124 get_metrology_object_result_contour (Contour, MetrologyHandle, 'all', 'all', 1.5)
125 
126 clear_metrology_model (MetrologyHandle)

 

标签:直线,metrology,MetrologyHandle,object,测量,参数,measure
From: https://www.cnblogs.com/Honsen/p/17622854.html

相关文章

  • 两条直线轮廓的距离
    1dev_close_window()2read_image(Image,'测量/0.bmp')3get_image_size(Image,Width,Height)4dev_open_window(0,0,Width,Height,'black',WindowHandle)56dev_display(Image)78*绘制直线9draw_line(WindowHan......
  • 直线模组在AGV物流设备起什么作用?
    在物流产业高速发展的今天,机器人技术的应用程度已经成为决定企业间相互竞争和未来发展的重要衡量因素。智能机器人运用到物流产业,其效率不言而喻。AGV智能仓储作为现代物流系统的重要组成部分,物流自动化、智能化不光是能提升效率和安全性,还可以解放更多的劳动力,节省更多的人工成本,......
  • 直线电机模组在激光切割机上的作用
    激光切割机是将从激光器发射出的激光,经光路系统,聚焦成高功率密度的激光束。激光束照射到工件表面,使工件达到熔点或沸点,同时与光束同轴的高压气体将熔化或气化金属吹走。激光切割加工是用不可见的光束代替了传统的机械刀,具有精度高,切割快速,不局限于切割图案限制,自动排版节省材料,切口......
  • 计算两条直线夹角(C++)
    计算两条直线的锐角可以使用向量的知识来实现。在C++中,我们可以定义一个函数来计算两个向量的夹角,并根据夹角的余弦值来判断角度的大小。以下是一个用C++编写的示例代码:#include<iostream>#include<cmath>usingnamespacestd;structVector{doublex;doubley;......
  • 【230806-8】已知:直线(3m-n)x+(m+2n)y-n=0恒过定点,求定点坐标?
    ......
  • 2023-08-06:小青蛙住在一条河边, 它想到河对岸的学校去学习 小青蛙打算经过河里 的石头
    2023-08-06:小青蛙住在一条河边,它想到河对岸的学校去学习小青蛙打算经过河里的石头跳到对岸河里的石头排成了一条直线,小青蛙每次跳跃必须落在一块石头或者岸上给定一个长度为n的数组arr,表示每块儿石头的高度数值每块石头有一个高度,每次小青蛙从一块石头起跳这块石头的高度就......
  • 2023-08-06:小青蛙住在一条河边, 它想到河对岸的学校去学习 小青蛙打算经过河里 的石头
    2023-08-06:小青蛙住在一条河边,它想到河对岸的学校去学习小青蛙打算经过河里的石头跳到对岸河里的石头排成了一条直线,小青蛙每次跳跃必须落在一块石头或者岸上给定一个长度为n的数组arr,表示每块儿石头的高度数值每块石头有一个高度,每次小青蛙从一块石头起跳这块石头的......
  • 直线导轨在视觉检测设备中的应用
    随着科技的不断发展,视觉检测设备已经逐渐代替了传统的人工品检,成为了工业生产中的一部分,在五金配件、塑胶件、橡胶件、电子配件等检测工业零部件表面外观缺陷尺寸方面应用,视觉检测设备具有优势。直线导轨作为视觉检测设备中重要的传动元件,为视觉检测设备提供的助力可不少。首先,直线......
  • 直线模组在机械手中的应用
    机械手是一种能模仿人手和臂的某些动作功能,用以按固定程序抓取、搬运物件或操作工具的自动操作装置,可代替人的繁重劳动以实现生产的机械化和自动化,能在有害环境下操作以保护人身安全,因而广泛应用于机械制造、冶金、电子、轻工和原子能等部门。机械手是在机械化,自动化生产过程中发展......
  • 直线导轨使用中常见的问题有哪些?
    直线导轨作为设备的核心部件之一,起着导向和支撑的作用功能。目前,已被广泛应用在各行各业中,大到机械设备,小到抽屉,我们都能看到直线导轨的身影,可以说,直线导轨已经悄无声息的进入到我们的生活了。任何零部件,在使用中都会遇到各种各样的问题,直线导轨也不例外,那么在使用直线导轨时,哪些问......