VisionPro工具使用--->通过连接器距离及其角度的测量并显示案例掌握并学习到工具的知识点和使用步骤

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

1.添加作业

2.添加图片

3.添加 PMA模板匹配工具

4.添加坐标转换工具

一、工具基本定位

CogFixtureTool1 是康耐视 (Cognex) VisionPro 视觉软件中的核心坐标系管理工具 ,主要用于创建和管理图像中的坐标系转换。它是 VisionPro 中最常用的定位工具之一,为后续的视觉检测、测量和分析提供统一的基准坐标系。

二、核心功能与工作原理

1. 坐标系转换

  • 将图像从原始坐标系 (UnfixturedSpace) 转换到用户定义的固定坐标系 (FixturedSpace)
  • 基于二维变换关系(平移、旋转、缩放) 进行精确坐标映射
  • 为输入图像的坐标空间树添加用户空间坐标系统,明确图像中各元素的位置关系

2. 图像对齐定位

  • 对齐不同位置或姿态下获取的图像,统一到特定参考状态
  • 输出包含新坐标系信息的图像,供后续工具使用
  • 与 CogPMAlignTool (模板匹配工具) 配合使用,根据零件相对于模板图像的位姿关系建立新坐标系

3. 关键操作流程

  1. 从其他工具 (如 CogPMAlignTool) 获取 2D 变换关系
  2. 创建新的定位坐标系并添加到图像的坐标空间树
  3. 生成带有新坐标系的输出图像
  4. 后续工具基于此固定坐标系进行精确检测和测量
三、主要参数设置
参数 说明
TranslationX 新坐标系的原点 X 坐标值
TranslationY 新坐标系的原点 Y 坐标值
Rotation 新坐标系的旋转角度 (度)
坐标系名称 定义定位坐标系的标识,默认如 "Fixture_1"Cognex
运行状态 设置工具是否自动运行 (默认开启)Cognex
四、典型应用场景
  1. 工业检测:定位产品在图像中的精确位置,用于尺寸测量、缺陷检测Cognex
  2. 自动化装配:引导机器人精确抓取和放置零件,确保装配精度康耐视
  3. 质量控制:统一不同批次、不同位置产品的检测基准,提高检测一致性Cognex
  4. 物流分拣:识别和定位包裹、零件,实现高效分拣和追踪Cognex
五、使用示例 (代码片段)
cs 复制代码
// 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 采用 **"卡尺 + 圆拟合"** 的复合算法:

  1. 卡尺采样:在用户指定的环形区域内,沿圆周均匀分布多个卡尺工具 (Caliper)
  2. 边缘提取:每个卡尺在半径方向上检测图像梯度最大的点(即圆的边缘点)
  3. 圆拟合 :将所有提取的边缘点输入到内部的 CogFitCircleTool 中,通过最小二乘法计算出最优拟合圆,使均方根误差最小
  4. 结果输出:返回拟合圆的几何参数及质量评估指标

3. 关键特性

  • 支持任意角度范围的圆弧检测(无需完整圆形)
  • 可处理不同对比度的图像(亮背景上的暗圆或暗背景上的亮圆)
  • 自动过滤噪声点,提高检测稳定性
  • 可与 CogFixtureTool 配合使用,在统一坐标系下进行测量
三、主要参数设置
参数 说明
Circle.CenterX/CenterY 预期圆心的 X/Y 坐标(初始搜索位置)
Circle.Radius 预期圆的半径(初始搜索范围)
AnnulusWidth 环形搜索区域的宽度(决定卡尺的检测范围)
CaliperCount 参与检测的卡尺数量(数量越多,精度越高,但计算量越大)
AngleRangeStart/End 卡尺分布的起始 / 结束角度(用于检测部分圆弧)
EdgePolarity 边缘极性选择(亮到暗、暗到亮或两者都检测)
Threshold 边缘检测阈值(控制边缘点的灵敏度)
四、典型应用场景
  1. 工业零件检测

    • 轴承、齿轮、螺栓等圆形零件的尺寸测量(直径、圆度)
    • 金属板材、塑料件上的圆孔定位与孔径检测
    • 电子元件(如电容、电阻)的引脚间距测量
  2. 自动化装配

    • 引导机器人精确抓取圆形零件
    • 检测零件装配位置的同轴度(如轴与孔的配合)
  3. 质量控制

    • 瓶盖、瓶口的圆度检测,防止密封不良
    • 圆形工件的表面缺陷检测(结合 FindCircleDefects 工具)
    • 印刷品上圆形图案的位置与尺寸验证
  4. 医疗与生命科学

    • 细胞、细菌等微生物的圆形特征检测
    • 医疗设备中圆形部件的精度检测
五、使用示例 (代码片段)
cs 复制代码
// 获取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 采用 **"多卡尺采样 + 直线拟合"** 的复合算法:

  1. 卡尺阵列设置:在用户指定的矩形或梯形区域内,沿直线方向均匀分布多个卡尺工具 (Caliper)
  2. 边缘点提取:每个卡尺在垂直于直线的方向上检测图像梯度最大的点(即直线的边缘点)
  3. 直线拟合 :将所有提取的边缘点输入到内部的 CogFitLineTool 中,通过最小二乘法鲁棒拟合算法计算出最优拟合直线,使均方根误差最小
  4. 结果优化:根据用户选择的计分函数(对比度计分、边缘宽度计分、边缘距离计分)对拟合结果进行评分,选择最优解

3. 关键特性

  • 支持任意角度的直线检测
  • 可处理噪声干扰部分遮挡的直线
  • 提供多种计分函数选择,适应不同场景需求
  • 可与 CogFixtureTool 配合使用,在统一坐标系下进行测量
三、主要参数设置
参数 说明
Line.StartX/StartY 预期直线起点的 X/Y 坐标(初始搜索位置)
Line.EndX/EndY 预期直线终点的 X/Y 坐标(初始搜索位置)
SearchRegion 搜索区域形状(矩形或梯形)及尺寸
CaliperCount 参与检测的卡尺数量(数量越多,精度越高,但计算量越大)
EdgePolarity 边缘极性选择(亮到暗、暗到亮或两者都检测)
Threshold 边缘检测阈值(控制边缘点的灵敏度)
FittingMethod 拟合算法选择(最小二乘法 / 鲁棒拟合)
ScoringMethod 计分函数选择(对比度计分 / 边缘宽度计分 / 边缘距离计分)
四、典型应用场景
  1. 工业零件检测

    • 金属板材、塑料件上的直线边缘定位与尺寸测量
    • 电子元件引脚的直线度检测和间距测量
    • 机械零件(如轴、杆、导轨)的直线度和垂直度检测
  2. 自动化装配

    • 引导机器人精确抓取具有直线边缘的零件
    • 检测零件装配的对齐精度(如两个平面的平行度)
    • 定位传送带或平台上的产品边缘
  3. 质量控制

    • 印刷品上直线图案的位置与角度验证
    • 玻璃、纸张等材料的边缘缺陷检测
    • 焊缝的直线度和宽度测量
  4. 视觉定位与标定

    • 作为基准线用于九点标定或旋转中心标定
    • 与 CogFindCornerTool 配合使用,获取两条直线的交点作为定位基准
五、使用示例 (代码片段)
cs 复制代码
// 获取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 基于平面解析几何原理进行计算,采用以下数学模型:

  1. 直线参数化 :将输入直线表示为标准形式 Ax + By + C = 0 或两点式 (x1,y1)-(x2,y2)

  2. 距离计算 :使用点到直线的距离公式计算最短距离:

    plaintext

    复制代码
    Distance = |A*x0 + B*y0 + C| / √(A² + B²)

    其中 (x0,y0) 是输入点的坐标,A,B,C 是直线的系数

  3. 垂足计算 :根据直线方程和点坐标,求解垂足坐标 (xf,yf),满足:

    • 垂足在直线上
    • 连接点 (x0,y0) 和垂足 (xf,yf) 的直线与原直线垂直
  4. 符号判断:根据点相对于直线的位置和直线的方向,确定距离值的正负号(可选)

3. 关键特性

  • 亚像素级精度:计算精度可达图像的亚像素级别,满足高精度测量需求
  • 实时计算:算法高效,可在工业生产线上实时运行
  • 灵活输入:支持多种输入方式(直接输入坐标、从其他工具结果获取点和直线)
  • 稳定可靠:不受图像噪声影响,仅基于几何参数进行计算
三、主要参数设置
参数 说明
InputImage 输入图像(用于可视化显示测量结果,不影响计算精度)
Point.X/Point.Y 测量点的 X/Y 坐标(可手动输入或从其他工具结果链接)
Line 测量直线(可手动定义或从 CogFindLineTool 等工具结果链接)
OutputSignedDistance 是否输出带符号的距离值(用于判断点在直线的哪一侧)
CoordinateSpace 坐标空间选择(原始图像空间或 CogFixtureTool 定义的夹具空间)
四、典型应用场景
  1. 工业零件装配精度检测

    • 测量铆钉孔中心到基准边的距离,验证孔位偏差是否在公差范围内
    • 检测电子元件引脚端点到 PCB 板边缘的距离,确保焊接位置准确性
    • 验证机械零件上的特征点到装配基准线的距离,保证装配精度
  2. 位置偏差测量

    • 测量产品边缘点到传送带中心线的距离,用于自动纠偏系统
    • 检测印刷图案上的标记点到设计基准线的距离,验证印刷精度
    • 测量机器人抓取点到目标位置基准线的距离,用于路径校正
  3. 几何关系验证

    • 验证两个零件的相对位置关系(如一个零件上的点到另一个零件边缘直线的距离)
    • 检测零件上的特征是否对称分布(通过测量对称点到对称轴的距离是否相等)
    • 验证直线度(通过测量多个点到拟合直线的距离是否在允许范围内)
  4. 与其他工具协同应用

    • 配合 CogFindLineTool1 检测直线,再测量 CogFindCircleTool1 找到的圆心到该直线的距离
    • 结合 CogPMAlignTool1 进行模板匹配定位,再测量特定点到参考直线的距离
五、使用示例 (代码片段)
cs 复制代码
// 获取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 基于图像渲染与数据绑定机制工作:

  1. 数据源关联:通过参数配置链接输入图像(原始图像或其他工具输出的图像)和外部数据(其他工具的测量结果、自定义变量)。
  2. 标注内容配置 :定义标注类型(文本 / 图形)、位置、样式,若为动态文本则设置数据绑定规则(如引用[CogFindCircleTool1.Results.Circle.Radius]显示半径值)。
  3. 图像渲染:将配置好的标注内容按坐标系映射到输入图像上,完成像素级渲染。
  4. 结果输出:生成带标注的可视化图像,可直接用于显示、存储或报告导出。

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 标注图层编号(数值越大图层越靠上,避免遮挡)
四、典型应用场景
  1. 调试阶段辅助

    • 在图像上实时显示测量值(如圆心坐标、距离值),方便调整 CogFindCircleTool1、CogDistancePointLineTool1 的参数。
    • 用图形标记卡尺位置、拟合边缘,直观验证边缘提取的准确性。
  2. 质检结果展示

    • 在检测图像上标注 "合格 / 不合格" 状态及判定依据(如 "半径偏差:0.02mm"),生成可视化质检报告。
    • 用红色矩形标记缺陷位置,配合文本说明缺陷类型(如 "边缘缺口")。
  3. 人机交互界面

    • 为操作员展示关键检测数据(如零件尺寸、批次编号),简化人工复核流程。
    • 在自动化产线的监控屏幕上标注实时检测结果,提升操作透明度。
  4. 数据可视化与存档

    • 叠加时间戳、零件编号等信息,便于检测数据的追溯与存档。
    • 用不同颜色区分多个测量特征(如蓝色标注圆心、绿色标注基准线),提升数据可读性。
五、使用示例 (代码片段)
cs 复制代码
// 获取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 基于平面欧氏几何原理实现计算,核心逻辑如下:

  1. 坐标获取 :从参数配置或关联工具中读取两个点的坐标(Point1(X1,Y1)Point2(X2,Y2)),并统一到指定坐标系下。

  2. 距离计算 :通过欧氏距离公式求解直线距离:

    plaintext

    复制代码
    总距离(D) = √[(X2 - X1)² + (Y2 - Y1)²]
    X分量距离(Dx) = |X2 - X1|
    Y分量距离(Dy) = |Y2 - Y1|
  3. 结果输出:返回总距离、分量距离(若开启)及两点坐标,并可同步生成可视化标注。

  4. 有效性判定:若输入点坐标无效(如关联工具未检测到特征点),工具会标记结果为无效,便于后续逻辑判断。

3. 关键特性

  • 无误差累积:直接基于坐标计算,不受图像噪声或边缘提取精度的额外影响(精度取决于输入点的坐标精度)。
  • 实时性强:算法简单高效,可在工业产线中实时运行,适配动态检测场景。
  • 灵活输入:支持手动输入坐标、关联其他工具特征点、绑定自定义变量等多种点来源方式。
  • 非侵入性:仅计算距离并标注,不修改原始图像或特征点数据。
三、主要参数设置
参数 说明
InputImage 输入图像(仅用于可视化标注显示,不影响距离计算精度)
Point1.X/Point1.Y 第一个测量点的坐标(可手动输入,或链接 CogFindCircleTool1、CogFindCornerTool1 等工具的输出点)
Point2.X/Point2.Y 第二个测量点的坐标(输入方式同 Point1)
OutputComponentDistance 是否输出 X、Y 方向的分量距离(Dx、Dy)
CoordinateSpace 坐标空间选择(原始图像空间 / FixtureTool 定义的夹具空间)
LabelVisible 是否在图像上显示距离数值标注
LabelPosition 标注文本的显示位置(如两点连线中点、Point1 旁、Point2 旁)
四、典型应用场景
  1. 工业零件尺寸测量

    • 测量电路板上两个引脚的端点间距,验证引脚排列精度。
    • 检测金属零件上两个圆孔的圆心距,判断孔位加工是否符合公差要求。
    • 计算机械零件对角线两端点的距离,验证零件外形尺寸是否达标。
  2. 装配精度检测

    • 测量两个装配零件的特征点(如卡扣与卡槽的定位点)距离,判断装配是否到位。
    • 验证焊接件上焊点与基准点的距离,确保焊接位置偏差在允许范围内。
  3. 位置偏差验证

    • 计算产品实际特征点(如印刷标记点)与理论设计点的距离,评估印刷 / 加工偏差。
    • 检测传送带上线材的两端点距离,判断线材是否拉伸或变形。
  4. 几何关系判定

    • 测量对称零件上两个对称点的距离,验证零件对称性。
    • 计算矩形工件四个角点中对角点的距离,判断工件是否翘曲或变形。
五、使用示例 (代码片段)
cs 复制代码
// 获取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 基于 **"数据采集→规则解析→运算分析→结果输出"** 的流程工作:

  1. 数据采集:从关联工具中读取原始检测结果(如坐标、距离、置信度),并统一转换为标准化数值格式。
  2. 规则配置解析:加载用户预设的判定规则(公差范围、逻辑关系、统计维度),生成可执行的分析逻辑。
  3. 运算分析
    • 对单一项执行阈值判定(如 "直径≥5mm 且≤5.02mm");
    • 对多项执行逻辑运算(如 "A 合格 ∧ B 合格 ∧ ¬C 异常");
    • 对批次数据执行统计计算(如近 100 件产品的尺寸平均值)。
  4. 结果输出:生成最终判定结论(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 坐标空间:选择结果对应的坐标系(原始图像 / 夹具空间),确保数据基准统一
四、典型应用场景
  1. 多特征综合质检

    • 检测轴承时,整合 "内径尺寸、外径尺寸、滚珠圆心距、表面缺陷数" 的检测结果,只有所有项均合格才判定轴承合格。
    • 验证 PCB 板时,结合 "焊盘间距、引脚垂直度、丝印偏移量" 的测量值,通过逻辑组合判定板卡是否达标。
  2. 产线批次质量分析

    • 统计每小时生产的零件尺寸平均值与标准差,实时监控设备加工精度是否漂移。
    • 计算单日产品合格率,自动筛选合格率低于阈值的产线工位,触发人工复检。
  3. 异常数据预警与追溯

    • 当零件尺寸连续 3 次超出公差上限时,标记为 "设备异常",并推送报警信息至产线终端。
    • 记录每一个不合格品的异常类型(如 "圆心距超差 0.03mm"),生成质检明细报表供后续分析。
  4. 多工具结果融合判定

    • 先通过 CogPMAlignTool1 完成零件定位,再用 CogFindLineTool1 测量边缘直线度,最后由 CogResultsAnalysisTool1 判定 "定位置信度≥0.9 直线度≤0.01mm" 时放行。
五、使用示例 (代码片段)
cs 复制代码
// 获取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.最终效果展示

连接器距离及其角度的测量并显示就到这里,用代码去显示测量结果和其他的工具详细使用下期敬请期待发布

希望对大家有所帮助。感谢大家的关注和点赞

相关推荐
南龙大魔王4 小时前
spring ai Alibaba(SAA)学习(二)
java·人工智能·spring boot·学习·ai
my_angle20164 小时前
c语言 个人学习计划打卡与番茄钟程序
学习
代码游侠5 小时前
应用——Linux进程编程实例分析
linux·运维·网络·笔记·学习·算法
大道之简5 小时前
SpringAI入门学习
学习
在坚持一下我可没意见5 小时前
Spring 开发小白学习过程中常用通用配置文件,即拿即用!(持续更新中)
java·数据库·后端·学习·spring·tomcat·mybatis
极智视界5 小时前
目标检测数据集 - 自动驾驶平台Carla图像交通元素目标检测数据集下载
yolo·目标检测·自动驾驶·数据集·voc·coco·carla
m0_689618285 小时前
这款微光学天线让机器人拥有“超灵敏多感官”,重量仅0.1克
网络·笔记·学习
CNU-ZQQ5 小时前
opencv Cmake CUDA问题
人工智能·opencv·计算机视觉
冰封剑心5 小时前
适用于单张图片、多张图片和高帧率视频理解的GPT-4o级别的MLLM手机应用
人工智能·计算机视觉