【传统视觉】模板匹配和卡尺圆检测

模板匹配 粗定位

1、原理:模板匹配是指在当前图像A中匹配与图像B最相似的部分,那么A为输入图像,B为模板图像。
2、匹配方法:B在A上华东,逐个遍历所有像素完成匹配。
3、函数:

result = cv2.matchTemplate(image, templ, method[,mask]);
返回值:一个结果集。类型是单通道32位浮点型其中image为图像A,templ为模板(图像B),method为匹配方法;
method = 0-5 总共六种方法
参数值对应数值解释
cv2.TM_SQDIFF0以方差为依据,进行匹配,result值为0表示匹配度最好,值越大,表示匹配度越差
cv2.TM_SQDIFF_NORMED1标准(归一化)平方差匹配
cv2.TM_CCORR2A与B的像素点相乘,较大则匹配度较高,result的值越小表示匹配度越差,值越大表示匹配度越好
cv2.TM_CCORR_NORMED32的归一化
cv2.TM_CCOEFF4模板图像B与A均值的相关性匹配,1表示完美匹配,-1表示垃圾匹配,0表示没得关系
cv2.TM_CCOEFF_NORMED54的归一化

4、配合查找最值方式来找到匹配的位置

minVal,maxVal,minLoc,maxLoc=cv2.minMaxLoc(src[,mask])
src:为单通道数组。
minVal:为返回的最小值,如果没有最小值,则可以是NULL(空值)。
maxVal:为返回的最大值,如果没有最小值,则可以是NULL。
minLoc:为最小值的位置,如果没有最大值,则可以是NULL。
maxLoc:为最大值的位置,如果没有最大值,则可以是NULL。
mask:为用来选取掩模的子集,可选项

示例:

rv = cv2.matchTemplate(img, template, cv2.TM_SQDIFF)
min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(rv)

卡尺找圆 精细定位

卡尺的原理:
是找N个小矩形ROI里面的灰度值突变的地方。即:遍历每个小矩形ROI,分别找到1个点,这个点是灰度突变的峰值。然后把这N个点拟合成直线或者圆。

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

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

相关文章

Web3 叙述交易所授权置换概念 编写transferFrom与approve函数

前文 Web3带着大家根据ERC-20文档编写自己的第一个代币solidity智能合约 中 我们通过ERC-20一种开发者设计的不成文规定 也将我们的代币开发的很像个样子了 我们打开 ERC-20文档 我们transfer后面的函数就是transferFrom 这个也是 一个账号 from 发送给另一个账号 to 数量 val…

SpringBoot中MongoDB的使用

SpringBoot中MongoDB的使用 MongoDB 是最早热门非关系数据库的之一,使用也比较普遍,一般会用做离线数据分析来使用,放到内网的居 多。由于很多公司使用了云服务,服务器默认都开放了外网地址,导致前一阵子大批 MongoD…

数字工厂管理系统的实施步骤是什么

数字工厂管理系统是一种基于数字化技术和智能化设备的工厂管理系统,它可以实现工厂的全面、实时、动态管理,提高生产效率、降低成本、保证产品质量。实施数字工厂管理系统需要一系列的实施步骤,下面就数字工厂管理系统的实施步骤进行详细说明…

【Matlab】基于卷积神经网络的数据回归预测(Excel可直接替换数据))

【Matlab】基于卷积神经网络的数据回归预测(Excel可直接替换数据) 1.模型原理2.数学公式3.文件结构4.Excel数据5.分块代码6.完整代码7.运行结果1.模型原理 基于卷积神经网络(Convolutional Neural Network,CNN)的数据回归预测是一种常见的机器学习方法,适用于处理具有空…

openssl 命令行国密sm2的签名验签操作

快速链接: . 👉👉👉 个人博客笔记导读目录(全部) 👈👈👈 付费专栏-付费课程 【购买须知】: 密码学实践强化训练–【目录】 👈👈👈 生成EC私钥: openssl ecp…

Linux标准库API

目录 1.字符串函数 2.数据转换函数 3.格式化输入输出函数 4.权限控制函数 5.IO函数 6.进程控制函数 7.文件和目录函数 1.字符串函数 2.数据转换函数 3.格式化输入输出函数 #include<stdarg.h>void test(const char * format , ...){va_list ap;va_start(ap,format…

ubuntu22用apt安装最新docke版本

1.系统优化基础操作 hostnamectl set-hostname master && bash sudo systemctl stop ufw sudo systemctl disable ufw sudo apt update sudo apt-get -y upgrade2.卸载原来安装的 sudo apt-get remove docker docker-engine docker.io containerd runc3. 安装docke…

antd中的Cascader级联选择框怎么清空重置React

项目场景&#xff1a; React项目&#xff0c;使用antd中的Cascader级联选择框 问题描述&#xff1a; 通过其他按钮无法重置选择框中的项 原因分析&#xff1a;&#xff08;对应解决办法一和二&#xff09; 1、级联选择框的数据默认是根据options绑定的数组中的value值来进行…

java学习(三):IO流

系列文章目录 文章目录 系列文章目录一、学习总结二、部分代码 一、学习总结 IO流概览 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-11MLpicr-1690733294478)(src/main/resources/img.png)] IO流操作的步骤&#xff1a; 1.创建输入 或者 输出的…

git远程一个分支对应本地两个分支推送

git远程一个分支对应本地两个分支推送 你可以使用以下命令将两个本地分支推送到远程仓库中的一个远程分支&#xff1a; 首先&#xff0c;将第一个本地分支推送到远程仓库&#xff1a; git push <远程仓库名称> <本地分支名称>:<远程分支名称>例如&#xff…

页面生成图片或PDF node-egg

没有特别的幸运&#xff0c;那么就特别的努力&#xff01;&#xff01;&#xff01; 中间件&#xff1a;页面生成图片 node-egg 涉及到技术node egg Puppeteer 解决文书智能生成多样化先看效果环境准备初始化项目 目录结构核心代码 完整代码https://gitee.com/hammer1010_ad…

【python】可指定时间播放音频噪声

【诉求】 A是一段音频&#xff0c;它有个长度是9秒&#xff0c;A_2就是播放A段音频的前2s。传入播放的时间time&#xff0c;效果是播放对应时常的音频。抽象出来&#xff1a;time 输出音频的种类对应的长度 str audioList [A,B,C] Int audioLength [9,9,10] All_audio_Lengt…

node 菜单权限判断

对于那些在界面上没显示的菜单在后台路由中也是要检查下权限的&#xff0c;要不然像用户管理/userList这条路由虽然没有配给某个测试账号&#xff0c;但他可以直接在地址栏输入/userList进行访问。所以在Middleware中需要增加判断用户是否有此page_url的访问权限。 /** 需要用…

Linux - 添加普通用户为信任用户

1.添加用户 在Linux系统中&#xff0c;可以使用以下步骤添加用户&#xff1a; 打开终端并以root用户身份登录 输入以下命令以创建新用户&#xff08;请将username替换为您想要创建的用户名&#xff09;&#xff1a; adduser username 设置该用户的密码&#xff0c;使用以下命…

深蓝学院C++基础与深度解析笔记 第14章 元编程

1. 元编程的引入 ● 从泛型编程到元编程 – 泛型编程 使用一套代码处理不同类型 —— – 对于一些特殊的类型需要引入额外的处理逻辑 —— 引入操纵程序的程序 – 元编程与编译期计算&#xff08;优选编译期计算&#xff09; – std::vector<int>不同&#xff0c;因为…

在windows上安装minio

1、下载windows版的minio&#xff1a; https://dl.min.io/server/minio/release/windows-amd64/minio.exe 2、在指定位置创建一个名为minio文件夹&#xff0c;然后再把下载好的文件丢进去&#xff1a; 3、右键打开命令行窗口&#xff0c;然后执行如下命令&#xff1a;(在minio.…

在CentOS下安装docker

1&#xff09;在Cent OS安装docker先有一个Cent OS 7.6系统 这个很重要&#xff0c;不同版本按照的时候是不一样的。 2&#xff09;查看CentOS版本 cat /etc/redhat-releas 3&#xff09;用root账户登录进去配置国内yum源 wget -O /etc/yum.repos.d/CentOS-Base.repo http:…

C++中enum和enum class的区别

C中enum和enum class的区别 1.作用域不同2. 默认类型不同3.类型安全程度不同 在C中&#xff0c;enum和enum class都是用来定义枚举类型的关键字&#xff0c;但它们有几个区别。 1.作用域不同 enum的枚举成员的作用域在定义的枚举类型中是共享的&#xff0c;而enum class的每个枚…

浅谈进程调度

要想了解进程调度&#xff0c;我们首先得知道什么是进程&#xff0c;那么什么是进程呢&#xff1f;其实进程就是正在运行的程序&#xff0c;如此说来&#xff0c;是不是就认为一个程序只能有一个进程&#xff0c;其实不然&#xff0c;同一个程序运行多次可能会出现多个进程。如…

移动硬盘不显示怎么办?正确解决方式看这里!

移动硬盘为存储带来了很大的方便&#xff0c;在对数据存储时&#xff0c;可做到即插即用&#xff0c;且其体积小、容量大&#xff0c;且比较安全可靠。但在实际的使用中&#xff0c;也会出现各种问题。请看下面2个常见案例。 案例1&#xff1a;“各位朋友&#xff0c;我新买了一…