EasyGauge - 向下测量至子像素
EasyGauge 库控制维度。 它准确地确定各部分的位置、方向、曲率和尺寸。 它可以以图形方式进行交互,以便放置和分类量规,将它们组合在分组的层次结构中,并使用其所有参数存储和检索它们。

量规模型可以编程或在图形编辑器中构建,然后在最终应用程序中“播放”。
选择与您的模型复杂性相匹配的工作流程以及所需的准确性:未校准、校准或分组。

EasyGauge的基本用法很简单。
- 创建一个对应于所需测量的量规对象。
- 更改默认值不合适的参数。
- 调用所需的测量函数。
- 读取生成的位置参数。
未校准测量易于实现,但有几个缺点:
- 测量以像素为单位执行,而不是毫米。
- 测量模型不可移植:如果观察条件发生变化,量规位置和尺寸必须重新处理。
- 光学失真或透视造成不准确的测量。

校准测量更准确,并且独立于观察条件测量被检查的部分。
所有测量都在校准单元中进行,任何失真都会被隐含补偿。 请参阅校准,了解如何掌握视场校准。
- 创建校准器对象。
- 将其放在被检查的场景上。
- 调整校准参数。
- 附上量规。

量规可以分组(见量规操作流程)并附加到另一个项目:
- 将量规连接到EFrameShape对象上,使用框架(平移和/或旋转)移动量规,应用程序必须调整框架位置以跟踪被检查部件。
- 将量规连接到另一个量规,根据支撑量规的测量位置移动量规。 例如,如果量规连接到正在检测零件轮廓的普通矩形量规,则当矩形轮廓拟合时,所有量规会自动跟踪部件。
如果使用多个测量站点,您可以在单个文件中保存完整的模型、校准模式、系数和附加的量规。


您可以沿着跨越一个或多个对象边缘的线段探针选择最相关的转换点。 可以激活横向和纵向滤波以降噪。
点位置。 基于对比的选择

楔形量规的放置由其标称位置(由其中心的坐标给出)、其标称内和外半径(内和外径)、其宽度(半径之间的差)、其扩展的角位置及其角振幅确定。
设定的成员可以区分完整的环、扇区和圆盘。
楔形的每一边可以有自己的转换检测参数,并且可以使用 ActiveEdges 属性设置为活动或非活动。 当一边活动时,这意味着:
- 设置参数的值仅适用于当前活动的边;
- 只有当该属性的值对于所有活动边相同时,获取参数的值才会产生结果;
- 只有活动边用于测量和模型拟合。
所以不同的边可以有不同的参数,你可以测量平行弧或斜边或角点,而不是整个楔形。 四边分别用字母“a”、“r”、“AA”和“RR”表示。
楔形量规各边的命名约定
使用
定义和定位量规,然后使用 Measure 来适应线条。
要获得楔形属性,请将 ActualShape 属性设置为 TRUE 以返回拟合线( TRUE 值)(而不是标称行位置 FALSE 值,默认值)。
或者,MeasuredWedge 将结果作为 EWedge 对象提供。

线规的放置由其相对于 X 轴的中心坐标、长度和角度定义。 要限制线斜率值,请设置 Angle 和 KnownAngle。
线配
使用
定义和定位量规,然后使用 Measure 来适应线条。 要获取行属性,请将 ActualShape 属性设置为 TRUE 以返回拟合行( TRUE 值)(而不是名义行位置 FALSE 值,默认值)。
或者,MeasuredLine 将结果提供为 ELine 对象。

圆形量规的放置由其标称位置(由其中心的坐标给出)、其标称直径(或半径)、其扩展角位置及其角度振幅确定。
设定成员可以区分整圆和圆弧(必须指定圆弧振幅)。
圆拟合
使用
一旦定义并定位量规,使用测量触发圆拟合操作。 要获得测量结果,请将 ActualShape 模式设置为 TRUE 。 ActualShape 模式确定询问是返回拟合圆( TRUE 值)还是名义圆位置( FALSE 值,默认值)。 然后通过圆属性检索所请求的信息。
或者,MeasuredCircle 将结果提供为 ECircle 对象。

查找跨越一个或多个对象边缘的线段探针的所有转换点的位置,并允许选择最相关的。 可以激活横向和纵向滤波以降噪。
点位置。 基于对比的选择

点位置原理(左)和 S 形曲线及其衍生(右)
在从图像提取的线性轮廓上,边缘显示为从深到浅的转换(反之亦然)。 沿着量规绘制像素值时,该转换显示为 S 形曲线。 该曲线的一阶导数在转折点附近出现峰值。 对比度越好,转换越清晰,峰值越高。
EasyGauge 提取沿曲线(红色曲线)的像素值,然后使用峰值分析来确定转换位置。 导数曲线和水平用户定义阈值水平之间的峰值区域中的所有像素值用于计算转换位置。
- 只有在转换被至少 2 个像素宽的几乎均匀的区域包围时,子像素精度才可能实现。
- BWB黑色/白色/黑色转换的轮廓曲线增加,峰值呈正值。 否则,曲线减小,峰值负向延伸。
- 您不能正常使用默认阈值(20)检测峰值,因为 BWB 或 WBW 转换基于沿 EPointGauge(或采样路径)的灰度分布图的峰值分析,而不是其一阶导数。
EPointGauge包含所有点测量参数,其默认值可检测合适的对比度边缘。

中心:标称点位置(测量前后通常不同)。
公差:公差值和量规方向。
TransitionType、TransitionChoice、TransitionIndex:峰值选择策略。
阈值:抗噪声。
MinAmplitude、MinArea:峰值强度。
厚度、平滑:局部滤波器宽度。
RectangularSamplingArea将采样区域(默认为矩形)设置为横向过滤模式。
测量:测量对象。
- 在单次转换模式下,当找到适当的点时,Valid返回 True。 要获得测量结果,请将ActualShape设置为 True,以便Center返回定位的点。 (假默认值返回标称点位置)。
- 在多重转换模式下,NumMeasuredPoints返回找到的点数,
GetMeasuredPoint返回一个包含位置信息的EPoint对象。
必须传递 0 和 GetNumMeasuredPoints-1 之间的整数索引。
GetMeasuredPeak:返回EPeak包含峰值的面积和幅度,以及沿探测段(开始、长度和中心值)的定界坐标。

阈值水平非常重要:
- 太高可能导致遗漏明显的峰值,并且像素值不足以达到良好的精度。
- 太低,由于噪声可能导致假峰值。
为了解决这个困难,EasyGauge 峰值选择机制可以抑制低对比度或虚假边缘:通过峰值幅度和面积测量转换强度。 每个边缘测量确定峰值幅度和面积。 如果任一值低于最小幅度或最小面积,则忽略峰值,并且在该位置不设置任何点。

EasyGauge 可以单次测量多个边缘点,然后在多重转换模式中检索所有结果。
您可以根据 4 个条件选择最相关的转换:最高峰,最大面积的峰值,最接近测量中心的峰,或从量规的一个尖端开始遇到的第 N 个峰。

点量规的预期标称位置由中心、方位角度相对于X轴和长度公差指定,点位置可以变化。
结果是定位点的坐标(实际位置)和转换强度(幅度和面积)。
低值表示弱边缘,可能对应于不可靠或不准确的测量。

EasyGauge 的默认参数和工作模式适合清晰的边缘。 更复杂的情况可能需要参数调整。

ELINEGauge、ECircleGauge、ERectangleGauge或EWedgeGauge预定义的几何模型可以适合对象的边缘。 必须定义目标边缘,并以规则间隔的点测量计在其上采样点。 可以应用最小二乘的拟合模型。
行:测量直边的位置和方向。 | ![]() ![]() |
圆圈:测量圆圈或圆弧的位置和曲率。 | ![]() ![]() ![]() |
矩形:测量矩形的位置、方向和大小。 | ![]() ![]() |
楔形:测量环/圆盘扇区/曲线矩形的位置、方向和大小。 | ![]() ![]() ![]() |
所有量规类型具有如下常见功能:
点抽样 | ||
沿着边缘放置点量规,并且在规则间隔的点进行点测量,可以在矩形和楔形量规中对每侧分别进行调节。 所有点测量参数和操作模式都可用。 SamplingStep沿着模型的点位置设置量规的间距。 NumSamples返回模型拟合操作期间采样的点数。 |
![]() 采样路径和采样点 |
|
模型拟合 | ||
调整模型以最小化误差残余,并提供最佳边缘参数估计。 矩形和楔形具有平行度和同心度约束。 图像显示采样点和拟合线。 |
![]() |
|
异常排斥 | ||
模型拟合后,某些点与拟合模型相距太远,可能会损害定位精度。 EasyGauge 可以使用FilteringThreshold属性将其标记为异常值并忽略。 使用NumFilteringPasses可以重复数次异常值消除过程。 |
![]() |

EasyGauge 提供了以图形方式与量规相互作用的方法来放置和缩放尺寸,将它们组合为分组项目的层次结构,并使用模型文件处理它们以及所有工作参数的存储/检索。

绘图给出了量规的图形表示。 在与所需窗口相关联的设备上下文中,用当前的笔完成绘制。 根据操作,可能会显示手柄。

操作员可以在图像上交互拖动量规。 有几个拖动手柄可用。
- HitTest确定鼠标光标在句柄上方。 如果出现鼠标光标,光标的形状应该改变以进行反馈,并可以进行拖动。
- 拖动相应地移动手柄和相应的量规。

EasyGauge 可以沿着采样路径绘制灰度值和/或其导数 - 对参数调整很有用。
调用Measure后,点量规可绘制。
在MeasureSample调用0和GetNumSamples-1(包括)之间的索引参数后,模型拟合量规可以绘制。
要查看相应的采样路径,请使用Draw方法,模式为EDrawingMode_SampledPath。

量规可以分组(它们的相对位置保持固定),以形成可以在计算测量之前移动(平移和旋转)跟踪所检查项目/探针的移动的专用工具。
Attach将量规与母量规或 EFrameShape 对象相关联。
NumDaughters、GetDaughter或Mother检索与附属的子级或父级相关的信息。
Detach、DetachDaughters将量规或子级从父级分开。


如果光学设置被修改,EWorldShape 对象可以校准整个视场(在给定的成像条件下,利用固定的摄像机放置和镜头放大)。
EWorldShape计算适当的校准系数并转换与之相关的量规。
它可以设置现实世界到传感器的变换参数,从坐标系到坐标系进行转换,确定未知的校准参数,并保存给定变换的参数以供以后重用。
校准后EWorldShape可以使用SensorToWorld和WorldToSensor对任意点执行坐标变换以:
- 测量非正方形像素和旋转坐标轴。
- 校正视角和光学失真,确保没有性能损失。
有几种方法来获得校准系数:

要估计校准系数,可以定位视场的极限,并将图像分辨率除以视场大小,或者使用以下步骤:
- 拍摄要检查的部分或校准目标(例如矩形)的照片。
- 找到特征点,例如图像中的角(通过眼睛),并以像素为单位确定其坐标--假设为(i,j)。
- 使用欧氏距离公式推导校准系数:
其中C是校准系数,单位为像素,D为单位之间的对应点之间的现实世界距离。 - 对于非方形像素,对水平和垂直点对重复该操作。
要估计歪斜角度,请将该公式应用于现实世界系统 X 轴上的两个点:
当校准系数可用时,请使用SetSensor调整它们并设置校准模式,或使用以下方法单独设置:SetSensorSize、SetFieldSize、SetResolution、SetCenter、SetAngle。

找到至少 4 个地标,并在传感器(使用图像处理)和现实世界坐标系(实际测量)中获得坐标。 更多地标提供更准确的校准。
所得到的像素长宽比(X 分辨率/Y 分辨率)必须在[-4/3,-3/4](或[3/4,4/3])的范围内。

可以自动分析校准目标,以获得适当的地标集。 只要提供适当的程序来提取所需的地标点坐标,这是实现自动校准的简单方法。
Open eVision 依赖于使用一个特定的对象,包含一个对称点(任意形状)矩形网格,网格上没有其他对象。

- 抓住校准目标的图像,使其覆盖整个视场(或将视图的图像限制在只有点可见的 ROI)。
- 应用斑点分析来提取点的中心坐标,可以通过 EasyObject 完成。
- 将所有检测到的点传递给 AddPoint(仅传感器坐标)。
- 调用 RebuildGrid 重建网格,以使用计算每个点的现实世界坐标的迭代算法校准视场。
- 选择最接近网格点重心(g)的网格点(g 1 和 g 2)以形成长度为 A 的第一个参考定向段。
- 从参考段(g 2)的末端开始,该算法在垂直方向上确定 3 个公差区域(图中的白色正方形)。 公差区域在距离(g 2)A(参考段的长度)的中心位置。 它们是正方形,边长为 A。
该算法在三个公差区域的每一个中都搜索一个相邻点。
如果每个公差区域包含一个相邻点,则网格将被正确校准。 - 三个垂直段是下一次迭代搜索的参考。 算法返回步骤 2。
- 调用 Calibrate 这一地标方法。
如果网格出现过多的失真,不能按预期进行网格重建。 可能会发生以下错误:
- 公差区域不包含相邻点(图中的红色方块)。
- 公差区域包含多个相邻点。
- 公差区域中的点不正确。 例如,该点可能是对角线连接的(图中的红点)。

可以使用以下参数调整视场校准模型:

视场(f-o-v)宽度和高度以长度单位给出实际图像大小,即 对应于现实世界空间中的图像边缘的矩形大小。 这些值通过以下等式与像素分辨率相关:
f-o-v 宽度 = 像素宽度 * 传感器宽度
f-o-v 高度 =像素高度 * 传感器高度
或
传感器宽度 = f-o-v 宽度 * 水平分辨率
传感器高度 = f-o-v 高度 * 垂直分辨率
默认情况下,未指定像素高度,像素假设为正方形(像素宽度 = 像素高度)。

变形强度和GetDistortionStrength2给出了图像角中的径向失真的相对度量,即 图像对角线长度有无失真的比例。
可以通过CalibrationMode访问校准模式,表示为选项的组合。
校准系数的影响

EWorldShape对象管理视场校准上下文。 这样的对象能够表示现实世界坐标(物理单位)和传感器坐标(像素)之间的关系,并且说明图像形成过程中固有的变形。
图像校准是定量测量应用中的重要过程。 它确定了被检查项目中图像中的点位置(像素索引)与现实世界中的那些点的实际位置之间的关系。
可以通过提供校准模型的显式校准参数或一组已知点(地标)或校准目标来设置校准。
校准的目标是双重的:
- 为了在观看条件(视场中部件放置,透镜放大率,传感器分辨率,...)中获得独立性,让您使用绝对测量方式描述所有检测项目。
单一模型与多重观察条件
- 纠正与成像过程相关的一些失真(透视效果,光学像差,...)。
去除图像失真
图像中的像素索引通常是整数,但是当使用子像素方法时,可能会发生分数值。 它们通常通过处理图像和定位已知特征点来获得。 这些值称为传感器坐标。
传感器空间中的特征点
现实世界坐标描述检查项目上的点的位置以适当的长度测量单位表示。
现实世界坐标是实际尺寸,通常从设计图纸或机械测量中收集。
它们需要定义参考框架。