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

opencv 按键开启连续截图,并加载提示图片

背景图+小图
在这里插入图片描述
在这里插入图片描述
键盘监听使用的是pynput 库
保存图片时使用了年月日时分秒命名
原图:
请添加图片描述
请添加图片描述

from pynput import keyboard
import cv2
import time# 键盘监听
def on_press(key):global jieglobal guanif key.char == 'a':jie = Trueelif key.char == 'd':jie = Falseelif key.char == 'q':guan = Truelistener = keyboard.Listener(on_press=on_press)
listener.start()img1_1 = cv2.imread("./img1_1.jpg")  # 正在截图(准备2张图片)
img1_2 = cv2.imread("./img1_2.jpg")  # 没有截图(准备两张图片)# 保存截图程序
# # 截图 y1 y2 x1 x2
# # # 531 450 644 479
# x1, y1, x2, y2 = 541, 450, 644, 479
# img1_1 = img1_1[y1:y2, x1:x2]
#
# cv2.namedWindow('f2100', cv2.WINDOW_NORMAL)
# cv2.imshow('f2100', img1_1)
# cv2.waitKey(0)
# path_img = "./ce/"
# img_name = "img1_2" + ".jpg"
#
# cv2.imwrite(img_name, img1_1)img1_h, img1_w, img1_3 = img1_1.shape
img2_h, img2_w, img2_3 = img1_2.shapecap = cv2.VideoCapture("./data_ce_mp4/9.mp4")# 命名区分
n1 = 0
# 跳帧计数
zhen = 0# 截图状态开关
jie = False
# 程序关闭按钮
guan = False# 绘制文字
font = cv2.FONT_HERSHEY_SIMPLEXwhile cap.isOpened():# 逐帧读取ret, image = cap.read()n1 += 1    # 取名字zhen += 1  # 多少帧截取一次# 视频结束则关闭程序if not ret:break# 按下则关闭程序if guan:break# 跳帧计数if zhen >= 20:# 截图状态开关if jie:# tm_year=2024, tm_mon=7, tm_mday=22, tm_hour=11, tm_min=1, tm_sec=53, tm_wday=0# 按照年月日时分秒来命名localtime = time.localtime(time.time())# print(localtime)tm_year = str(localtime.tm_year)tm_mon = str(localtime.tm_mon)tm_mday = str(localtime.tm_mday)tm_hour = str(localtime.tm_hour)tm_min = str(localtime.tm_min)tm_sec = str(localtime.tm_sec)# 保证年月日时分秒是定长的# 月if len(tm_mon) != 2:tm_mon = "0" + tm_mon# 日if len(tm_mday) != 2:tm_mday = "0" + tm_mday# 时if len(tm_hour) != 2:tm_hour = "0" + tm_hour# 分sif len(tm_hour) != 2:tm_min = "0" + tm_min# 秒if len(tm_sec) != 2:tm_sec = "0" + tm_sec# print(tm_year, tm_mon, tm_mday, tm_hour, tm_min, tm_sec)path_img = "./ce/"img_name = tm_year + tm_mon + tm_mday + tm_hour + tm_min + tm_sec + "_" + str(n1) + ".jpg"cv2.imwrite(path_img + img_name, image)print("正在截图")print(img_name)zhen = 0# 将小图片按位置百分比放入大图片中h, w, _1 = image.shape# 截图 y1 y2 x1 x2x1_1, y1_1, x2_1, y2_1 = 0 + int(0.1 * w), 0 + int(0.2 * h), img1_w + int(0.1 * w), img1_h + int(0.2 * h)x1_2, y1_2, x2_2, y2_2 = 0 + int(0.1 * w), 0 + int(0.2 * h), img2_w + int(0.1 * w), img2_h + int(0.2 * h)# 按照状态不同,叠加的图片不同if jie:string_jie = "yes"image[y1_1:y2_1, x1_1:x2_1] = img1_1else:string_jie = "No!"print("没有截图")image[y1_2:y2_2, x1_2:x2_2] = img1_2# 绘制字母# 参数:图像、文字、坐标、支持的字体、大小、颜色、粗细# cv2.putText(image, string_jie, (int(0.1 * w), int(0.17 * h)), font, 2, (0, 0, 255), 3)# print(x1_1, y1_1, x2_1, y2_1)# 显示的图像是否可以鼠标拖动缩放# cv2.namedWindow('f2100', cv2.WINDOW_NORMAL)cv2.imshow('f2100', image)cv2.waitKey(1)

相关文章:

opencv 按键开启连续截图,并加载提示图片

背景图小图 键盘监听使用的是pynput 库 保存图片时使用了年月日时分秒命名 原图: from pynput import keyboard import cv2 import time# 键盘监听 def on_press(key):global jieglobal guanif key.char a:jie Trueelif key.char d:jie Falseelif key.char…...

Android-- 集成谷歌地图

引言 项目需求需要在谷歌地图: 地图展示,设备点聚合,设备站点,绘制点和区域等功能。 我只针对我涉及到的技术做一下总结,希望能帮到开始接触谷歌地图的伙伴们。 集成步骤 1、在项目的modle的build.gradle中添加依赖如…...

Jvm是如何处理异常的

异常抛出 当Java程序运行时遇到无法处理的情况时,会抛出一个异常(比如在一个方法中如果发生异常),这时会创建一个异常对象,并转交给JVM,该异常对象包含异常名称,异常描述以及异常发生时应用程序的状态。创建异常对象并转交给JVM的过程称为抛出异常。 异常捕捉 当JVM检测…...

recursion depth exceeded” error

有些时候不可以用jax.jit装饰器 参考资料:使用 JAX 后端在 Keras 3 中训练 GAN |由 Khawaja Abaid |中等 (medium.com)...

虚拟现实和增强现实技术系列—Expressive Talking Avatars

文章目录 1. 概述2. 背景介绍3. 数据集3.1 设计标准3.2 数据采集 4. 方法4.1 概述4.2 架构4.3 目标函数 5. 实验评测5.1 用户研究5.2 我们方法的结果5.3 比较与消融研究 1. 概述 支持远程协作者之间的交互和沟通。然而,明确的表达是出了名的难以创建,主…...

网站验证:确保网络安全与信任的重要步骤

网站验证:确保网络安全与信任的重要步骤 引言 在数字时代,网站验证是确保网络安全和建立用户信任的关键措施。随着网络诈骗和恶意软件的日益增多,验证网站的真实性和安全性变得尤为重要。本文将探讨网站验证的重要性、常见的验证方法以及如…...

C语言——字符串比较函数strcmp和strncmp

目录 strcmp 函数原型如下: 示例 注意事项 strcmp自实现代码: strncmp 函数 函数原型: 参数: 返回值: 特点: 两者之间的区别和联系 strcmp strcmp 是 C 语言标准库中的一个函数,用于…...

redis的集群模式

目录 1. 为什么使用redis集群 2. 主从模式 2.1修改配置文件 2.2 开启三台redis服务 2.3配置主从关系 3. 哨兵模式 3.1 监控功能 3.2 选举的机制 3.3 准备条件 4. 去中心化模式 4.1 准备三主三从 4.2 启动redis 4.3 分配槽以及主从关系 4.4 命令行的客户端 redis提供…...

基于微信小程序+SpringBoot+Vue的青少年科普教学系统平台(带1w+文档)

基于微信小程序SpringBootVue的青少年科普教学系统平台(带1w文档) 基于微信小程序SpringBootVue的青少年科普教学系统平台(带1w文档) 这个工具就是解决上述问题的最好的解决方案。它不仅可以实时完成信息处理,还缩短高校教师成果信息管理流程,使其系统化…...

智能听觉:从任务特定的机器学习到基础模型

关键词:计算机听觉、音频基础模型、多模态学习、声音事件检测 声音无处不在,弥漫于我们生活的每一个角落。鸟儿向伴侣倾诉心意的歌声,浓缩咖啡机中蒸汽的嘶嘶作响,午后阳光下昆虫振翅的嗡嗡声,金属屋顶上雨滴跳跃的滴答…...

14、如何⽤DDD设计微服务代码模型

在完成领域模型设计后,接下来我们就可以开始微服务的设计和 落地了。在微服务落地前,⾸先要确定微服务的代码结构,也就是我 下⾯要讲的微服务代码模型。 只有建⽴了标准的微服务代码模型和代码规范后,我们才可以将 领域对象映射到…...

ArcGIS Pro SDK (九)几何 12 多面体

ArcGIS Pro SDK (九)几何 12 多面体 文章目录 ArcGIS Pro SDK (九)几何 12 多面体1 通过拉伸多边形或折线构建多面体2 多面体属性3 构建多面体4 通过MultipatchBuilderEx构建多面体5 从另一个多面体构建多面体6 从 3D 模型文件构建…...

二次元手游《交错战线》游戏拆解

交错战线游戏拆解案 游戏亮点即核心趣味 一、关键词: 回合制游戏、二次元、机甲、横板、剧情、养成、异星探索。 二、游戏亮点: 符合目标群体审美的原画。 三、核心趣味: 抽卡、肝或者氪金解锁新皮肤。 核心玩法及系统规则 核心玩法&…...

【BUG】已解决:Downgrade the protobuf package to 3.20.x or lower.

Downgrade the protobuf package to 3.20.x or lower. 目录 Downgrade the protobuf package to 3.20.x or lower. 【常见模块错误】 【解决方案】 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页,我是博主英杰,211科班出身…...

Java开发之Redis

1、非关系型数据库、快、高并发、功能强大 2、为什么快?内存单线程 非阻塞的IO多路复用有效的数据类型/结构 3、应用:支持缓存、支持事务、持久化、发布订阅模型、Lua脚本 4、数据类型: 5 种基础数据类型:String(字…...

Java面试八股之 Spring Bean的生命周期

Spring Bean的生命周期 实例化(Instantiation):Spring容器根据Bean定义信息创建Bean的实例,通常通过无参构造函数进行。 依赖注入(Dependency Injection,DI):Spring容器按照Bean定…...

SQL中的函数

目录 前言 一、系统内置函数 1、数学函数 2、日期和时间函数 3、聚合函数 4、字符串函数 二、自定义函数 1、标量函数的创建与调用 2、内嵌表值函数的创建与调用 3、多语句表值函数的创建与调用 前言 函数是由一个或多个 T-SQL 语句组成的子程序,可用于封…...

VSCode | 修改编辑器注释的颜色

1 打开VsCode的设置进入settings.json 2 添加如下代码 "editor.tokenColorCustomizations": {"comments": "#17e917"},3 保存即可生效...

媒体邀约专访与群访的区别?

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 媒体邀约中的专访与群访在多个方面存在显著差异,以下是对这两种采访方式的详细比较: 一、定义与形式 专访: 定义:专访是指由媒体记者对单…...

Pycharm2024最新版community社区版下载安装配置,快速上手

第一步:下载 方法1:官网链接 https://www.jetbrains.com/pycharm/download/?sectionwindows .方法2:百度网盘 链接:https://pan.baidu.com/s/1ic2N5hUQ2m1Kmyr5nK9Jxw?pwd76dt 提取码:76dt --来自百度网盘超级…...

进程地址空间(比特课总结)

一、进程地址空间 1. 环境变量 1 )⽤户级环境变量与系统级环境变量 全局属性:环境变量具有全局属性,会被⼦进程继承。例如当bash启动⼦进程时,环 境变量会⾃动传递给⼦进程。 本地变量限制:本地变量只在当前进程(ba…...

Appium+python自动化(十六)- ADB命令

简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...

多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验

一、多模态商品数据接口的技术架构 (一)多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如,当用户上传一张“蓝色连衣裙”的图片时,接口可自动提取图像中的颜色(RGB值&…...

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

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

华为OD机试-食堂供餐-二分法

import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...

三体问题详解

从物理学角度,三体问题之所以不稳定,是因为三个天体在万有引力作用下相互作用,形成一个非线性耦合系统。我们可以从牛顿经典力学出发,列出具体的运动方程,并说明为何这个系统本质上是混沌的,无法得到一般解…...

Python ROS2【机器人中间件框架】 简介

销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...

Spring是如何解决Bean的循环依赖:三级缓存机制

1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间‌互相持有对方引用‌,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...

Kubernetes 网络模型深度解析:Pod IP 与 Service 的负载均衡机制,Service到底是什么?

Pod IP 的本质与特性 Pod IP 的定位 纯端点地址:Pod IP 是分配给 Pod 网络命名空间的真实 IP 地址(如 10.244.1.2)无特殊名称:在 Kubernetes 中,它通常被称为 “Pod IP” 或 “容器 IP”生命周期:与 Pod …...

git: early EOF

macOS报错: Initialized empty Git repository in /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/.git/ remote: Enumerating objects: 2691797, done. remote: Counting objects: 100% (1760/1760), done. remote: Compressing objects: 100% (636/636…...