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

物料模板匹配成功后,自动跟随的逻辑

问题简介

在对物料进行模板匹配时,往往是去匹配物料最突出的部分。然后在根据匹配到的位置。再去找我们需要测量或者检测部分。那么,这里就涉及到一个问题。该如何根据我们模板匹配到的特定位置,计算偏差值,并进行一些测量工具(卡尺,ROI)的跟随移动。

获取相对位置

此处,我们以卡尺拟合直线为例子。
首先,在标准图像下。我们需要进行一次模板匹配得到匹配位置的坐标信息。
image

然后,使用卡尺工具去拟合直线,得到对应物料边的起始坐标和终点坐标(要注意卡尺的卡点方向和直线方向的关系,不然可能卡不到点)。
image
计算相对位置坐标,首先我们利用模板匹配得到的坐标和角度信息,生成一个仿射矩阵。该仿射矩阵对应了当前模板匹配得到的坐标和角度的逆变换(-row,-column,-phi)。我们对卡尺拟合所得到的直线起点和终点使用这个仿射矩阵进行变换,即可得到起点和终点相对于模板匹配得到的位置的相对坐标。

自动跟随

读取一张新的图像,在此进行模板匹配。
image
此时,我们能够得到匹配位置的坐标信息。我们根据这个坐标信息,生成一个正向的仿射变换矩阵。然后对前面得到的相对位置使用个仿射矩阵进行仿射变换,即可得到对应的位置信息,从而实现自动跟随。

image
这里的线,并不是我们画的,而是通过前面的思路,进行仿射变换自动生成的。

相关文章:

物料模板匹配成功后,自动跟随的逻辑

问题简介 在对物料进行模板匹配时,往往是去匹配物料最突出的部分。然后在根据匹配到的位置。再去找我们需要测量或者检测部分。那么,这里就涉及到一个问题。该如何根据我们模板匹配到的特定位置,计算偏差值,并进行一些测量工具(卡尺,ROI)的跟随移动。 获取相对位置 此处…...

TCL t508n 关闭电话语音王提醒/改用4G

先吐槽一波( TCL的系统真的比原生还毛坯,到目前为止部分功能没有完善由于学业压力本文缺少部分图片说明,请见谅改用4g 打开拨号界面输入 ##4636## 设置首选网络类型 NR就是5G ,LTE是4G,WCDMA 3G 只用4g就选择LTE only 按照自己的需求选择 https://pic1.imgdb.cn/item/68c5…...

完整教程:Markdown 编辑器 语法

完整教程:Markdown 编辑器 语法pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important; fon…...

天地图的带洞多边形操作

/** 往 polygon 中添加一个洞 */ function addHole(polygon: T.Polygon) {const handler = new T.PolygonTool(map)handler.open()handler.addEventListener(draw, ({ currentPolygon }) => {const oldLnglats = polygon.getLngLats()map.removeOverLay(currentPolygon)poly…...

k8s集群中一台etcd的pod异常

k8s集群中一台etcd的pod异常 记一次etcd报错2380bind already in use杀掉容器依然无效 起初通过命令:kubectl get pod -n kube-system 发现etcd容器异常在主节点通过kubectl logs查看pod日志发现很明显的报错端口被占用当时查看2380端口确实有在占用通过nerdctl stop指令试着停…...

深入解析:基于51单片机电子称称重压力检测阈值报警系统设计

深入解析:基于51单片机电子称称重压力检测阈值报警系统设计pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New",…...

手撕大模型|KVCache 原理及代码解析

在大型语言模型(LLM)的推理过程中,KV Cache 是一项关键技术,它通过缓存中间计算结果显著提升了模型的运行效率。本文将深入解析 KV Cache 的工作原理、实现方式,并通过代码示例展示其在实际应用中的效果。 一、为什么需要 KV Cache? 在 Transformer 进行自回归推理(如文…...

Kuby免疫学读书笔记01——造血干细胞

造血干细胞(HSC, Hematopoietic stem cell) 血细胞的起源造血干细胞位置骨髓(主要) 脾和肝(少量)分裂与分化正常状态多部份沉默 小部分分裂并分化 分裂得到的daughter cells部分依旧保持分裂分化潜力 另一部分分化为祖细胞,自我更新能力下降,并更倾向于分化为血细胞感染状态和…...

微信群机器人开发

使用微信云pad协议来开发微信机器人,可以开发的项目很多,例如一些娱乐机器人、云发单系统,私域流量的智能管理和营销拓客,还有一些自动采集和发朋友圈的云端系统等。每个行业都有需求这样的系统应用,在线教育、金融、电商已经一些个人微商应用。 可开发的功能包括但不限于…...

动态规划和马尔可夫决策对比

二、三大关键维度的效果对比 1. 问题适配性:动态规划适配 “简单线性流程”,MDP 适配 “复杂网状流程” 动态规划的优势在于 “处理线性、低维度的多阶段决策”,MDP 的优势在于 “处理多维、网状的动态决策”,二者在论文场景中的适配效果差异显著:动态规划在问题二中的适配…...

20250913 之所思 - 人生如梦

20250913 之所思这一周发生了太多的事,连续两晚彻夜失眠,咳嗽不止,但是工作又特别忙,没有时间和精力来复盘,今天身体稍微恢复了一点,好好整理一下9.9日晚上十点,软件刚刚发出来,同事们刚刚下班,结果某人说客户那边今天测试发现了两个严重的问题,一定要今天解决,并且…...

电视剧和综艺

综艺团建不能停电视机春色寄情人 爱情剧...

天地图编辑多边形和折线时,双击删除编辑点

天地图的编辑不支持删除编辑点的操作,于是研究写了一个。 // 使用 lodash 的防抖函数,防止双击时触发两次 const removeDotEventListener = debounce((e: T.MapEvent) => {// 获取被点击的目标// @ts-ignoreconst classList: DOMTokenList = e.originalEvent.target.class…...

Codeforces Round 1049 (Div. 2)

这场质量非常高。 A 我像区,我怎么卡 A 卡那么久。 睡眠不足会导致思路不清晰。这种题显然应该考虑所有位置不正确的字符。 对于一个在 \(0\) 位置上的 \(1\) 一定有一个与它未匹配的 \(0\),考虑能否通过一次操作将它们归位。 对于操作我们显然应该选择一个未归位的 \(0\) 和…...

POCamp 2023

P14011 [POCamp 2023] 珿求 / bootfall 神人题目。 令 \(A\) 为当前选择 \(a\) 的和,\(D\) 同理。我们要尽量让 \(\max(0, A - D) > \max(0, A - D)\)。 分类讨论,发现当 \(A - D \leq 0\) 且 \(A - D \leq 0\) 的时候一定平局,然后是两种特殊情况,若 \(A - D < 0 \w…...

美团AI面试

1、什么是正向代理和反向代理?两者有什么区别? 2、正向代理的作用时候,使用正向代理去访问被屏蔽的网站会怎样 3、JMM是什么,volintile的作用是什么 3、多线程中原子性的怎么实现的 4、数据库的事务分别是什么,他们解决了什么问题 5、可重复读是怎么实现的,他是怎么解决幻…...

技术面:Spring (bean的生命周期、创建方式、注入方式、作用域)

Spring Bean的生命周期是什么样的? 在Spring容器里一个Bean的从创建到销毁一般都是经历了以下几个阶段: 定义阶段(Bean元信息配置)=>实例化阶段(创建Bean对象)=>初始化阶段(执行初始化逻辑)=>使用阶段(Bean可用)=>销毁阶段(释放资源)定义阶段(BeanDef…...

马尔可夫决策

马尔可夫决策 马尔可夫决策:随机动态环境下序贯决策,其核心假设是 “马尔可夫性”—— 即 “未来状态的概率分布仅依赖于当前状态,与当前状态之前的历史无关”。MDP 的最终目标是找到一套最优策略 π(π: S→A,即 “在每个状态下选择哪个动作” 的规则) 马尔可夫决策可以…...

十九、指令流水线的基本概念

目录一、核心思想:类比工厂装配线二、一个经典的5级流水线模型(RISC)三、流水线的可视化:时空图四、流水线的优势五、流水线的挑战: hazards(冒险/冲突)总结指令流水线是一个计算机体系结构中的核心概念,旨在提高处理器的效率和吞吐率。 一、核心思想:类比工厂装配线 …...

本地布署Diffusers库 实现文生图 - yi

本地布署Diffusers库 实现文生图本地布署Diffusers库实现文生图 本次随笔,记录开源Python库Diffusers库的使用。 Diffusers库由Hugging Face维护,拥有活跃的社区和丰富的文档。Diffusers库是专注于扩散模型(Diffusion Models)的开源Python库。Diffusers库多任务支持​​:支…...

【光照】[光照模型]发展里程碑时间线

【从UnityURP开始探索游戏渲染】专栏-直达图形学光照模型发展史:技术演进与里程碑 section 基础奠基期(1960s-1970s)1967 : Lambert模型(漫反射) - Bui Tuong Phong提出 1971 : Gouraud着色 - Henri Gouraud发明顶点插值着色 1973 : Warnock算法 - 首次实现隐藏面消除 1975…...

算法设计作业-week1

任务一:企业内部编码规范参考 https://max.book118.com/html/2020/1120/8077006051003017.shtm任务二:《数学之美》阅读 读《数学之美》第二章:自然语言处理从规则到统计的启示 在阅读吴军博士《数学之美》第二章后,我对自然语言处理(NLP)的发展历程有了深刻的认识。这一…...

git merge

git merge :合并分支,从指定的分支名合并到当前所处的分支上。...

C语言学习

file:/D:/study/C语言/test1.c 现在开始学习c语言了,感觉跟java的大差不差,之后一段时间就学他吧。还有就是想吐槽一下devc的功能性有点差,连把代码文件拖拽到这里都不行。...

Ubuntu 的剪贴板

在 Ubuntu 上可以安装 copyq: sudo apt install copyq然后启动 copyq: copyqUbuntu 默认 Win+V 快捷键是打开通知,可以进行修改:为 copyq 添加快捷键,命令必须是 copyq toggle,名称可以随意。...

IDAPro--MCP详细配置教程

IDAPro--MCP详细配置教程 本文介绍如何配置idamcp实现ai自动化分析二进制文件,用于解决CTF竞赛中reverse与pwn类型的题目 IDA版本:9.1专业版 mcp:cherrystudio,lmstudio(本地部署ai) 一、项目简介 项目地址:https://github.com/mrexodia/ida-pro-mcp 功能:与IDApro实现联动…...

安全不是一个功能-而是一个地基

GitHub 主页 安全不是一个功能,而是一个地基 🔒🏗️ 我入行大概十年的时候,经历过一次让我至今心有余悸的安全事件。我们当时在为一个金融客户做一套在线交易系统。一个年轻的程序员,在写一个查询历史订单的接口时,为了图方便,直接用字符串拼接了 SQL 语句。是的,你没…...

你的测试又慢又不可靠-因为你测错了东西

GitHub 主页 你的测试又慢又不可靠?因为你测错了东西!🧪➡️✅ “我们应该写更多的测试。” 在每一个技术会议上,这句话都会被反复提起,就像一句神圣的咒语。人人都点头称是,人人都知道这是“正确”的。但一回到座位上,很多人脸上的表情就变得痛苦起来。😫 为什么?因…...

别再猜了-开始测量吧-一份实用的Web性能指南

GitHub 主页 别再猜了,开始测量吧:一份实用的 Web 性能指南 又是一年“黑五”,凌晨三点,我的手机像疯了一样尖叫起来。😱 不是闹钟,是监控警报。我们的主打电商服务,那个我们花了半年心血构建的系统,在流量洪峰面前,像纸糊的一样,彻底崩溃了。CPU 100%,内存溢出,日…...

你的中间件一团糟-是时候修复它了-️

GitHub 主页 中间件(Middleware)。这是 Web 开发中最强大的概念之一,也是最容易被滥用的概念之一。理论上,这是一个美妙的想法:一个由可复用组件构成的管道,可以检查、转换或终止请求。但在实践中,在我多年来使用过的许多框架中,它变成了一团乱麻,函数调用函数,控制流…...

文件不只是数据-一份稳健的文件处理指南

GitHub 主页 文件不只是数据:一份稳健的文件处理指南 📁💾 我永远忘不了那个下午。我们刚刚上线了一个允许用户上传个人头像的新功能。一切看起来都很完美。直到一个用户,出于无心或有意,尝试上传了一个他电脑上 2GB 大小的电影文件。🎬 服务器的内存监控瞬间飙红,CP…...

告别框架臃肿-我如何在不牺牲性能的情况下重新发现简单之美

GitHub 主页 我写了四十多年的代码。我刚开始编程的时候,打孔卡还是主流,互联网还只是大学实验室里一个遥不可及的梦想。我见证了无数语言和框架的兴衰起落,如同王朝更迭。我曾驾驭过技术的浪潮,也曾目睹它们在现实的海岸上撞得粉碎。如果说我从中学到了什么,那就是复杂性…...

超越-env-一份成熟的应用程序配置指南

GitHub 主页 超越.env:一份成熟的应用程序配置指南 🧐 让我给你讲个鬼故事。👻 几年前,我们团队的一个新来的小伙子,在一次紧急的线上热修复中,不小心把一个配置项搞错了。他本该把数据库地址指向生产环境的只读副本,结果,他忘了在生产服务器上更新那个小小的.env文件…...

20250913 NFLS 模拟赛 部分题目

简单倍增 #include <bits/stdc++.h> using namespace std; using ll = long long;int main() {freopen("fountain.in","r",stdin);freopen("fountain.out","w",stdout);ios::sync_with_stdio(false);cin.tie(nullptr);int n, q;…...

帐号内容定位

帐号定位原则和逻辑...

基于YOLOv8的茶叶病害识别项目|完整源码数据集+图形化界面+训练教程

本文介绍了一个基于 YOLOv8 的茶叶病害识别系统,从数据集构建、模型训练到 PyQt5 可视化界面实现,完整展示了茶叶病害检测的开发流程。该系统不仅能够识别 8类茶叶病虫害及健康状态,还具备 高精度、实时性强、操作简单 等特点,适用于科研、茶园管理以及智能农业应用场景。未…...

2025第三届“陇剑杯”网络安全大赛初赛-夺旗闯关赛wp

应急 应急响应siem百度网盘:通过网盘分享的文件:siem-加密.rar链接: https://pan.baidu.com/s/1wtfdSY2hThOAzVRGr9jwcg 提取码: e86t 解压密码:x2p1nsWFG4KfXp5BXegb题目描述:题目描述在比赛过程中变了一次,具体如下:初始:某企业内网被攻破了,请分析出问题并给出正确的…...

《Python数据结构与算法分析》第二弹《2.2.2 异序词检测示例》

2.2.2 异序词检测示例 要展示不同数量级的算法,一个好例子就是经典的异序词检测问题。如果一个字符串只是重排了另一个字符串的字符,那么这个字符串就是另一个的异序词,比如heart与earth,以及python与typhon。为了简化问题,假设要检查的两个字符串长度相同,并且都是由26个…...

深入解析:柱状图(Vue3)

深入解析:柱状图(Vue3)pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important; font-size…...

计算机毕业设计springboot基于微信小程序的手机点餐软件 基于Spring Boot框架的微信小程序点餐体系设计与实现 微信小脚本点餐应用开发:Spring Boot技术的应用

计算机毕业设计springboot基于微信小程序的手机点餐软件 基于Spring Boot框架的微信小程序点餐体系设计与实现 微信小脚本点餐应用开发:Spring Boot技术的应用pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block…...

二叉树的相关知识

二叉树的相关知识 问题一:知道二叉树的后序遍历和中序遍历,如何得到前序遍历 我的想法:遍历后序序列,找到根结点在前序序列中找到你刚刚找到的根结点根据找到的根结点,把前序列表中的序列分为两部分,一部分为根结点的左子树,另一部分为根结点的右子树分别遍历左子树和右…...

原假设的选择准则:总损失视角的假设检验

img { display: block; margin-left: auto; margin-right: auto } table { margin-left: auto; margin-right: auto } 在假设检验中,原假设(𝐻0)与备择假设(𝐻1)的设定是统计推断的核心。原假设通常代表“无效应”或“现状维持”,提供可操作的基准,例如总体均值等于…...

dfs序基础+树上差分

dfs序基础1 给一棵有根树,这棵树由编号为 \(1\dots N\) 的 \(N\) 个结点组成。根结点的编号为 \(R\)。每个结点都有一个权值,结点 \(i\) 的权值为 \(v_i\)。 接下来有 \(M\) 组操作,操作分为两类:1 a x,表示将结点 \(a\) 的权值增加 \(x\); 2 a,表示求结点 \(a\) 的子树…...

Python中的if __name__ == __main__是什么?

引言 当初学习Python编程语言时,经常会遇到一段代码:if name == "main"。初学者可能会疑惑这段代码的作用和意义是什么,为什么要这样写。本文将对这段代码进行详细地解析,并提供代码示例,帮助初学者更好地理解这一概念。 if name == "main"的基本概念…...

钻石

目前抖音福袋扭蛋机的用户产出的DY钻石比较多,我们努力撮合商家和散户之间的交易,中间向商家收取一定的费用和少许保证金(为保证交易安全)。 收购价格为每100钻石7元,不封顶。比如100钻石/7元,1000钻石/70元,10000钻石/700元。打赏给我们指定的直播间即可。 需要出售和收…...

随机游走理解

随机游走理解赌徒破产定理:为什么赌博最终会归零 引言 在概率论中,"赌徒破产定理"(Gamblers Ruin)是一个经典的结果,它表明在一个公平的赌博游戏中,如果赌徒拥有有限的本金而庄家拥有无限的资金,赌徒最终破产的概率是1。即使游戏是公平的(胜负概率各50%,赔率…...

【基于协同过滤的校园二手交易强大的平台】

【基于协同过滤的校园二手交易强大的平台】pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !impo…...

Neural ODE原理与PyTorch实现:深度学习模型的自适应深度调节

对于神经网络来说,我们已经习惯了层状网络的思维:数据进来,经过第一层,然后第二层,第三层,最后输出结果。这个过程很像流水线,每一步都是离散的。 但是现实世界的变化是连续的,比如烧开水,谁的温度不是从30度直接跳到40度,而是平滑的上生。球从山坡滚下来速度也是渐渐…...

PKU_Compiler

from pixiv 资源NJU Compiler 课程 中科大 Compiler 课程 LLVM IR Github book教程 Koopa IR 框架 PKU 讲义本体 Github仓库Lv0 环境配置 Docker 获取编译实践的镜像: sudo docker pull maxxing/compiler-devdocker安装配置docker镜像vim /etc/docker/daemon.json{"regist…...

lc1026-节点与其祖先之间的最大差值

难度:中等(伪境)题目描述给定一棵二叉树,找到最大的“节点与其祖先节点的差值的绝对值”示例 输入:root = [8,3,10,1,6,null,14,null,null,4,7,13] 输出:7 解释:8/ \3 10/ \ \ 1 6 14/ \ /4 7 13|8 - 1| = 7输入:root = [1,null,2,null,0,3] 输出:3 解释…...