OpenCV图像处理——模版匹配和霍夫变换
目录
- 模版匹配
- 原理
- 实现
- 霍夫变换
- 霍夫线检测
模版匹配
原理


实现
res=cv.matchTemplate(img,template,method)

import numpy as np
import cv2 as cv
import matplotlib.pyplot as pltimg=cv.imread('./汪学长的随堂资料/6/模板匹配/lena.jpg')
template=cv.imread('./汪学长的随堂资料/6/模板匹配/face.jpg')
res=cv.matchTemplate(img,template,cv.TM_CCORR)
min_val,max_val,min_loc,max_loc=cv.minMaxLoc(res)
top_left=max_loc
h,w=template.shape[:2]
bottom_right=(top_left[0]+w,top_left[1]+h)
cv.rectangle(img,top_left,bottom_right,[0,255,0],2)
plt.imshow(img[:,:,::-1])

注:

霍夫变换

霍夫线检测
cv.HoughLines(img,rho,theta,threshold)

img=cv.imread('./image/rili,jpg',0)
edges=cv.Canny(img,50,150)
lines=cv.HoughLines(edges,0.8,np.pi/180,150)
for line in lines:rho,theta=line[0]a=np.cos(theta)b=np.sin(theta)x0=rho*ay0=rho*bx1=int(x0+1000*(-b))y1=int(y0+1000*a)x2=int(x0-1000*(-b))y2=int(y0-1000*a)cv.line(img,(x1,y1),(x2,y2),(0,255,0))
plt.imshow(img[:,:,::-1])

相关文章:
OpenCV图像处理——模版匹配和霍夫变换
目录 模版匹配原理实现 霍夫变换霍夫线检测 模版匹配 原理 实现 rescv.matchTemplate(img,template,method)import numpy as np import cv2 as cv import matplotlib.pyplot as pltimgcv.imread(./汪学长的随堂资料/6/模板匹配/lena.jpg) templatecv.imread(./汪学长的随堂资…...
面试官的几句话,差点让我挂在HTTPS上
♥ 前 言 作为软件测试,大家都知道一些常用的网络协议是我们必须要了解和掌握的,比如 HTTP 协议,HTTPS 协议就是两个使用非常广泛的协议,所以也是面试官问的面试的时候问的比较多的两个协议;而且因为这两个协议有相…...
C语言char**,char*,char s[]赋值
目录 前言 赋值方法 char s[]: char* char** 问题 修改字符串常量 前言 char**,char*,char s[]赋值的方式是不同的,当你搞混的时候,系统会报出段错误(Segmentation Fault),所…...
一、Kubernetes介绍与集群架构
Kubernetes介绍与集群架构 一、认识容器编排工具 docker machine 主要用于准备docker host现已弃用建议使用docker desktop docker compose Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。使用 Compose,您可以使用 YAML 文件来配置应用程序的服务。…...
基于C#UI Automation自动化测试
步骤 UI Automation 只适用于,标准的win32和 WPF程序 需要添加对UIAutomationClient、 UIAutomationProvider、 UIAutomationTypes的引用 代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.D…...
深入了解Linux运维的重要性与最佳实践
Linux作为开源操作系统的代表,在企业级环境中的应用越来越广泛。而在保障Linux系统的正常运行和管理方面,Linux运维显得尤为关键。本文将介绍Linux运维的重要性以及一些最佳实践,帮助读者更好地了解和掌握Linux系统的运维技巧。 首先…...
90 | Python人工智能篇 —— 深度学习算法 Keras基于卷积神经网络的情感分类
情感分类是自然语言处理(NLP)领域的一个重要任务,它旨在将文本划分为积极、消极或中性等不同情感类别。深度学习技术,尤其是卷积神经网络(CNN),在情感分类任务中取得了显著的成果。Keras作为一个高级的深度学习框架,提供了便捷易用的工具来构建和训练情感分类模型。 文…...
自然语言处理从入门到应用——LangChain:记忆(Memory)-[记忆的类型Ⅲ]
分类目录:《自然语言处理从入门到应用》总目录 对话令牌缓冲存储器ConversationTokenBufferMemory ConversationTokenBufferMemory在内存中保留了最近的一些对话交互,并使用标记长度来确定何时刷新交互,而不是交互数量。 from langchain.me…...
【ARM 嵌入式 编译系列 10.3 -- GNU elfutils 工具小结】
文章目录 什么是 GNU elfutils?GNU elfutils 常用工具有哪些?objcopy 常用参数有哪些?GNU binutils和GNU elfutils区别是什么? 上篇文章:ARM 嵌入式 编译系列 10.2 – 符号表与可执行程序分离详细讲解 什么是 GNU elfu…...
黑马项目一阶段面试 项目介绍篇
我完成了一个外卖项目,名叫苍穹外卖,是跟着黑马程序员的课程来自己动手写的。 项目基本实现了外卖客户端、商家端的后端完整业务。 商家端分为员工管理、文件上传、菜品管理、分类管理、套餐管理、店铺营业状态、订单下单派送等的管理、数据统计等&…...
重构内置类Function原型上的call方法
重构内置类Function原型上的call方法 // > 重构内置类Function原型上的call方法 ~(function () {/*** call: 改变函数中的this指向* params* context 可以不传递,传递必须是引用类型的值,因为后面要给它加 fn 属性**/function myCall(context) {/…...
Nginx之lnmp架构
目录 一.什么是LNMP二.LNMP环境搭建1.Nginx的搭建2.安装php3.安装数据库4.测试Nginx与PHP的连接5.测试PHP连接数据库 一.什么是LNMP LNMP是一套技术的组合,Llinux,Nnginx,Mmysql,Pphp 首先Nginx服务是不能处理动态资源请求&…...
C# 使用FFmpeg.Autogen对byte[]进行编解码
C# 使用FFmpeg.Autogen对byte[]进行编解码,参考:https://github.com/vanjoge/CSharpVideoDemo 入口调用类: using System; using System.IO; using System.Drawing; using System.Runtime.InteropServices; using FFmpeg.AutoGen;namespace F…...
websocket是多线程的嘛
经过测试, onOpen事件的threadId和onMessage的threadId是不一样的,但是onMessage的threadId一直是同一个,就是说收消息的部分是单线程的,收到第一个Message后如果给它sleep较长时间,期间收到第二个,效果是它在排队&am…...
CentOS7.9 禁用22端口,使用其他端口替代
文章目录 业务场景操作步骤修改sshd配置文件修改SELinux开放给ssh使用的端口修改防火墙,开放新端口重启sshd生效 相关知识点介绍sshd服务SELinux服务firewall.service服务 业务场景 我们在某市实施交通信控平台项目,我们申请了一台服务器,用…...
2023国赛 高教社杯数学建模ABCDE题思路汇总分析
文章目录 0 赛题思路1 竞赛信息2 竞赛时间3 建模常见问题类型3.1 分类问题3.2 优化问题3.3 预测问题3.4 评价问题 4 建模资料 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 1 竞赛信息 全国大学生数学建模…...
【网络层+数据链路层】深入理解IP协议和MAC帧协议的基本原理
文章目录 前言一、IP协议二、MAC帧协议 1.以太网2.以太网帧(MAC帧)格式报头3.基于协议讲解局域网转发的原理总结 前言 为什么经常将TCP/IP放在一起呢?这是因为IP层的核心工作就是通过IP地址来定位主机的,具有将一个数据报从A主机…...
银行家算法【学习算法】
银行家算法【学习算法】 前言版权推荐银行家算法7.避免死锁7.1 系统安全状态7.2 利用银行家算法避免死锁 Java算法实现代码结果 最后 前言 2023-8-14 18:18:01 以下内容源自《【学习算法】》 仅供学习交流使用 版权 禁止其他平台发布时删除以下此话 本文首次发布于CSDN平台…...
萤石直播以及回放的接入和销毁
以下基于vue项目 1.安装 npm i ezuikit-js 2、导入 main.js中 import EZUIKit from "ezuikit-js"; //导入萤石Vue.use(EZUIKit); 3、创建容器 <div class"video"><div id"video-container"></div><!-- <iframe :src…...
C语言易错知识点总结2
函数 第 1 题(单选题) 题目名称: 能把函数处理结果的二个数据返回给主调函数,在下面的方法中不正确的是:( ) 题目内容: A .return 这二个数 B .形参用数组 C .形参用二个指针 D .用…...
Jetson Nano 平台YOLO目标检测优化详细设计方案
Jetson Nano 平台YOLO目标检测优化详细设计方案 1. 项目概况与设计目标 Jetson Nano 作为 NVIDIA 推出的入门级边缘 AI 计算平台,虽然在计算能力上相比高端 GPU有所限制,但在功耗控制和成本效益方面表现优异,特别适合对功耗敏感的边缘部署场景…...
OpenClaw日志分析:千问3.5-35B-A3B-FP8任务执行效率优化
OpenClaw日志分析:千问3.5-35B-A3B-FP8任务执行效率优化 1. 为什么需要关注OpenClaw的任务执行效率 上周我在本地部署了OpenClaw,并接入千问3.5-35B-A3B-FP8模型进行自动化任务测试。最初几天运行还算顺利,但随着任务复杂度增加,…...
A20B-8200-0927控制器模块
A20B-8200-0927控制器模块是一款面向工业自动化与数控系统应用的关键控制单元,具备良好的数据处理能力与系统协调性能,能够在复杂工况下实现稳定可靠的设备控制,广泛应用于自动化产线及数控设备中。采用高性能处理架构,提升整体运…...
OpenClaw技能扩展:Qwen3.5-9B代码生成+本地执行实战
OpenClaw技能扩展:Qwen3.5-9B代码生成本地执行实战 1. 为什么需要代码生成与自动执行? 作为一名长期与数据打交道的开发者,我每天要处理大量重复性脚本编写任务:数据清洗、格式转换、日志分析...这些工作往往占用了70%以上的编码…...
【独家首发】.NET 9 AOT编译边缘优化白皮书:静态链接、无GC堆、零依赖二进制生成全流程
第一章:.NET 9 AOT编译边缘优化全景概览.NET 9 将 AOT(Ahead-of-Time)编译能力推向生产级边缘场景,显著降低冷启动延迟、内存占用与部署包体积,尤其适用于 IoT 设备、Serverless 函数、嵌入式容器及轻量 WebAssembly 应…...
告别迷茫!ESP-IDF下LVGL驱动ST7789/ILI9341屏幕的引脚配置与Menuconfig选项全解析
告别迷茫!ESP-IDF下LVGL驱动ST7789/ILI9341屏幕的引脚配置与Menuconfig选项全解析 第一次在ESP32上尝试LVGL时,面对密密麻麻的Menuconfig选项和复杂的引脚配置,相信不少开发者都会感到无从下手。本文将带你深入理解ESP-IDF框架下LVGL显示驱动…...
基于CBLOF算法的用电异常用户识别:原理、实践与工程落地(上篇)
目录 摘要 关键词 一、引言:用电异常检测的业务痛点与技术挑战 1.1 传统阈值法的局限性 1.2 有监督学习方法的适配性不足 1.3 传统离群检测算法的不足 1.4 CBLOF算法的适配性优势 二、CBLOF算法核心原理深度剖析 2.1 算法核心流程(完整版) 步骤1:数据预处理 步骤…...
.Net基于AgentFramework中智能体Agent Skill集成Shell命令实现小龙虾mini版峡
从0构建WAV文件:读懂计算机文件的本质 虽然接触计算机有一段时间了,但是我的视野一直局限于一个较小的范围之内,往往只能看到于算法竞赛相关的内容,计算机各种文件在我看来十分复杂,认为构建他们并能达到目的是一件困难…...
EEPROM页写机制导致的I2C数据异常解析
1. EEPROM读写异常问题深度解析最近在嵌入式开发群里有位工程师反馈了一个典型问题:使用I2C接口对AT24C02 EEPROM进行连续8字节读写时,发现最后两个字节数据出现异常。写入数据为0x10-0x08,但读取时最后两个字节变成了0xFF。这个问题看似简单…...
嵌入式裸机开发中的轻量级定时调度方案
1. SmartTimer:裸机环境下的轻量级定时调度方案在嵌入式开发中,定时任务管理是个永恒的话题。我最近在做一个空气质量监测项目时,发现传统的裸机编程方式在处理多个定时任务时显得力不从心。硬件定时器资源有限,软件标志位管理又容…...
