连接器距离及其角度的测量并显示要求

1.添加作业

2.添加图片

3.添加PMA模板匹配工具


4.添加坐标转换工具
一、工具基本定位
CogFixtureTool1 是康耐视 (Cognex) VisionPro 视觉软件中的核心坐标系管理工具,主要用于创建和管理图像中的坐标系转换。它是 VisionPro 中最常用的定位工具之一,为后续的视觉检测、测量和分析提供统一的基准坐标系。
二、核心功能与工作原理
1. 坐标系转换
- 将图像从原始坐标系 (UnfixturedSpace) 转换到用户定义的固定坐标系 (FixturedSpace)
- 基于二维变换关系(平移、旋转、缩放) 进行精确坐标映射
- 为输入图像的坐标空间树添加用户空间坐标系统,明确图像中各元素的位置关系
2. 图像对齐定位
- 对齐不同位置或姿态下获取的图像,统一到特定参考状态
- 输出包含新坐标系信息的图像,供后续工具使用
- 与 CogPMAlignTool (模板匹配工具) 配合使用,根据零件相对于模板图像的位姿关系建立新坐标系
3. 关键操作流程
- 从其他工具 (如 CogPMAlignTool) 获取 2D 变换关系
- 创建新的定位坐标系并添加到图像的坐标空间树
- 生成带有新坐标系的输出图像
- 后续工具基于此固定坐标系进行精确检测和测量
三、主要参数设置
| 参数 | 说明 |
|---|---|
| TranslationX | 新坐标系的原点 X 坐标值 |
| TranslationY | 新坐标系的原点 Y 坐标值 |
| Rotation | 新坐标系的旋转角度 (度) |
| 坐标系名称 | 定义定位坐标系的标识,默认如 "Fixture_1"Cognex |
| 运行状态 | 设置工具是否自动运行 (默认开启)Cognex |
四、典型应用场景
- 工业检测:定位产品在图像中的精确位置,用于尺寸测量、缺陷检测Cognex
- 自动化装配:引导机器人精确抓取和放置零件,确保装配精度康耐视
- 质量控制:统一不同批次、不同位置产品的检测基准,提高检测一致性Cognex
- 物流分拣:识别和定位包裹、零件,实现高效分拣和追踪Cognex
五、使用示例 (代码片段)
// C#中使用CogFixtureTool1的示例
CogFixtureTool fix = mToolBlock.Tools["CogFixtureTool1"] as CogFixtureTool;
// 设置变换参数
fix.RunParams.UnfixturedToFixturedTransform = new CogTransform2DLinear();
fix.RunParams.UnfixturedToFixturedTransform.TranslationX = 100;
fix.RunParams.UnfixturedToFixturedTransform.TranslationY = 200;
fix.RunParams.UnfixturedToFixturedTransform.Rotation = 15;
// 运行工具
fix.Run();
// 获取输出图像
CogImage8Grey outputImage = fix.OutputImage as CogImage8Grey;
六、与其他工具的关系
- CogPMAlignTool:CogFixtureTool1 的主要输入源,提供模板匹配后的 2D 变换关系
- CogFixtureEditV2:坐标系设置窗体控件,用于可视化配置 CogFixtureTool1 参数
- 测量 / 检测工具(如 CogCaliperTool、CogBlobTool):基于 CogFixtureTool1 输出的固定坐标系进行精确测量和分析

操作
EstablishNewFixture:建议一个新的空间
UseExistingFixture:使用已存在的空间
输出空间
FixtureSpace:输出一个带定位的坐标空间
UnFixturedSpace:输出一个不带定位的坐标空间
重复处理
Enhanced:增强,强化
Compatibility:兼容性

5.添加找圆工具
一、工具基本定位
CogFindCircleTool1 是康耐视 (Cognex) VisionPro 视觉软件中的高精度圆形检测与测量工具,主要用于在图像中自动定位圆形或圆弧特征,并精确计算其几何参数(圆心坐标、半径 / 直径)。它是 VisionPro 中最常用的几何形状检测工具之一,为工业检测中的圆形零件测量、定位和质量控制提供核心技术支持。
二、核心功能与工作原理
1. 圆形特征检测
- 精确识别图像中的完整圆形或部分圆弧(支持部分遮挡的圆形检测)
- 输出检测结果:圆心坐标 (X,Y)(基于用户定义的坐标系)和半径 (Radius)
- 提供置信度评分(0-1)和均方根误差 (RMSError),评估检测结果的可靠性
2. 工作原理
CogFindCircleTool1 采用 **"卡尺 + 圆拟合"** 的复合算法:
- 卡尺采样:在用户指定的环形区域内,沿圆周均匀分布多个卡尺工具 (Caliper)
- 边缘提取:每个卡尺在半径方向上检测图像梯度最大的点(即圆的边缘点)
- 圆拟合:将所有提取的边缘点输入到内部的 CogFitCircleTool 中,通过最小二乘法计算出最优拟合圆,使均方根误差最小
- 结果输出:返回拟合圆的几何参数及质量评估指标
3. 关键特性
- 支持任意角度范围的圆弧检测(无需完整圆形)
- 可处理不同对比度的图像(亮背景上的暗圆或暗背景上的亮圆)
- 自动过滤噪声点,提高检测稳定性
- 可与 CogFixtureTool 配合使用,在统一坐标系下进行测量
三、主要参数设置
| 参数 | 说明 |
|---|---|
| Circle.CenterX/CenterY | 预期圆心的 X/Y 坐标(初始搜索位置) |
| Circle.Radius | 预期圆的半径(初始搜索范围) |
| AnnulusWidth | 环形搜索区域的宽度(决定卡尺的检测范围) |
| CaliperCount | 参与检测的卡尺数量(数量越多,精度越高,但计算量越大) |
| AngleRangeStart/End | 卡尺分布的起始 / 结束角度(用于检测部分圆弧) |
| EdgePolarity | 边缘极性选择(亮到暗、暗到亮或两者都检测) |
| Threshold | 边缘检测阈值(控制边缘点的灵敏度) |
四、典型应用场景
-
工业零件检测:
- 轴承、齿轮、螺栓等圆形零件的尺寸测量(直径、圆度)
- 金属板材、塑料件上的圆孔定位与孔径检测
- 电子元件(如电容、电阻)的引脚间距测量
-
自动化装配:
- 引导机器人精确抓取圆形零件
- 检测零件装配位置的同轴度(如轴与孔的配合)
-
质量控制:
- 瓶盖、瓶口的圆度检测,防止密封不良
- 圆形工件的表面缺陷检测(结合 FindCircleDefects 工具)
- 印刷品上圆形图案的位置与尺寸验证
-
医疗与生命科学:
- 细胞、细菌等微生物的圆形特征检测
- 医疗设备中圆形部件的精度检测
五、使用示例 (代码片段)
// 获取CogFindCircleTool1工具实例
CogFindCircleTool circleTool = mToolBlock.Tools["CogFindCircleTool1"] as CogFindCircleTool;
// 设置搜索参数(预期圆形位置)
circleTool.RunParams.Circle.CenterX = 320; // 预估圆心X坐标
circleTool.RunParams.Circle.CenterY = 240; // 预估圆心Y坐标
circleTool.RunParams.Circle.Radius = 50; // 预估圆半径
circleTool.RunParams.AnnulusWidth = 10; // 环形搜索宽度
circleTool.RunParams.CaliperCount = 20; // 使用20个卡尺
// 运行工具
circleTool.Run();
// 获取检测结果
if (circleTool.Results.IsValid)
{
double centerX = circleTool.Results.GetCircle().CenterX;
double centerY = circleTool.Results.GetCircle().CenterY;
double radius = circleTool.Results.GetCircle().Radius;
double confidence = circleTool.Results.Confidence;
Console.WriteLine($"圆心坐标: ({centerX}, {centerY})");
Console.WriteLine($"半径: {radius} 像素");
Console.WriteLine($"置信度: {confidence}");
}
else
{
Console.WriteLine("未检测到圆形");
}
六、与其他工具的关系
| 关联工具 | 关系说明 |
|---|---|
| CogFixtureTool | 提供统一的坐标系基准,使 CogFindCircleTool1 的测量结果具有全局一致性 |
| CogCaliperTool | CogFindCircleTool1 的内部组件,用于边缘点提取 |
| CogFitCircleTool | CogFindCircleTool1 的内部组件,用于将边缘点拟合成圆 |
| CogPMAlignTool | 先通过模板匹配定位零件,再使用 CogFindCircleTool1 测量圆形特征 |
| CogFindCircleDefects | 配合使用,检测圆形特征上的表面缺陷(如划痕、凹坑) |

6.添加找线工具
一、工具基本定位
CogFindLineTool1 是康耐视 (Cognex) VisionPro 视觉软件中的高精度直线检测与测量工具,主要用于在图像中自动定位直线边缘特征,并精确计算其几何参数(位置、角度、长度等)。它是 VisionPro 中最常用的几何形状检测工具之一,为工业检测、定位和测量提供可靠的直线基准。
二、核心功能与工作原理
1. 直线特征检测
- 精确识别图像中的直线边缘(支持部分直线和完整直线检测)
- 输出检测结果:直线位置参数(起点、终点或中心点坐标)、旋转角度(Rotation)、长度(Length)
- 提供置信度评分(0-1)和均方根误差 (RMSError),评估检测结果的可靠性
- 可检测不同对比度的直线边缘(亮背景上的暗线或暗背景上的亮线)
2. 工作原理
CogFindLineTool1 采用 **"多卡尺采样 + 直线拟合"** 的复合算法:
- 卡尺阵列设置:在用户指定的矩形或梯形区域内,沿直线方向均匀分布多个卡尺工具 (Caliper)
- 边缘点提取:每个卡尺在垂直于直线的方向上检测图像梯度最大的点(即直线的边缘点)
- 直线拟合:将所有提取的边缘点输入到内部的 CogFitLineTool 中,通过最小二乘法或鲁棒拟合算法计算出最优拟合直线,使均方根误差最小
- 结果优化:根据用户选择的计分函数(对比度计分、边缘宽度计分、边缘距离计分)对拟合结果进行评分,选择最优解
3. 关键特性
- 支持任意角度的直线检测
- 可处理噪声干扰和部分遮挡的直线
- 提供多种计分函数选择,适应不同场景需求
- 可与 CogFixtureTool 配合使用,在统一坐标系下进行测量
三、主要参数设置
| 参数 | 说明 |
|---|---|
| Line.StartX/StartY | 预期直线起点的 X/Y 坐标(初始搜索位置) |
| Line.EndX/EndY | 预期直线终点的 X/Y 坐标(初始搜索位置) |
| SearchRegion | 搜索区域形状(矩形或梯形)及尺寸 |
| CaliperCount | 参与检测的卡尺数量(数量越多,精度越高,但计算量越大) |
| EdgePolarity | 边缘极性选择(亮到暗、暗到亮或两者都检测) |
| Threshold | 边缘检测阈值(控制边缘点的灵敏度) |
| FittingMethod | 拟合算法选择(最小二乘法 / 鲁棒拟合) |
| ScoringMethod | 计分函数选择(对比度计分 / 边缘宽度计分 / 边缘距离计分) |
四、典型应用场景
-
工业零件检测:
- 金属板材、塑料件上的直线边缘定位与尺寸测量
- 电子元件引脚的直线度检测和间距测量
- 机械零件(如轴、杆、导轨)的直线度和垂直度检测
-
自动化装配:
- 引导机器人精确抓取具有直线边缘的零件
- 检测零件装配的对齐精度(如两个平面的平行度)
- 定位传送带或平台上的产品边缘
-
质量控制:
- 印刷品上直线图案的位置与角度验证
- 玻璃、纸张等材料的边缘缺陷检测
- 焊缝的直线度和宽度测量
-
视觉定位与标定:
- 作为基准线用于九点标定或旋转中心标定
- 与 CogFindCornerTool 配合使用,获取两条直线的交点作为定位基准
五、使用示例 (代码片段)
// 获取CogFindLineTool1工具实例
CogFindLineTool lineTool = mToolBlock.Tools["CogFindLineTool1"] as CogFindLineTool;
// 设置搜索参数(预期直线位置)
lineTool.RunParams.Line.StartX = 100; // 预估直线起点X坐标
lineTool.RunParams.Line.StartY = 200; // 预估直线起点Y坐标
lineTool.RunParams.Line.EndX = 300; // 预估直线终点X坐标
lineTool.RunParams.Line.EndY = 200; // 预估直线终点Y坐标
lineTool.RunParams.CaliperCount = 15; // 使用15个卡尺
lineTool.RunParams.EdgePolarity = CogEdgePolarityConstants.DarkToLight; // 检测暗到亮的边缘
// 运行工具
lineTool.Run();
// 获取检测结果
if (lineTool.Results.IsValid)
{
CogLine line = lineTool.Results.GetLine();
double centerX = line.CenterX;
double centerY = line.CenterY;
double rotation = line.Rotation; // 旋转角度(弧度)
double length = line.Length;
double confidence = lineTool.Results.Confidence;
Console.WriteLine($"直线中心点坐标: ({centerX}, {centerY})");
Console.WriteLine($"旋转角度: {rotation * 180 / Math.PI} 度");
Console.WriteLine($"直线长度: {length} 像素");
Console.WriteLine($"置信度: {confidence}");
}
else
{
Console.WriteLine("未检测到直线");
}
六、与其他工具的关系
| 关联工具 | 关系说明 |
|---|---|
| CogFixtureTool | 提供统一的坐标系基准,使 CogFindLineTool1 的测量结果具有全局一致性 |
| CogCaliperTool | CogFindLineTool1 的内部组件,用于边缘点提取 |
| CogFitLineTool | CogFindLineTool1 的内部组件,用于将边缘点拟合成直线 |
| CogPMAlignTool | 先通过模板匹配定位零件,再使用 CogFindLineTool1 测量直线特征 |
| CogIntersectLineLineTool | 接收 CogFindLineTool1 输出的两条直线,计算它们的交点坐标 |
| CogAngleLineLineTool | 接收 CogFindLineTool1 输出的两条直线,计算它们之间的夹角 |


7.添加测点到直线的的最短垂直距离工具
一、工具基本定位
CogDistancePointLineTool1 是康耐视 (Cognex) VisionPro 视觉软件中的高精度几何测量工具,主要用于计算一个点到一条直线的最短垂直距离,并输出该距离值以及垂足(点到直线的垂线段与直线的交点)的坐标。它是 VisionPro 中最常用的距离测量工具之一,为工业检测中的位置偏差测量、装配精度控制和几何关系验证提供可靠的量化数据。
二、核心功能与工作原理
1. 点到直线距离测量
- 精确计算点 (X,Y) 到无限长直线的最短垂直距离(欧几里得距离)
- 输出检测结果:距离值 (Distance) 和垂足坐标 (FootPoint.X, FootPoint.Y)
- 支持正负距离输出,用于判断点位于直线的哪一侧(取决于直线的方向定义)
- 可与 CogFixtureTool 配合使用,在统一坐标系下进行全局距离测量
2. 工作原理
CogDistancePointLineTool1 基于平面解析几何原理进行计算,采用以下数学模型:
- 直线参数化:将输入直线表示为标准形式
Ax + By + C = 0或两点式(x1,y1)-(x2,y2) - 距离计算:使用点到直线的距离公式计算最短距离:
plaintext
其中Distance = |A*x0 + B*y0 + C| / √(A² + B²)(x0,y0)是输入点的坐标,A,B,C是直线的系数 - 垂足计算:根据直线方程和点坐标,求解垂足坐标
(xf,yf),满足:- 垂足在直线上
- 连接点
(x0,y0)和垂足(xf,yf)的直线与原直线垂直
- 符号判断:根据点相对于直线的位置和直线的方向,确定距离值的正负号(可选)
3. 关键特性
- 亚像素级精度:计算精度可达图像的亚像素级别,满足高精度测量需求
- 实时计算:算法高效,可在工业生产线上实时运行
- 灵活输入:支持多种输入方式(直接输入坐标、从其他工具结果获取点和直线)
- 稳定可靠:不受图像噪声影响,仅基于几何参数进行计算
三、主要参数设置
| 参数 | 说明 |
|---|---|
| InputImage | 输入图像(用于可视化显示测量结果,不影响计算精度) |
| Point.X/Point.Y | 测量点的 X/Y 坐标(可手动输入或从其他工具结果链接) |
| Line | 测量直线(可手动定义或从 CogFindLineTool 等工具结果链接) |
| OutputSignedDistance | 是否输出带符号的距离值(用于判断点在直线的哪一侧) |
| CoordinateSpace | 坐标空间选择(原始图像空间或 CogFixtureTool 定义的夹具空间) |
四、典型应用场景
-
工业零件装配精度检测:
- 测量铆钉孔中心到基准边的距离,验证孔位偏差是否在公差范围内
- 检测电子元件引脚端点到 PCB 板边缘的距离,确保焊接位置准确性
- 验证机械零件上的特征点到装配基准线的距离,保证装配精度
-
位置偏差测量:
- 测量产品边缘点到传送带中心线的距离,用于自动纠偏系统
- 检测印刷图案上的标记点到设计基准线的距离,验证印刷精度
- 测量机器人抓取点到目标位置基准线的距离,用于路径校正
-
几何关系验证:
- 验证两个零件的相对位置关系(如一个零件上的点到另一个零件边缘直线的距离)
- 检测零件上的特征是否对称分布(通过测量对称点到对称轴的距离是否相等)
- 验证直线度(通过测量多个点到拟合直线的距离是否在允许范围内)
-
与其他工具协同应用:
- 配合 CogFindLineTool1 检测直线,再测量 CogFindCircleTool1 找到的圆心到该直线的距离
- 结合 CogPMAlignTool1 进行模板匹配定位,再测量特定点到参考直线的距离
五、使用示例 (代码片段)
// 获取CogDistancePointLineTool1工具实例
CogDistancePointLineTool distanceTool = mToolBlock.Tools["CogDistancePointLineTool1"] as CogDistancePointLineTool;
// 从CogFindCircleTool1获取圆心作为测量点
CogFindCircleTool circleTool = mToolBlock.Tools["CogFindCircleTool1"] as CogFindCircleTool;
CogCircle circle = circleTool.Results.GetCircle();
distanceTool.RunParams.Point.X = circle.CenterX;
distanceTool.RunParams.Point.Y = circle.CenterY;
// 从CogFindLineTool1获取直线作为测量基准
CogFindLineTool lineTool = mToolBlock.Tools["CogFindLineTool1"] as CogFindLineTool;
CogLine line = lineTool.Results.GetLine();
distanceTool.RunParams.Line = line;
// 设置输出带符号距离
distanceTool.RunParams.OutputSignedDistance = true;
// 运行工具
distanceTool.Run();
// 获取检测结果
if (distanceTool.Results.IsValid)
{
double distance = distanceTool.Results.Distance;
double footPointX = distanceTool.Results.FootPointX;
double footPointY = distanceTool.Results.FootPointY;
Console.WriteLine($"点到直线的距离: {distance} 像素");
Console.WriteLine($"垂足坐标: ({footPointX}, {footPointY})");
Console.WriteLine($"点位于直线的{(distance >= 0 ? "正" : "负")}侧");
}
else
{
Console.WriteLine("距离测量失败");
}
六、与其他工具的关系
| 关联工具 | 关系说明 |
|---|---|
| CogFindLineTool1 | 提供测量所需的直线参数,是 CogDistancePointLineTool1 最常用的直线输入源 |
| CogFindCircleTool1 | 提供测量所需的点参数(通常是圆心坐标),用于圆形特征到直线的距离测量 |
| CogFixtureTool1 | 提供统一的坐标系基准,使距离测量结果具有全局一致性,不受图像平移、旋转影响 |
| CogPMAlignTool1 | 先通过模板匹配定位零件,再使用 CogDistancePointLineTool1 测量零件上特定点到基准直线的距离 |
| CogDistancePointSegmentTool1 | 姊妹工具,用于测量点到有限长线段的最短距离(而非无限长直线) |

8.距离文本显示
一、工具基本定位
CogCreateGraphicLabelTool1 是康耐视 (Cognex) VisionPro 视觉软件中的图形标注与结果可视化工具,主要用于在检测 / 测量图像上添加自定义文本、图形标签,直观展示工具运行状态、测量数据、缺陷位置等信息。它是 VisionPro 中实现结果可视化的核心工具,既方便调试阶段的参数优化,也能为质检报告、人机交互提供清晰的图像标注支持。
二、核心功能与工作原理
1. 核心功能
- 文本标签标注:在图像指定位置添加静态文本或动态关联的测量数据(如圆心坐标、距离值、合格 / 不合格状态)。
- 图形元素标注:叠加点、线、圆、矩形、圆弧等图形,标记检测特征(如边缘位置、缺陷区域、测量基准)。
- 样式自定义:支持设置字体(大小、粗细)、颜色(文本 / 图形)、透明度、对齐方式,适配不同可视化需求。
- 动态数据关联:直接链接其他工具(如 CogFindCircleTool1、CogDistancePointLineTool1)的输出结果,标签内容随测量数据实时更新。
- 图层管理:支持多标签分层叠加,避免标注内容重叠遮挡,提升可读性。
- 状态可视化:根据检测结果自动切换标注样式(如合格为绿色、不合格为红色)。
2. 工作原理
CogCreateGraphicLabelTool1 基于图像渲染与数据绑定机制工作:
- 数据源关联:通过参数配置链接输入图像(原始图像或其他工具输出的图像)和外部数据(其他工具的测量结果、自定义变量)。
- 标注内容配置:定义标注类型(文本 / 图形)、位置、样式,若为动态文本则设置数据绑定规则(如引用
[CogFindCircleTool1.Results.Circle.Radius]显示半径值)。 - 图像渲染:将配置好的标注内容按坐标系映射到输入图像上,完成像素级渲染。
- 结果输出:生成带标注的可视化图像,可直接用于显示、存储或报告导出。
3. 关键特性
- 无侵入性:仅对图像进行可视化标注,不修改原始测量数据或图像像素信息。
- 实时性:标注内容随关联工具的运行结果即时更新,适配动态检测场景。
- 坐标系兼容:支持基于原始图像坐标系或 CogFixtureTool1 定义的夹具坐标系定位标注位置。
- 多格式支持:标注文本支持数字、字符串、表达式(如
"半径:" + Radius.ToString("F2")),满足复杂展示需求。
三、主要参数设置
| 参数 | 说明 |
|---|---|
| InputImage | 输入图像(原始图像或其他工具输出的带处理结果的图像) |
| LabelText | 标注文本内容(静态文本 / 动态数据引用,支持变量和表达式) |
| PositionX/PositionY | 标注内容的锚点坐标(文本左下角 / 图形中心点) |
| Font.Name/Size/Bold | 文本字体设置(名称、大小、是否加粗) |
| Color.Text/Color.Graphic | 文本 / 图形的颜色(RGB 值或预设颜色) |
| GraphicType | 标注类型(Text/Point/Line/Circle/Rectangle/Arc) |
| DataLink.Source | 动态数据来源(指定关联的工具及输出参数,如CogFindCircleTool1.Results.Circle.CenterX) |
| CoordinateSpace | 标注位置的坐标系(原始图像空间 / 夹具空间) |
| Layer | 标注图层编号(数值越大图层越靠上,避免遮挡) |
四、典型应用场景
-
调试阶段辅助:
- 在图像上实时显示测量值(如圆心坐标、距离值),方便调整 CogFindCircleTool1、CogDistancePointLineTool1 的参数。
- 用图形标记卡尺位置、拟合边缘,直观验证边缘提取的准确性。
-
质检结果展示:
- 在检测图像上标注 “合格 / 不合格” 状态及判定依据(如 “半径偏差:0.02mm”),生成可视化质检报告。
- 用红色矩形标记缺陷位置,配合文本说明缺陷类型(如 “边缘缺口”)。
-
人机交互界面:
- 为操作员展示关键检测数据(如零件尺寸、批次编号),简化人工复核流程。
- 在自动化产线的监控屏幕上标注实时检测结果,提升操作透明度。
-
数据可视化与存档:
- 叠加时间戳、零件编号等信息,便于检测数据的追溯与存档。
- 用不同颜色区分多个测量特征(如蓝色标注圆心、绿色标注基准线),提升数据可读性。
五、使用示例 (代码片段)
// 获取CogCreateGraphicLabelTool1工具实例
CogCreateGraphicLabelTool labelTool = mToolBlock.Tools["CogCreateGraphicLabelTool1"] as CogCreateGraphicLabelTool;
// 设置输入图像(来自CogFindCircleTool1的输出图像)
CogFindCircleTool circleTool = mToolBlock.Tools["CogFindCircleTool1"] as CogFindCircleTool;
labelTool.InputImage = circleTool.OutputImage;
// 配置动态文本标注(显示圆心坐标和半径)
labelTool.RunParams.LabelText = "圆心:({0:F2}, {1:F2}) 半径:{2:F2}px"
.Replace("{0}", circleTool.Results.Circle.CenterX.ToString("F2"))
.Replace("{1}", circleTool.Results.Circle.CenterY.ToString("F2"))
.Replace("{2}", circleTool.Results.Circle.Radius.ToString("F2"));
// 设置标注位置(圆心右侧10像素处)
labelTool.RunParams.PositionX = circleTool.Results.Circle.CenterX + 10;
labelTool.RunParams.PositionY = circleTool.Results.Circle.CenterY;
// 设置文本样式
labelTool.RunParams.Font.Name = "Arial";
labelTool.RunParams.Font.Size = 12;
labelTool.RunParams.Font.Bold = true;
labelTool.RunParams.Color.Text = CogColorConstants.Green;
// 运行工具生成标注图像
labelTool.Run();
// 获取带标注的输出图像并显示
CogImage8Grey labeledImage = labelTool.OutputImage as CogImage8Grey;
imageDisplayControl.Image = labeledImage;
六、与其他工具的关系
| 关联工具 | 关系说明 |
|---|---|
| CogFindCircleTool1/CogFindLineTool1 | 作为数据来源,为标注提供测量结果(如圆心、直线参数) |
| CogDistancePointLineTool1 | 关联距离值、垂足坐标,实现测量数据的可视化展示 |
| CogFixtureTool1 | 提供夹具坐标系,确保标注位置随零件位姿变化同步调整 |
| 图像显示控件(CogDisplay) | 接收 CogCreateGraphicLabelTool1 的输出图像,实现标注结果的实时显示 |
| CogBlobTool/CogInspectEdgeTool | 关联缺陷检测结果,用图形标记缺陷区域并添加文本说明 |


9.添加测量两点间距离测量工具
一、工具基本定位
CogDistancePointPointTool1 是康耐视 (Cognex) VisionPro 视觉软件中的高精度两点间距离测量工具,主要用于计算图像中任意两个点的直线距离(欧氏距离),并可分解输出 X、Y 方向的分量距离,同时支持在统一坐标系下完成量化测量。它是 VisionPro 中基础且核心的几何测量工具,为工业检测中的间距测量、位置偏差验证、尺寸精度判定提供直接的量化数据支持。
二、核心功能与工作原理
1. 核心功能
- 两点欧氏距离计算:精确求解任意两点间的直线距离,结果精确到亚像素级别。
- 分量距离输出:可选输出 X 方向(水平)、Y 方向(垂直)的分量距离,便于分析点在不同方向的偏移。
- 动态点关联:支持直接链接其他工具(如 CogFindCircleTool1、CogFindCornerTool1)输出的特征点(圆心、角点、直线端点),实现测量自动化。
- 坐标系兼容:可基于原始图像坐标系或 CogFixtureTool1 定义的夹具坐标系计算距离,确保测量结果的全局一致性。
- 可视化标注:可在图像上叠加距离数值标注和两点连线,直观展示测量结果。
2. 工作原理
CogDistancePointPointTool1 基于平面欧氏几何原理实现计算,核心逻辑如下:
- 坐标获取:从参数配置或关联工具中读取两个点的坐标(
Point1(X1,Y1)、Point2(X2,Y2)),并统一到指定坐标系下。 - 距离计算:通过欧氏距离公式求解直线距离:
plaintext
总距离(D) = √[(X2 - X1)² + (Y2 - Y1)²] X分量距离(Dx) = |X2 - X1| Y分量距离(Dy) = |Y2 - Y1| - 结果输出:返回总距离、分量距离(若开启)及两点坐标,并可同步生成可视化标注。
- 有效性判定:若输入点坐标无效(如关联工具未检测到特征点),工具会标记结果为无效,便于后续逻辑判断。
3. 关键特性
- 无误差累积:直接基于坐标计算,不受图像噪声或边缘提取精度的额外影响(精度取决于输入点的坐标精度)。
- 实时性强:算法简单高效,可在工业产线中实时运行,适配动态检测场景。
- 灵活输入:支持手动输入坐标、关联其他工具特征点、绑定自定义变量等多种点来源方式。
- 非侵入性:仅计算距离并标注,不修改原始图像或特征点数据。
三、主要参数设置
| 参数 | 说明 |
|---|---|
| InputImage | 输入图像(仅用于可视化标注显示,不影响距离计算精度) |
| Point1.X/Point1.Y | 第一个测量点的坐标(可手动输入,或链接 CogFindCircleTool1、CogFindCornerTool1 等工具的输出点) |
| Point2.X/Point2.Y | 第二个测量点的坐标(输入方式同 Point1) |
| OutputComponentDistance | 是否输出 X、Y 方向的分量距离(Dx、Dy) |
| CoordinateSpace | 坐标空间选择(原始图像空间 / FixtureTool 定义的夹具空间) |
| LabelVisible | 是否在图像上显示距离数值标注 |
| LabelPosition | 标注文本的显示位置(如两点连线中点、Point1 旁、Point2 旁) |
四、典型应用场景
-
工业零件尺寸测量:
- 测量电路板上两个引脚的端点间距,验证引脚排列精度。
- 检测金属零件上两个圆孔的圆心距,判断孔位加工是否符合公差要求。
- 计算机械零件对角线两端点的距离,验证零件外形尺寸是否达标。
-
装配精度检测:
- 测量两个装配零件的特征点(如卡扣与卡槽的定位点)距离,判断装配是否到位。
- 验证焊接件上焊点与基准点的距离,确保焊接位置偏差在允许范围内。
-
位置偏差验证:
- 计算产品实际特征点(如印刷标记点)与理论设计点的距离,评估印刷 / 加工偏差。
- 检测传送带上线材的两端点距离,判断线材是否拉伸或变形。
-
几何关系判定:
- 测量对称零件上两个对称点的距离,验证零件对称性。
- 计算矩形工件四个角点中对角点的距离,判断工件是否翘曲或变形。
五、使用示例 (代码片段)
// 获取CogDistancePointPointTool1工具实例
CogDistancePointPointTool distanceTool = mToolBlock.Tools["CogDistancePointPointTool1"] as CogDistancePointPointTool;
// 从CogFindCircleTool1获取第一个圆心(Point1)
CogFindCircleTool circleTool1 = mToolBlock.Tools["CogFindCircleTool1"] as CogFindCircleTool;
CogCircle circle1 = circleTool1.Results.GetCircle();
distanceTool.RunParams.Point1.X = circle1.CenterX;
distanceTool.RunParams.Point1.Y = circle1.CenterY;
// 从CogFindCircleTool2获取第二个圆心(Point2)
CogFindCircleTool circleTool2 = mToolBlock.Tools["CogFindCircleTool2"] as CogFindCircleTool;
CogCircle circle2 = circleTool2.Results.GetCircle();
distanceTool.RunParams.Point2.X = circle2.CenterX;
distanceTool.RunParams.Point2.Y = circle2.CenterY;
// 开启分量距离输出
distanceTool.RunParams.OutputComponentDistance = true;
// 运行工具
distanceTool.Run();
// 获取并输出测量结果
if (distanceTool.Results.IsValid)
{
double totalDistance = distanceTool.Results.Distance;
double dx = distanceTool.Results.DistanceX;
double dy = distanceTool.Results.DistanceY;
Console.WriteLine($"两点总距离: {totalDistance:F2} 像素");
Console.WriteLine($"X方向分量距离: {dx:F2} 像素");
Console.WriteLine($"Y方向分量距离: {dy:F2} 像素");
}
else
{
Console.WriteLine("两点距离测量失败(输入点无效)");
}
六、与其他工具的关系
| 关联工具 | 关系说明 |
|---|---|
| CogFindCircleTool1/CogFindCornerTool1 | 提供测量所需的特征点(圆心、角点),是最常用的点来源工具 |
| CogFindLineTool1 | 可提取直线的起点 / 终点作为测量点,用于线段端点间距测量 |
| CogFixtureTool1 | 提供统一的夹具坐标系,确保两点坐标在全局基准下对齐,避免图像平移 / 旋转影响测量结果 |
| CogCreateGraphicLabelTool1 | 关联距离测量结果,在图像上标注距离数值和两点连线,实现可视化展示 |
| CogBlobTool1 | 提取 Blob 区域的重心点作为测量点,用于不规则区域的间距测量 |

因为我们这个工具是靠两个点来进行角度判断的
我们这里的两个点依次为:
点1: 圆的圆心
点2: 直线的顶点
因为我们直线的顶点不没有给我们对应的XY坐标, 所以我们要添加对应的XY坐标终端

因为我们找到的夹角输出的是弧度, 所以我们要进行弧度转角度的计算
弧度和角度相互转换公式
一、核心转换公式
1. 弧度转角度
角度值 = 弧度值 × (180°/π)(原理:数学定义中,π 弧度对应 180°,因此每 1 弧度对应的角度为 180°/π,约 57.2958°)
2. 角度转弧度
弧度值 = 角度值 × (π/180°)(原理:每 1° 对应的弧度为 π/180,约 0.01745 弧度)
二、关键依据
圆周的总角度为 360°,对应的总弧度为 2π(约 6.2832 弧度),因此存在固定换算关系:π 弧度 = 180°(π 取近似值 3.1415926535 即可满足绝大多数计算需求)
三、示例计算
1. 弧度转角度
- 例 1:π/2 弧度 → (π/2) × (180°/π) = 90°
- 例 2:2 弧度 → 2 × (180°/π) ≈ 2 × 57.2958° ≈ 114.5916°
2. 角度转弧度
- 例 1:60° → 60 × (π/180°) = π/3 ≈ 1.0472 弧度
- 例 2:150° → 150 × (π/180°) = 5π/6 ≈ 2.6180 弧度

10.添加结果分析工具
一、工具基本定位
CogResultsAnalysisTool1 是康耐视 (Cognex) VisionPro 视觉软件中的检测结果综合分析与智能判定工具,主要用于整合多个视觉工具(如 CogFindCircleTool1、CogDistancePointPointTool1 等)的检测 / 测量结果,通过自定义规则完成合格性判定、数据统计、逻辑运算与异常筛选,最终输出标准化的质检结论。它是 VisionPro 中实现 “检测→分析→决策” 闭环的核心工具,为工业质检的智能化、自动化提供关键支撑。
二、核心功能与工作原理
1. 核心功能
- 多工具结果整合:支持接入任意数量视觉工具的输出结果(如尺寸、位置、置信度、缺陷数量等),形成统一的结果数据集。
- 合格性智能判定:基于预设公差阈值(上限 / 下限)或逻辑条件,对单个 / 多个检测项进行 “合格 / 不合格” 判定(支持区间判定、极值判定)。
- 数据统计分析:自动计算结果集中的关键统计量(最大值、最小值、平均值、标准差、合格率),用于产线批次质量分析。
- 逻辑运算融合:支持 “与 / 或 / 非” 逻辑组合,实现多条件联动判定(如 “圆心距合格 且 直径偏差合格 且 边缘缺陷数为 0” 时判定整体合格)。
- 异常结果筛选:标记超出阈值的异常数据,并记录异常类型(如尺寸超差、特征未检测到),便于追溯与整改。
- 标准化结果输出:输出统一格式的分析报告(含判定结论、统计数据、异常明细),可直接对接 MES 系统或质检数据库。
2. 工作原理
CogResultsAnalysisTool1 基于 **“数据采集→规则解析→运算分析→结果输出”** 的流程工作:
- 数据采集:从关联工具中读取原始检测结果(如坐标、距离、置信度),并统一转换为标准化数值格式。
- 规则配置解析:加载用户预设的判定规则(公差范围、逻辑关系、统计维度),生成可执行的分析逻辑。
- 运算分析:
- 对单一项执行阈值判定(如 “直径≥5mm 且≤5.02mm”);
- 对多项执行逻辑运算(如 “A 合格 ∧ B 合格 ∧ ¬C 异常”);
- 对批次数据执行统计计算(如近 100 件产品的尺寸平均值)。
- 结果输出:生成最终判定结论(PASS/FAIL)、统计报表及异常明细,同时支持将结果反馈给其他工具(如 CogCreateGraphicLabelTool1 用于可视化标注)。
3. 关键特性
- 灵活性:支持自定义判定规则、统计维度及输出格式,适配不同行业 / 产品的质检需求。
- 可追溯性:记录每一次分析的原始数据、判定规则及结果,便于质量问题溯源。
- 实时性:算法轻量化,可在毫秒级完成多工具结果分析,适配产线高速检测场景。
- 兼容性:无缝对接 VisionPro 所有检测 / 测量工具,且支持与外部系统(MES、数据库)的数据交互。
三、主要参数设置
| 参数 | 说明 |
|---|---|
| InputResults | 输入结果集:选择需要分析的关联工具(如 CogFindCircleTool1、CogDistancePointPointTool1)及具体输出项(如 Radius、Distance) |
| JudgmentRules | 判定规则:为每个检测项设置公差范围(UpperLimit/LowerLimit)、判定类型(区间 / 极值 / 是否有效) |
| LogicCombination | 逻辑组合:设置多项判定结果的逻辑关系(AND/OR/NOT),定义整体合格条件 |
| StatisticItems | 统计项:选择需要计算的统计量(Max/Min/Average/StdDev/QualifiedRate)及统计批次大小(如最近 50 件) |
| AbnormalMark | 异常标记:设置异常类型(超差 / 无效 / 缺失)及报警阈值,开启异常数据高亮记录 |
| OutputFormat | 输出格式:选择结果输出类型(简洁结论 / 详细报表 / JSON 数据),是否对接外部系统 |
| CoordinateSpace | 坐标空间:选择结果对应的坐标系(原始图像 / 夹具空间),确保数据基准统一 |
四、典型应用场景
-
多特征综合质检:
- 检测轴承时,整合 “内径尺寸、外径尺寸、滚珠圆心距、表面缺陷数” 的检测结果,只有所有项均合格才判定轴承合格。
- 验证 PCB 板时,结合 “焊盘间距、引脚垂直度、丝印偏移量” 的测量值,通过逻辑组合判定板卡是否达标。
-
产线批次质量分析:
- 统计每小时生产的零件尺寸平均值与标准差,实时监控设备加工精度是否漂移。
- 计算单日产品合格率,自动筛选合格率低于阈值的产线工位,触发人工复检。
-
异常数据预警与追溯:
- 当零件尺寸连续 3 次超出公差上限时,标记为 “设备异常”,并推送报警信息至产线终端。
- 记录每一个不合格品的异常类型(如 “圆心距超差 0.03mm”),生成质检明细报表供后续分析。
-
多工具结果融合判定:
- 先通过 CogPMAlignTool1 完成零件定位,再用 CogFindLineTool1 测量边缘直线度,最后由 CogResultsAnalysisTool1 判定 “定位置信度≥0.9 且 直线度≤0.01mm” 时放行。
五、使用示例 (代码片段)
// 获取CogResultsAnalysisTool1工具实例
CogResultsAnalysisTool analysisTool = mToolBlock.Tools["CogResultsAnalysisTool1"] as CogResultsAnalysisTool;
// 配置输入结果集(关联两个工具的检测项)
// 1. 关联CogFindCircleTool1的半径测量结果
analysisTool.InputResults.Add("CircleRadius", cogFindCircleTool1.Results.Circle.Radius);
// 2. 关联CogDistancePointPointTool1的圆心距测量结果
analysisTool.InputResults.Add("CenterDistance", cogDistancePointPointTool1.Results.Distance);
// 设置判定规则
analysisTool.JudgmentRules.Add("CircleRadius", 4.98, 5.02); // 半径公差:4.98~5.02mm
analysisTool.JudgmentRules.Add("CenterDistance", 10.0, 10.05); // 圆心距公差:10.0~10.05mm
// 设置逻辑组合(两个项都合格则整体合格)
analysisTool.LogicCombination = CogLogicCombinationConstants.And;
// 运行分析工具
analysisTool.Run();
// 获取分析结果
if (analysisTool.Results.IsOverallQualified)
{
Console.WriteLine("产品合格!");
Console.WriteLine($"半径:{analysisTool.Results.DetailedResults["CircleRadius"]:F2}mm");
Console.WriteLine($"圆心距:{analysisTool.Results.DetailedResults["CenterDistance"]:F2}mm");
}
else
{
Console.WriteLine("产品不合格!异常项:");
foreach (var abnormalItem in analysisTool.Results.AbnormalItems)
{
Console.WriteLine($"- {abnormalItem.Name}:{abnormalItem.Value:F2}(超出公差:{abnormalItem.LowerLimit}~{abnormalItem.UpperLimit})");
}
}
六、与其他工具的关系
| 关联工具 | 关系说明 |
|---|---|
| CogFindCircleTool1/CogDistancePointPointTool1 | 作为数据来源,提供原始检测 / 测量结果供分析 |
| CogCreateGraphicLabelTool1 | 接收分析工具的判定结果(PASS/FAIL、异常信息),在图像上标注展示 |
| CogFixtureTool1 | 提供统一坐标系基准,确保输入结果的空间一致性,避免坐标偏差影响分析结论 |
| CogPMAlignTool1 | 提供定位置信度等结果,可纳入综合判定条件(如定位精度不足时直接判定不合格) |
| MES / 数据库系统 | 接收分析工具输出的标准化结果,实现质检数据的系统化管理与追溯 |


11.添加角度终端

12.角度文本显示


13.最终效果展示

连接器距离及其角度的测量并显示就到这里,用代码去显示测量结果和其他的工具详细使用下期敬请期待发布
希望对大家有所帮助。感谢大家的关注和点赞


8508

被折叠的 条评论
为什么被折叠?



