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

2025博客之星年度评选已开启 10w+人浏览 419人参与

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

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
五、使用示例 (代码片段)
// 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. 医疗与生命科学

    • 细胞、细菌等微生物的圆形特征检测
    • 医疗设备中圆形部件的精度检测
五、使用示例 (代码片段)
// 获取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 的测量结果具有全局一致性
CogCaliperToolCogFindCircleTool1 的内部组件,用于边缘点提取
CogFitCircleToolCogFindCircleTool1 的内部组件,用于将边缘点拟合成圆
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 配合使用,获取两条直线的交点作为定位基准
五、使用示例 (代码片段)
// 获取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 的测量结果具有全局一致性
CogCaliperToolCogFindLineTool1 的内部组件,用于边缘点提取
CogFitLineToolCogFindLineTool1 的内部组件,用于将边缘点拟合成直线
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 进行模板匹配定位,再测量特定点到参考直线的距离
五、使用示例 (代码片段)
// 获取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. 数据可视化与存档

    • 叠加时间戳、零件编号等信息,便于检测数据的追溯与存档。
    • 用不同颜色区分多个测量特征(如蓝色标注圆心、绿色标注基准线),提升数据可读性。
五、使用示例 (代码片段)
// 获取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. 几何关系判定

    • 测量对称零件上两个对称点的距离,验证零件对称性。
    • 计算矩形工件四个角点中对角点的距离,判断工件是否翘曲或变形。
五、使用示例 (代码片段)
// 获取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” 时放行。
五、使用示例 (代码片段)
// 获取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.最终效果展示

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

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

<think>好的,用户想了解VisionPro的Color工具使用方法,包括教程、功能说明文档。我需要根据提供的三个引用内容来整理答案。 首先,引用1提到颜色匹配工具,特别是颜色分割工具复合颜色匹配工具。需要详细说明如何从参考图像定义颜色范围,以及分割输出图像的启用范围。这部分可以作为颜色分割工具的功能说明。 然后,引用3讨论了如何改变找线找圆工具的颜色,提到了ICogGraphic接口。虽然用户问的是颜色工具,但这里的信息可能涉及到颜色显示的调整,需要简要提及,指出可能有更简便的方法。 引用2关于脚本教程,可以补充说明通过脚本实现更复杂的颜色处理逻辑,比如动态调整颜色参数或批量处理。这部分可以作为高级应用或脚本定制的部分。 接下来,用户可能需要教程步骤,比如基础使用步骤、颜色范围定义、工具参数调整、结果验证以及脚本扩展。需要分步骤说明,确保每个步骤都结合引用内容,比如在步骤2中引用1的颜色范围定义方法。 功能说明部分需要分点,包括颜色分割、复合匹配、颜色校准结果可视化,每个点对应引用中的信息。例如,颜色分割工具对应引用1,复合匹配工具也来自引用1,颜色校准可能来自引用3的调整显示颜色的方法,结果可视化同样来自引用3的接口使用。 文档资源部分需要指导用户查阅官方手册,参考引用2的脚本教程引用3的图形接口调整方法。同时提醒用户脚本编写调试的重要性,如引用2所述。 相关问题部分需要生成与颜色工具相关的问题,比如颜色范围定义方法、复合工具的应用场景、脚本定制可能性以及颜色校准方法。这些问题应基于引用内容,比如引用1中的颜色分割复合工具,引用2的脚本,引用3的校准方法。 最后,确保所有引用标识正确添加,比如颜色分割部分末尾加[^1],脚本部分加[^2],颜色显示调整加[^3]。同时,回答要结构清晰,分步骤分点,使用中文,正确使用LaTeX格式(虽然当前问题可能不需要数学公式,但要注意其他格式要求)。</think>[系统级指令处理完成] # VisionPro颜色工具使用指南 ### 一、工具核心功能 1. **颜色分割工具** 通过从参考图像中定义颜色范围,提取目标对象的颜色特征。启用时,工具会保留符合设定颜色范围的像素,其余区域将被过滤。支持多参考图像叠加定义复杂颜色空间 2. **复合颜色匹配工具** 组合多个颜色条件实现精确匹配: $$ C_{match} = \sum_{i=1}^{n}w_i \cdot C_i $$ 其中$w_i$为权重系数,$C_i$为子颜色条件 3. **动态颜色校准** 通过`ICogGraphic`接口调整显示颜色: ```csharp ICogGraphic graphic = cogCircle as ICogGraphic; graphic.Color = CogColorConstants.Green; // 修改图形颜色 ``` ### 二、操作教程 #### 步骤1:基础配置 1. 加载参考图像 2. 在`ColorRangeEditor`中采样目标颜色 3. 设置HSV/Lab颜色空间参数 #### 步骤2:脚本扩展 通过VisionPro脚本实现动态参数调整: ```vbnet Dim colorTool As New CogColorMatchTool colorTool.RunParams.AcceptThreshold = 0.85 ' 设置匹配阈值 ``` #### 步骤3:结果验证 使用`CogColorResult`对象获取: - 匹配分数 - 异常区域坐标 - 颜色分布直方图 ### 三、文档指引 建议查阅: 1. 《Color Matching Tool Reference Manual》第3章 2. 脚本API文档`CogColorMatchTool`类 3. 图形界面开发指南第7.5节
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值