当前位置: 首页 > news >正文

C# 在 VisionPro 机器视觉中的图形绘制实战详解

前言

在康耐视 VisionPro 项目开发里,ToolBlock 高级 C# 脚本绘图是工业视觉标注标配,不管 Blob 缺陷描边、模板定位框、尺寸文字标注,全都依靠ICogGraphic系列对象实现。本文结合 Blob 轮廓提取案例,拆解 VisionPro 专属 C# 绘图架构、标准编码规范与避坑要点,适合做视觉上位机、在线检测项目开发人员参考。

一、VisionPro 绘图核心设计思想

VisionPro 脚本绘图遵循先缓存、后绘制原则,分为两步:

  1. 数据收集阶段(GroupRun):遍历视觉结果,生成圆、多边形、十字、文本等图元,存入统一集合;
  2. 画面渲染阶段(ModifyLastRunRecord):回调函数批量把集合内所有图形渲染到图像图层。 优势:避免循环中频繁刷新画面,提升运行效率,防止多次运行图形叠加错乱,也是工业项目保证鲁棒性的标准写法。

二、关键类与 API 说明

1. 容器:CogGraphicCollection

作用:统一管理所有绘图元素(CogPolygon、CogGraphicLabel、CogGraphicLine),相当于图形仓库。

csharp

运行

private CogGraphicCollection gc = new CogGraphicCollection();
  • gc.Clear():每次工具运行清空历史图形,杜绝残留;
  • gc.Add(图元):将生成的图形存入容器等待绘制。

2. Blob 轮廓:GetBoundary ()

CogBlobResult.GetBoundary():依据斑点像素边界自动生成闭合多边形CogPolygon,自动贴合不规则工件、裂纹、孔洞外形,无需手动描点。

  • Color:设置轮廓线条颜色(Red/Green/Blue/Yellow);
  • Space:绑定图像坐标系CogGraphicSpaceConstants.Image必加配置,防止图像缩放、工件偏移后图形错位。

3. 渲染函数:AddGraphicToRunRecord

mToolBlock.AddGraphicToRunRecord(图形, lastRecord, "图层名称", "");
图层参数使用场景
DisplayLayer主预览窗口显示(项目通用)
工具名.InputImage仅对应工具弹窗内显示(调试用)

三、完整落地代码

#region namespace imports using System; using Cognex.VisionPro; using Cognex.VisionPro.ToolBlock; using Cognex.VisionPro.Blob; using Cognex.VisionPro.Graphics; #endregion #region Private Member Variables private CogToolBlock mToolBlock; //全局图形缓存集合 private CogGraphicCollection gc = new CogGraphicCollection(); #endregion public override bool GroupRun(ref string message, ref CogToolResultConstants result) { gc.Clear(); //顺序执行块内全部视觉工具 foreach (ICogTool tool in mToolBlock.Tools) mToolBlock.RunTool(tool, ref message, ref result); //绑定Blob工具,增加空判断提升鲁棒性 CogBlobTool blob = mToolBlock.Tools["CogBlobTool1"] as CogBlobTool; if (blob == null || blob.Results == null) { message = "Blob工具加载异常"; result = CogToolResultConstants.Accept; return false; } CogBlobResult[] blobArr = blob.Results.GetBlobs(); //遍历所有斑点生成红色轮廓 foreach (CogBlobResult item in blobArr) { CogPolygon boundary = item.GetBoundary(); boundary.Color = CogColorConstants.Red; //绑定图像像素坐标系 boundary.Space = CogGraphicSpaceConstants.Image; gc.Add(boundary); } message = $"检出斑点数量:{blobArr.Length}"; return false; } //回调:统一绘制所有缓存图形 public override void ModifyLastRunRecord(ICogRecord lastRecord) { foreach (ICogGraphic graphic in gc) { mToolBlock.AddGraphicToRunRecord(graphic, lastRecord, "DisplayLayer", ""); } } //脚本初始化,绑定工具块对象 public override void Initialize(Cognex.VisionPro.ToolGroup host) { base.Initialize(host); mToolBlock = host as CogToolBlock; }

四、高频踩坑总结

  1. 图形不显示:图层写错,调试改用DisplayLayer
  2. 轮廓偏移乱跑:缺少Space = Image坐标系绑定;
  3. 多次运行轮廓层层叠加:GroupRun 首行缺少gc.Clear()
  4. 空指针报错:未对 Blob、Blob.Results 做判空,无产品时程序崩溃。

五、功能拓展开发

  1. 斑点中心标注:循环内新增CogGraphicLabel,在质心位置标注斑点面积、序号;
  2. 分级变色:通过 Blob 面积阈值区分大小缺陷,大缺陷红框、小杂质绿框;
  3. 数据输出:统计合格 / 不良数量,输出数据对接 IO、上位机 TCP 通讯。

六、总结

基于 C# 的 VisionPro 绘图是机器视觉工程师必备技能,容器缓存 + 回调绘制的架构不仅适配 Blob,同样适用于 PMAlign 定位框、卡尺尺寸线、拟合圆标注等全场景。熟练掌握该写法,可快速完成外观检测、尺寸测量项目的画面可视化开发,为后续 C# 联合 VisionPro 做 WinForm 上位机打下基础。

http://www.jsqmd.com/news/943107/

相关文章:

  • 企业网站怎么做? - 码云数智
  • 浙江 GEO/SEO 优化公司实测榜单推荐|2026 靠谱优化服务商甄选参考 - 商业新知
  • 核心推荐:2026年西安母婴家庭首选CMA检测机构 - 资讯快报
  • 转载--Hermes Agent 05 | 记忆系统(上):内置记忆的冻结快照模式与 agent-curated 策展
  • WSL 是什么
  • UVa 371 Ackermann Functions
  • 车库蓬包选型攻略:佛山业主实测避坑指南 - 品牌优选官
  • 岳阳电磁铁采购成本优化指南:同样预算下如何选到最划算的厂家 - 优质企业观察收录
  • 魔高一尺道高一丈
  • 4.1 监督学习入门:线性回归与分类
  • 天猫超市卡怎么回收?2026最新攻略:线上/二手/熟人全对比 - 可可收公众号
  • 教培AIGEO内容合规红线与账号长效避雷维稳策略|企优托一网推马奔
  • 西安金典建筑装饰装修:新城靠谱的旧房改造公司有哪些 - LYL仔仔
  • Alphabet计划募资800亿美元,全力押注AI基础设施建设
  • 2026年嘉兴AI搜索优化与短视频全案运营:制造业获客方案对照拆解 - 企业名录优选推荐
  • 深度解析nCov2019_data_crawler开源数据工程:从Python爬虫源码剖析到公共卫生数据挖掘实战的自动化采集系统
  • 告别Oracle官网下载烦恼:用Homebrew在Mac上一行命令搞定JDK 21安装与切换
  • PyCharm配置与爬虫入门指南
  • CMake中GLOB命令的“坑”与“宝”:从一次构建失败案例,聊聊自动收集源文件的正确姿势
  • 论文提前检测重复率高会影响最终检测结果吗?
  • MATLAB实现LFM信号脉冲压缩:匹配滤波仿真脚本与性能分析
  • 珠海爱彼皇家橡树表针掉了一根!在表盘里“游走”,会不会划伤表盘?紧急处理方法来了 - 亨得利官方维修中心
  • 手表回收避坑实测:我带绿水鬼亲测4店,合扬最快15分钟办结到账 - 合扬奢侈品交易中心
  • 4.2 决策树与随机森林
  • STM32F407通过SPI驱动ADS8361实现16位双通道同步采样(Keil工程+硬件配置指南)
  • 用PyTorch从零搭建U-Net:手把手教你实现医学图像分割(附完整代码与DRIVE数据集处理)
  • UVa 372 WhatFix Notation
  • 2026年6月无锡跑网约车租车避坑指南:正规直营门店TOP3推荐 - 资讯速览
  • 运维避坑指南:用非root用户安装KingbaseES V8的正确姿势(附服务注册与开机自启)
  • 实验随笔|SQL 数据库安全权限实操