VisionPro 机器视觉案例 之 黑色齿轮
第十五篇 机器视觉案例 之 齿轮齿数检测
文章目录
- 第十五篇 机器视觉案例 之 齿轮齿数检测
- 1.案例要求
- 2.实现思路
- 2.1 统计齿轮齿数使用模板匹配工具CogPMAlignTool,并从模板匹配工具的结果集中得到每一个齿的中心点。
- 2.2 测量距离需要知道两个坐标点,一个是每一个齿的坐标,一个是齿轮中心坐标:齿的坐标已经获得,中心坐标需要一个找圆工具CogFindCircleTool通过找拟合圆得到圆心,找圆工具需要一个圆心的大致坐标位置,因此再使用一个模板匹配工具,最后使用点点距离测量工具测得距离
- 2.3 距离的输出要求按照每行五个输出,需要对输出的坐标进行处理,代码如下
- 3.使用控件
- 3.1 模板匹配工具 —— CogPMAlignTool
- 3.2 找圆工具 —— CogFindCircleTool
- 3.3 点点距离工具 —— CogDistancePointPointTool
- 4.代码逻辑
- 5.实现效果
- 6.知识点总结
- 6.1 找圆工具的参数
1.案例要求
- 检测齿轮齿数
- 测量每一个齿中心到齿轮中心的距离,并将结果按照每行五个的格式输出

2.实现思路
2.1 统计齿轮齿数使用模板匹配工具CogPMAlignTool,并从模板匹配工具的结果集中得到每一个齿的中心点。
2.2 测量距离需要知道两个坐标点,一个是每一个齿的坐标,一个是齿轮中心坐标:齿的坐标已经获得,中心坐标需要一个找圆工具CogFindCircleTool通过找拟合圆得到圆心,找圆工具需要一个圆心的大致坐标位置,因此再使用一个模板匹配工具,最后使用点点距离测量工具测得距离
2.3 距离的输出要求按照每行五个输出,需要对输出的坐标进行处理,代码如下
double x=i%5*100+100; double y=i/5*50+100;
3.使用控件
3.1 模板匹配工具 —— CogPMAlignTool
模板匹配工具一用来获得圆心大致位置,给找圆工具

模板匹配工具二用来找到每一个齿,需要调整旋转角度与查找概数
3.2 找圆工具 —— CogFindCircleTool
- 添加终端给坐标
- 调整参数
- 旋转角度为360°
- 卡尺数量:数量越多找的圆越精确(合适的数量即可,过大的数量会导致工具卡顿)
- 搜索方向:向内或向外,这里是向外

3.3 点点距离工具 —— CogDistancePointPointTool
在代码中循环给工具赋值

4.代码逻辑
CogPMAlignTool pma = mToolBlock.Tools["CogPMAlignTool2"]as CogPMAlignTool;CogDistancePointPointTool dis = mToolBlock.Tools["CogDistancePointPointTool1"]as CogDistancePointPointTool;CogFindCircleTool fct = mToolBlock.Tools["CogFindCircleTool1"]as CogFindCircleTool;int count = pma.Results.Count;labels = new CogGraphicLabel[count];Label.SetXYText(200,50,"一共有"+count.ToString()+"个");Label.Color = CogColorConstants.Magenta;Label.Font = new Font("楷体",20);for(int i = 0;i < count;i++){CogGraphicLabel label=new CogGraphicLabel();double x1 = pma.Results[i].GetPose().TranslationX;double y1 = pma.Results[i].GetPose().TranslationY;double X = fct.Results.GetCircle().CenterX;double Y = fct.Results.GetCircle().CenterY;dis.StartX = x1;dis.StartY = y1;dis.EndX = X;dis.EndY = Y;dis.Run();double distance = dis.Distance;double x=i%5*100+100;double y=i/5*50+100;label.SetXYText(x, y, "距离:"+distance.ToString("F0"));label.Color = CogColorConstants.Orange;labels[i] = label;}
5.实现效果

6.知识点总结
6.1 找圆工具的参数
- 卡尺数量:指参与找圆的圆周上半径方向的找区分点的数量。这些点用于拟合圆,数量越多,拟合的圆可能越准确,但计算量也会相应增加。
- 搜索长度:卡尺搜索区域的长度,即沿圆周方向搜索的范围。这个参数决定了搜索的精细程度。
- 投影长度:卡尺搜索区域的宽度,即径向搜索的范围。它影响搜索的敏感度和准确性。
- 搜索方向:搜索可以从内向外或由外向内进行,哪个方向区分度明显就选哪个方向。
- 预期圆弧参数:用户可以根据需要设置预期圆弧的中心点、半径、起始角度及角度范围等,以帮助工具更准确地找到圆。
- 忽略点数:在拟合过程中,可以忽略掉参与拟合点中误差过大的点。通常可以选取总点数的5%作为忽略点,以提高拟合的准确性。
相关文章:
VisionPro 机器视觉案例 之 黑色齿轮
第十五篇 机器视觉案例 之 齿轮齿数检测 文章目录 第十五篇 机器视觉案例 之 齿轮齿数检测1.案例要求2.实现思路2.1 统计齿轮齿数使用模板匹配工具CogPMAlignTool,并从模板匹配工具的结果集中得到每一个齿的中心点。2.2 测量距离需要知道两个坐标点,一个…...
学习python的第十三天之数据类型——函数传参中的传值和传址问题
学习python的第十三天之数据类型——函数传参中的传值和传址问题 函数传参中的传值和传址问题 函数传参的机制可以理解为传值(pass-by-value)和传址(pass-by-reference)的混合体,但实际上更接近于传对象引用ÿ…...
Windows11深度学习环境配置
CUDA、CUDNN 一、安装另一个版本的CUDA 下载.exe文件,网址打不开自己开热点就能解决:CUDA Toolkit 11.2 Downloads | NVIDIA Developer 若遇到“You already have a newer version of the NVIDIA Frameview SDK installed” 1.把电脑已经存在的FrameVi…...
电销老是被标记,该如何解决!!!
在当今的商业世界中,电话销售依然是许多企业拓展业务、接触客户的重要手段。然而,电销人员常常面临一个令人头疼的问题 —— 老是被标记。 一、电销被标记的困扰 当你的电话号码被频繁标记为 “骚扰电话”“推销电话” 等,会带来一系列不良…...
MyBatis入门——基本的增删改查
目录 一、MyBatis简介 二、搭建MyBatis (一)配置依赖 (二)log4j日志功能 (三)数据库配置文件——jdbc.properties (四)创建MyBatis的核心配置文件 (五)使用MyBatisX插件 三、项目其他配置搭建 (一)创建数据库连接工具类 (二)创建表 (三)创建数据库的实体类 (四)Use…...
学习Gentoo系统中二进制软件包和源代码包的概念
Gentoo Linux 是一个以源代码包管理和高度定制化特性著称的Linux发行版。以下是关于Gentoo系统中二进制软件包和源代码包的概念、发展历程以及它们各自的优势: 二进制软件包概念及发展历程: 概念:Gentoo的二进制软件包是指预先编译好的软件包…...
麦肯锡报告 | 未来的经济引擎:解读下一代竞争领域
随着科技和商业的快速发展,一些具有高增长性和高动态性的行业正在悄然崛起,成为推动全球经济发展的新引擎。这些行业被称为“竞争领域”(Arenas)。据麦肯锡全球研究院(MGI)的研究,这些领域有望在…...
连接mysql并读取指定表单数据到DataFrame
提问 python 如何连接mysql并读取指定表单数据到DataFrame 解答 要在Python中连接MySQL并读取指定表单数据到DataFrame,你可以使用pandas库结合sqlalchemy引擎或者mysql-connector-python。这里我将展示两种方法的示例代码。 使用pandas和sqlalchemy 确保安装了…...
从入门到精通数据结构----四大排序(上)
目录 首言: 1. 插入排序 1.1 直接插入排序 1.2 希尔排序 2. 选择排序 2.1 直接选择排序 2.2 堆排序 3. 交换排序 3.1 冒泡排序 3.2 快排 结尾: 首言: 本篇文章主要介绍常见的四大排序:交换排序、选择排序、插入排序、归并排…...
【bug】使用transformers训练二分类任务时,训练损失异常大
使用transformers训练二分类任务时,训练损失异常大 问题分析 问题 training_loss异常大,在二分类损失中,收敛在1~2附近,而eval_loss却正常(小于0.5) 分析 参考: Bug in gradient accumulation…...
文献阅读与笔记整理技巧
文献阅读 1.原因 (1)了解背景知识(硕博学位论文,大牛文献综述) (2)把握研究方向(行业最新论文,大牛文献综述) (3)学习设计思路&am…...
Python Flask中集成SQLAlchemy和Flask-Login
在现代Web应用开发中,数据库和用户认证是两个非常重要的功能。Flask作为一个轻量级的Python Web框架,本身只提供了最基本的Web功能。但是,它可以通过集成各种优秀的扩展库来增强功能。本文将介绍如何在Flask应用中集成SQLAlchemy(数据库)和Flask-Login(用户认证),并提供一个完整…...
esp32 JTAG 串口 bootload升级
文章目录 一、前言二、了解 JTAG 和 Ymodem 的工作原理2.1 环境准备2.2 Ymodem 协议工作原理2.3 固件分区准备 三、关键升级函数五、使用shell 测试 一、前言 如果使用 JTAG 串口 结合 Ymodem 协议 实现 ESP32 的固件升级,整体逻辑将围绕通过串口传输固件文件并将其…...
【linux】(17)压缩和解压
tar tar 是一个用于创建、维护、修改和解压缩存档文件的 Linux 命令。tar 常常用于备份文件或者将多个文件打包成一个文件以便于传输或存储。以下是 tar 命令的详细教程,包括常用选项和示例: 基本语法 tar [选项] [文件或目录]常用选项 -c࿱…...
摄像机视频分析软件下载LiteAIServer视频智能分析平台玩手机打电话检测算法技术的实现
随着科技的不断进步,摄像机视频分析软件的发展已经为我们的生活带来了许多便捷。其中,LiteAIServer视频智能分析平台的玩手机打电话检测算法技术尤为突出,它利用先进的图像处理和人工智能技术,能够自动识别并监控视频中的玩手机或…...
springboot购物推荐网站的设计与实现(代码+数据库+LW)
摘要 随着信息互联网购物的飞速发展,一般企业都去创建属于自己的电商平台以及购物管理系统。本文介绍了东大每日推购物推荐网站的开发全过程。通过分析企业对于东大每日推购物推荐网站的需求,创建了一个计算机管理东大每日推购物推荐网站的方案。文章介…...
【Unity3D插件】Unity3D HDRP Outline高亮发光轮廓描边插件教程
推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享QQ群:398291828小红书小破站 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前言 最近用Unity3D的HDRP(高清渲染管…...
QT基础 UI编辑器 QT5.12.3环境 C++环境
一、UI编辑器 注意:创建工程时,要勾上界面按钮 UI设计师界面的模块 UI编辑器会在项目构建目录中自动生成一个ui_xxx.h(构建一次才能生成代码),来表示ui编辑器界面的代码,属于自动生成的,一定不…...
计算机网络socket编程(5)_TCP网络编程实现echo_server
个人主页:C忠实粉丝 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 C忠实粉丝 原创 计算机网络socket编程(5)_TCP网络编程实现echo_server 收录于专栏【计算机网络】 本专栏旨在分享学习计算机网络的一点学习笔记,欢迎大家在评论区交…...
go语言闭包捕获的是变量的引用而不是变量的值
在 Go 语言中,闭包捕获的是变量的引用,而不是变量的值。这意味着闭包会引用循环变量或外部变量的实际内存位置,而不是在闭包创建时复制变量的值。这种行为有时会导致意外的结果,尤其是在循环中创建多个闭包时。 闭包捕获变量的引…...
Linux 文件类型,目录与路径,文件与目录管理
文件类型 后面的字符表示文件类型标志 普通文件:-(纯文本文件,二进制文件,数据格式文件) 如文本文件、图片、程序文件等。 目录文件:d(directory) 用来存放其他文件或子目录。 设备…...
python/java环境配置
环境变量放一起 python: 1.首先下载Python Python下载地址:Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个,然后自定义,全选 可以把前4个选上 3.环境配置 1)搜高级系统设置 2…...
linux arm系统烧录
1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序
一、开发环境准备 工具安装: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 项目初始化: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...
04-初识css
一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...
【论文阅读28】-CNN-BiLSTM-Attention-(2024)
本文把滑坡位移序列拆开、筛优质因子,再用 CNN-BiLSTM-Attention 来动态预测每个子序列,最后重构出总位移,预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵(S…...
dify打造数据可视化图表
一、概述 在日常工作和学习中,我们经常需要和数据打交道。无论是分析报告、项目展示,还是简单的数据洞察,一个清晰直观的图表,往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server,由蚂蚁集团 AntV 团队…...
2023赣州旅游投资集团
单选题 1.“不登高山,不知天之高也;不临深溪,不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...
处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的
修改bug思路: 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑:async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...
Mysql8 忘记密码重置,以及问题解决
1.使用免密登录 找到配置MySQL文件,我的文件路径是/etc/mysql/my.cnf,有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...
