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

openpnp - 底部相机视觉识别CvPipeLine的参数bug修正

文章目录

    • openpnp - 底部相机视觉识别的CvPipeLine的参数bug
    • 概述
    • 笔记
    • openpnp的视觉识别参数的错误原因
    • 备注
    • 补充 - 如果要直接改默认的底部视觉要注意
    • END

openpnp - 底部相机视觉识别的CvPipeLine的参数bug

概述

底部相机抓起一个SOD323的元件,进行视觉识别。
识别出的矩形错了,是一个很长的长方形,长方形的短边和器件差不多宽,但是长边比器件长10倍。导致识别出错。
因为这时,无论怎么填写封装的长和宽,都无法正确识别。
当识别出错时,用CvPipeLine的Edit功能,找到了问题。
原来是openpnp给的默认识别参数整错了,改了一下OK.

笔记

因为大部分元件识别都是好的,且用的都是默认的底部相机视觉。
所以,有个别元件识别错误后,要针对这个元件进行视觉识别的参数修正,而不能去动默认的底部视觉参数。
在这里插入图片描述
FilterContours命令识别的范围多了,导致识别了吸嘴圆形帽子上的一个点,这要继续过滤。

在FilterContours命令后面,默认就有个MaskCircle命令,默认的diameter是0,即不过滤。
这就导致后续命令用的图像在元件很远的地方有个点(FilterContours命令带过来的)
将MaskCircle的参数diameter改为300,基本就圈住了元件附近,再远的图像就用这个圈过滤掉了。

在这里插入图片描述
MaskCircle后面默认的后续命令是DrawContours
在这里插入图片描述
默认用的输入图像是filterContours的结果,这就不对了,因为针对这个元件,filterContours识别的多了(除了元件,还有离元件很远的一个点)

将DrawContours的参数contourStageName改为11(就是MaskCircle命令实例名称为11的结果), 这回就OK了。

在后续的命令处理后,红框就只框在元件的引脚外框上。

openpnp的视觉识别参数的错误原因

在FilterContours和DrawContours命令之间,加了一个MaskCircle命令(但是MaskCircle默认没做过滤)。
估计官方也考虑到给的视觉识别参数无法适应所有的吸嘴和元件,所以给用户留了一个改正的节点。
但是DrawContours的输入没有用MaskCircle命令的处理结果,这就是bug了。

备注

对openpnp的视觉处理参数也不熟, 主要是官方也没有文档专门讲这个。
以前都用默认的, 如果真出现问题,无奈,还真不知道怎么弄。

这次发现识别的有问题,在设备开着时,抓一个这种元件进行底部相机视觉识别,如果识别错误或者识别的不稳定,这时就可以在线编辑调试视觉识别参数。

还好,经过简单的修改,能正确识别了。

虽然不太懂官方为啥给这些命令进行图像识别的处理,但是大概齐知道啥意思。
图像识别处理的大概流程如下:

  • 从摄像头捕获图像
  • 进行颜色转换
  • 用蒙版屏蔽不需要的区域(e.g. 吸嘴/元件以外的区域)
  • 转成黑白图像
  • 画出最小矩形
  • 重新载入摄像头的图像
  • 将矩形换成红色显示

补充 - 如果要直接改默认的底部视觉要注意

元件的默认底部视觉都是全局的默认底部视觉。
最好是每个封装单独给一个配置,来改视觉。
开始没注意,直接改的底部视觉。
因为加入了MaskCircle命令名字为11,参数diameter值改为了300,其他用默认底部视觉的元件出现了奇怪问题。
e.g. LQFP32元件对齐后,居然是45度。导致贴到板子上角度也是错的。
如果要改全局视觉,MaskCircle命令名字为11,参数diameter值应该改为-1,代表不过滤任何图像,即输入图像直接转成输出图像。
在这里插入图片描述

END

相关文章:

openpnp - 底部相机视觉识别CvPipeLine的参数bug修正

文章目录 openpnp - 底部相机视觉识别的CvPipeLine的参数bug概述笔记openpnp的视觉识别参数的错误原因备注补充 - 如果要直接改默认的底部视觉要注意END openpnp - 底部相机视觉识别的CvPipeLine的参数bug 概述 底部相机抓起一个SOD323的元件,进行视觉识别。 识别…...

C#从零开始学习(接口,强制转化和is)(7)

有时根据对象能做什么来分组,而不是根据他们继承的类.这就引入了接口 让无关的类做相同的动作 接口定义一个类必须实现的方法和属性 一个类实现一个接口时,必须包含接口中列出的所有方法和属性 向下强制转化 Appliance是CoffeeMaker的基类 Appliance powerConsumer new Co…...

算法Day-8

15. 三数之和 给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nums[k] 0 。请你返回所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复的三元…...

屏蔽小米电视广告的方法

小米电视那个广告,太多,时间太长,影响观看感受,经过处理,成功屏蔽了小米电视的广告,提升了观影体验。 手动添加AD域名到 hosts 列表 小米(红米)电视关闭开机AD屏蔽hosts方法。 在路由器的hosts中配置。 …...

C#,自动驾驶技术,ASAM OpenDRIVE BS 1.8.0 规范摘要与C# .NET Parser

本文介绍自动驾驶技术的标准之一《ASAM OpenDRIVE》1.8.0 版本的规范摘要,及北京联高软件开发有限公司实现的 C# 版本 xodr 文件(XML) Parser 源代码。 本文档是 ASAM e.V. 的版权财产。 在更改常规许可条款时,ASAM 允许不受限制地…...

玩转PyCharm:常用操作和快捷键

常用操作和快捷键 PyCharm为写Python代码提供了自动补全和高亮语法功能,这也是PyCharm作为集成开发环境(IDE)的基本功能。PyCharm的“File”菜单有一个“Settings”菜单项(macOS上是在“PyCharm”菜单的“Preferences…”菜单项&…...

HeterGCL 论文写作分析

HeterGCL 论文写作分析 这篇文章,由于理论证明较少,因此写作风格了polygcl是两种风格的。polygcl偏向理论的写作风格,而hetergcl就是实践派的风格 首先看标题,其的重点是Graph contrastive learning Framework。其重点是framewo…...

简单的windows java -jar 无法启动jar包解决方法

简单的windows java -jar 无法启动jar包解决方法 1. 问题 我们项目是使用nacos作为注册中心以及配置中心,我们本地使用idea 进行服务配置以及启动发现没有问题,然后我们的服务经过maven install 打包后发布到LINUX服务启动也没有问题,但是我…...

iPhone图片/照片/视频复制到win10系统的简单方法 - 照片导出

效果图 不同方法: 【推荐】爱思助手 一步到位....【不推荐,会错漏很多照片】 1) 开始,打开开始菜单最后一个“照片” 2) 打开外部设备“Apple iPhone” 3) 全选,“添加xx项”,选择本地...

ctfshow-文件上传-151-161

CTFshow文件上传 PHP文件上传:1、代码思路 黑名单是设置不能通过的用户,黑名单以外的用户都能通过。 phtml、pht、php3、php4、php5后缀都会按做php文件执行,且不在黑名单内。 2、绕过 找漏网之鱼:cer、php3、php4、phtml等。 大小写绕…...

【Windows】Microsoft Office 的 .docx .xlsx .pptx 等文件图标消失,变成空白图标

问题描述 在重新安装 Microsoft Office 后,发现 .docx、.xlsx、.pptx 等文件的图标消失,变成一个空白的图标。 原因分析 可能是由于Office组件的快捷方式和图标的注册表损坏所导致的。注册表是Windows操作系统中用来存储系统和应用程序配置信息的一个重…...

场景化运营与定制开发链动 2+1 模式 S2B2C 商城小程序的融合

摘要:本文深入探讨了场景化运营的重要性以及其在商业领域的广泛应用。通过分析电梯广告、视频网站和电商产品的场景化运营方式,引入关键词“定制开发链动 21 模式 S2B2C 商城小程序”,阐述了如何将场景化运营理念融入到该小程序的开发与推广中…...

Axure中继器实现时间读取和修改

亲爱的小伙伴,在您浏览之前,烦请关注一下,在此深表感谢! 课程主题:中继器实现时间读取和修改 主要内容:中继器内不同时间格式的向外读取,和向内赋值,实现中继器时间的修改 应用场…...

数据库聚合函数

数据库聚合函数 聚合函数 sum ,avg,max,min,count 1总分 SELECT SUM(student_result) FROM result; SELECT student_no,SUM(studet_result) FROM result WHERE student_no62平均分 avg SELECT AVG(studet_result) FROM result;3最大值 max 最小值 min SELECT MAX(studet_r…...

DevOps的文化观与工具

一、DevOps的文化 DevOps的核心文化是推动开发(Development)和运维或需求(Operations)团队之间的协作与沟通,以实现更快速、更可靠的软件交付。以下是DevOps核心文化的几个关键方面: 协作与沟通&#xff1…...

create-vite my-vite-uniapp-project

搭建一个使用 Vue 3、TypeScript、Vite、uni-app、uView UI库和Element Plus的项目,你可以遵循以下步骤: 安装 Node.js 和 npm。 使用以下命令全局安装 Vue CLI: npm install -g vue/cli创建一个新的 Vue 3项目,并选择 TypeScr…...

DC系列靶机-DC8

一,环境的搭建 VM17 官网下载 kali 2023.4版 https://mirrors.tuna.tsinghua.edu.cn/kali-images/kali-2023.4/ 靶场文件 https://download.vulnhub.com/dc/DC-8.zip 二,攻略 首先nmap一通扫; 扫描主机IP和端口; 靶机的地址…...

重构复杂简单变量之用对象替换数据值

对象替换数据值用于将简单的数据值替换为具有行为和逻辑的对象。这种优化的目的在于提高代码的可读性、灵活性和可维护性,尤其是在数据开始承载更多含义或行为的时候。 一、什么时候使用 当我们在代码中使用简单的数据值(如字符串、整数)表…...

我国首个自主可控的操作系统——华为原生鸿蒙操作系统正式发布

我国首个自主可控的操作系统——华为原生鸿蒙操作系统正式发布 在科技日新月异的今天,操作系统作为数字世界的基石,其重要性不言而喻。近日,华为公司在深圳隆重举行了原生鸿蒙操作系统发布会,向全球宣告了我国首个自主可控的移动…...

Spring Boot技术栈在论坛网站开发中的应用

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统,它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等,非常…...

STM32+rt-thread判断是否联网

一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...

macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用

文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

微信小程序 - 手机震动

一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注&#xff1a;文档 https://developers.weixin.qq…...

python如何将word的doc另存为docx

将 DOCX 文件另存为 DOCX 格式&#xff08;Python 实现&#xff09; 在 Python 中&#xff0c;你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是&#xff0c;.doc 是旧的 Word 格式&#xff0c;而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...

均衡后的SNRSINR

本文主要摘自参考文献中的前两篇&#xff0c;相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程&#xff0c;其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt​ 根发送天线&#xff0c; n r n_r nr​ 根接收天线的 MIMO 系…...

【Java学习笔记】BigInteger 和 BigDecimal 类

BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点&#xff1a;传参类型必须是类对象 一、BigInteger 1. 作用&#xff1a;适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...

让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比

在机器学习的回归分析中&#xff0c;损失函数的选择对模型性能具有决定性影响。均方误差&#xff08;MSE&#xff09;作为经典的损失函数&#xff0c;在处理干净数据时表现优异&#xff0c;但在面对包含异常值的噪声数据时&#xff0c;其对大误差的二次惩罚机制往往导致模型参数…...

return this;返回的是谁

一个审批系统的示例来演示责任链模式的实现。假设公司需要处理不同金额的采购申请&#xff0c;不同级别的经理有不同的审批权限&#xff1a; // 抽象处理者&#xff1a;审批者 abstract class Approver {protected Approver successor; // 下一个处理者// 设置下一个处理者pub…...

push [特殊字符] present

push &#x1f19a; present 前言present和dismiss特点代码演示 push和pop特点代码演示 前言 在 iOS 开发中&#xff0c;push 和 present 是两种不同的视图控制器切换方式&#xff0c;它们有着显著的区别。 present和dismiss 特点 在当前控制器上方新建视图层级需要手动调用…...

免费数学几何作图web平台

光锐软件免费数学工具&#xff0c;maths,数学制图&#xff0c;数学作图&#xff0c;几何作图&#xff0c;几何&#xff0c;AR开发,AR教育,增强现实,软件公司,XR,MR,VR,虚拟仿真,虚拟现实,混合现实,教育科技产品,职业模拟培训,高保真VR场景,结构互动课件,元宇宙http://xaglare.c…...