04.VisionMaster 机器视觉找圆工具

news2024/11/24 5:08:21

VisionMaster 机器视觉找圆工具

定义

先检测出多个边缘点然后拟合成圆形,可用于圆的定位与测量

注意:找圆工具 最好和【位置修正】模块一起使用。具体可以看下面的示例。

参数说明:

扇环半径:圆环ROI的内外圆半径

边缘类型:最强-》只检测扫描范围内梯度最大的边缘点集合并拟合成圆

                 最后一条-》只检测扫描范围内与圆心距离最大的边缘点集合并拟合成圆

                 第一条-》只检测扫描范围内与圆心距离最小的边缘点集合并拟合成圆

边缘极性:黑到白-》从灰度值低的区域过渡到灰度值高的区域的边缘

                 白到黑-》从灰度值高的区域过演到灰度值低的区域的边缘

                 任意-》上述两种边缘均被检测

边缘阈值:边缘阈值即梯度阈值,范围0~255,只有边缘梯度闻值大于该值的边缘点才被检测到。

                数值越大,抗噪能力越强,得到的边缘数量越少,甚至导致目标边缘点被筛除

滤波尺寸:用于增强边绿和抑制噪声,最小值为1,当边缘横或有噪声干扰对,增大该值有利于使

                  得检测结果更加稳走,但如果边缘与边缘之间距赢小于海波尺寸时反而会影的边缘位置

                的精度甚至委失边缘,该值须要根据实际情况设置。

实际使用中如果发有圆没有找到的情况,优生将滤波尺寸调整试试,如果自动时的值是小的,那就向大的方向调整,可以大胆点去偿试。如果发现找到目标圆了,可以调整回来点再试试,值要合适才好,不能太大也不能太小。下面我有这示例。

卡尺数量:用于扫描边缘点的ROI区域数量

剔除点数:误差过大而被排除不参与拟合的最小点数量。一般情况下,离群点越多,该值应设置越

                大,为获取更佳查找效果,建议与剔除距离结合使用

初定位:若开启初定位,结合圆定位敏感度,下采样系数设置,圆初定位可以大致判定ROI区域

                内更接近圆的区域中心作为初始圆中心,便于后续精细圆查找;若关闭初定位,则默认

                ROI中心为初始圆中心,一般情况下,圆查找前一模块为位置修正,建议关闭初定位

下采样系数:下采样也叫降采样,即是采样点数藏少。对于一副NM的图像来说,如果海采样系数

                        为K,则即是在原图中每行每列每隔K个点取一个点组成一幅型像,因此下关样系数

                        越大,轮职点越稀疏,轮摩越不精细,该值不宜设置过大

圆定位敏感度:排除干扰点,值越大,排除噪声干扰的能力越强,但也容易导致圆初定位失败

剔除距离:允许离群点到拟合圆的最大像素距离,值越小,排除点越多

投影宽度:在ROI中环形分布若千个边缘点查找RO1,该值描述扫描边缘点查找ROl的区城宽度。

                在一定范围内增大该值可以获取更加稳定的边缘点(一般默认)

初始拟合:局部-》局部最优也就是按照局部的特征点拟合圆,如果局部特征更加准确反映圆所在

                                位置,则采用局部最优,否则采用全局最优

                 全局-》以查找到的全局特征点进行圆拟合

拟合方式:拟会方式有最小二乘、huber和ukey三种,三种拟合方式只是权重的计算方式有些差

                异,随着商群点数量增多以及商群距商增大,可逐次使用最小二、huber、tukey。

示例:

双击 【圆查找】-》ROI区域-》在形状行中 选择最后一个工具,这是个画圆工具。在右边的图像中绘制你要查找的圆。大小可调整。右边那个小方块是调整卡尺的内圈的,上面那个小方块是调整卡尺外圈的,也是调整卡尺长度的。卡尺的长度在覆盖整个圆。如下图。画好后点【执行】按钮可以看到结果,会用绿圈显示出圆的轮廓。这样就说明找到圆了

运行参数

        如果ROI区域没有错还找不到圆那就要调整运行参数了。主要调整的参数有【边缘阈值】和【滤波尺寸】。优先调整 滤波尺寸 ,滤波尺寸主要用于在比较模糊的图像中查找。值越大越好找。

在第一张图中我用的【边缘阈值】为15,【滤波尺寸】为2,可以圆,在继续测试后面的图像是否也能找到圆。

打开【自动切换】再点上面的 【播放】按钮就会自动执行流程了。

发现一个用上面的参数无法找到圆的图像。我放大图像看了一个发现这个图像的圆轮廓有点模糊。

这时优先去调整【圆查找】中的运行参数的【滤波尺寸】,原值是2。说明小值不行,那就向大值方向调整。我直接调整大点,加10从原来的2改成12。再看看效果。

效果显示 方向是正确的。

参数调整完后还要检查一下这组参数是否可以应用于当前的所有图像。

 栏目推荐:

01.VisionMaster 机器视觉 本地图像导入及参数设置-CSDN博客

02.VisionMaster 机器视觉快速匹配模块-CSDN博客

03.VisionMaster 机器视觉 位置修正 工具-CSDN博客

04.VisionMaster 机器视觉找圆工具-CSDN博客

05.VisionMaster 机器视觉 结果 格式化输出-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1826948.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

手把手教学部署前端项目到nginx

1.下载nginx 说明:下载11.20.2版本的nginx。 2.配置nginx 说明:找到conf目录下的nginx.conf文件。 2.1代理静态资源 说明:服务器块监听的端口为8089,意味着Nginx将在8089端口上接收和处理HTTP请求。root后面的值相当于html文…

socket收发数据的处理

1. TCP 协议是一种基于数据流的协议 Socket的Receive方法只是把接收缓冲区的数据提取出来,当系统的接收缓冲区为空,Receive方法会被阻塞,直到里面有数据。 Socket的Send方法只是把数据写入到发送缓冲区里,具体的发送过程由操作系统负责。当操作系统的发送缓冲区满了,Send方法会…

Android中的消息异步处理机制及实现方案

基本介绍 当我们需要执行复杂的计算逻辑,网络请求等耗时操作时,服务器可能不会立即响应请求,如果不将这类操作放在子线程中运行,就会导致主线程被阻塞住,从而影响用户的使用体验如果想要更新应用程序中的UI控件&#…

idea远程调试docker容器内正在运行的线上项目

1.重新编写Dockerfile文件 在原本的Dockerfile上新增参数 就是 运行jar包增加调试参数 增加调试暴漏的端口号 -agentlib:jdwptransportdt_socket,servery,suspendn,address*:50052.在运行docker容器的时候增加暴漏端口5005 3.打开idea就是正在运行的项目 4.选择远程配置 5.配…

解决MyBatis获取刚插入数据的ID值

解决MyBatis获取刚插入数据的ID值 Mybatis获取刚插入数据的ID值有很多解决方法,目前采用以下方式进行获取。 添加完数据后直接返回刚添加数据的id // UserDao.java public static void addUser() throws Exception{InputStream resourceAsStream Resources.getR…

idea的java代码引用proto文件报错

尝试了四种办法,感觉第一个和第二个比较有效。 前提是要先安装了 proto 的idea插件。 1.修改idea配置文件编译大文件的限制 proto生成的源文件有数万行,源文件过大导致 idea 拒绝编译过大的源文件。 解决方案: 如果 protoc 生成的 class 文…

程序优化 --- arthas trace命令使用

最近在做优化,通过arthas的trace命令去观察方法内的耗时情况以便对程序进行修改. 1.启动arthas之后选择需要监测的程序 2.找到需要监测的接口,一般都是直接找service例子如下: trace 类地址.类名 方法名 (中间有空格)

智能计算系统-概述

1、人工智能技术分层 2、人工智能方向人才培养 3、课程体系的建议 4、智能系统课程对学生的价值 5、智能计算系统对老师的价值 6、什么是智能计算系统 7、智能计算系统的形态 8、智能计算系统具有重大价值 9、智能计算系统的三大困难 10、开创深度学习处理器方向 11、寒武纪的国…

MOS开关电路应用于降低静态功耗

本文主要讲述MOS开关电路的应用,过了好久突然想整理一下,有错误的地方请多多指出,在做电池类产品,需要控制产品的静态功耗,即使让芯片进入休眠状态,依旧功率很大,所以在电路中加一组软开关,防止…

嵌入式软件工程师入何突破瓶颈?

各位关注嵌入式软件工程师发展的朋友们,下面来探讨一下嵌入式软件工程师该如何突破瓶颈。首先要强调的是,不要仅仅将自己局限在嵌入式软件工程师这一角色定位上。 事实上,嵌入式软件工程师已经掌握了诸多业务层面的内容,完全有能力…

【C++】编译原理

三、C编译 前面给大家演示了如何从写C代码到编译代码再到执行代码的全过程。这个过程中非常重要的编译环节,被我们一个按钮或者一个ctrlF7快捷键就给带过了。其实这个环节非常重要,如果你非常了解这个环节,你开发源代码就会更加自信和清醒&a…

pytest + yaml 框架 -61.jenkins+allure+钉钉通知添加测试结果

前言 上一篇pytest + yaml 框架 -60.git+jenkins+allure+钉钉通知反馈 已经实现测试结果用钉钉通知。 本篇继续在钉钉通知里添加测试的汇总结果,此功能在pytest-yaml-yoyo v1.5.2版本上实现。 Environment Injector 插件 在运行完用例后会生成一个summary.json 文件,汇总…

【系统架构】REST风格

系列文章目录 第一章 系统架构的演进 第二章 REST风格架构 文章目录 系列文章目录前言一、进程间的通信普通管道(Pipe)或者具名管道(Named Pipe)信号(Signal)信号量(Semaphore)消息…

项目实战中学透Spring-业务场景驱动-Spring01(IOCDI)

软件环境 JDK1.8 Maven3.6 IDEA2022.3(Ultimate Edition) Spring5.3.29 主要知识点大纲 1.Spring简介 2.Spring整体架构 3.业务场景中理解Spring IOC(控制反转)和DI(依赖注入) 4.业务场景中理解IOC容器,实例化容器,实例化Bean的几种方式 5.业务…

在C#中对 JSON进行序列化和反序列化处理

概述:在现代软件开发领域,不同系统和平台之间的数据交换是不可或缺的方面。JSON(JavaScript 对象表示法)因其轻量级、人类可读和易于解析的特性而成为一种无处不在的数据格式。使用 C# 🚀编程的 JSON 序列化和反序列化…

OpenCV学习(4.15) 基于 GrabCut 算法的交互式前景提取

1. 目标 在这一章当中 我们将看到 GrabCut 算法来提取图像中的前景我们将为此创建一个交互式应用程序。 2. 理论 GrabCut 算法由英国剑桥微软研究院 Carsten Rother,Vladimir Kolmogorov和Andrew Blake发明,并在他们的论文“GrabCut”:使…

使用 yocto 搭建 qemuarm64 环境

文章目录 前言一、ubuntu 环境准备1. 编译主机基础的环境准备2. 编译主机相关依赖软件的安装二、yocto5.0 代码的获取与编译1. 获取代码2. yocto5.0 代码的编译2.1 source 环境变量2.2 修改相关配置文件2.3 编译3. 启动 qemu总结参考资料前言 本文主要介绍如何在 ubuntu 下使用…

MySQL日志(二):MySQL抖动

一条SQL语句, 正常执行的时候特别快, 但是有时也不知道怎么回事, 它就会变得特别慢, 并且这样的场景很难复现, 它不只随机, 而且持续时间还很短。 看上去, 这就像是数据库“抖”了一下。 今天&…

FreeRTOS简单内核实现3 任务管理

文章目录 0、思考与回答0.1、思考一0.2、思考二0.3、思考三 1、任务控制块2、创建任务2.1、xTaskCreateStatic( )2.2、prvInitialiseNewTask( )2.3、pxPortInitialiseStack( )2.4、任务内存详解 3、就绪链表3.1、定义3.2、prvInitialiseTaskLists( ) 4、任务调度器4.1、vTaskSt…

阿里云系列产品免费用,不香吗?

阿里云系列产品免费用,不香吗? 什么是无影云电脑开启无影云下载安装客户端登录无影云桌面应用场景 开篇先发布一下阿里云产品免费体验地址:https://free.aliyun.com/?utm_contentg_1000370296 下面开始我的无影云电脑或者叫做无影云桌面的体…