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)

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

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

相关文章

SpringBoot启动命令过长

Error running DromaraApplication: Command line is too long. Shorten command line for DromaraApplication or also for Spring Boot default configuration?

LeetCode 热题 HOT 100 (010/100)【宇宙最简单版】

【链表】No. 0206 反转链表 【简单】👉力扣对应题目指路 希望对你有帮助呀!!💜💜 如有更好理解的思路,欢迎大家留言补充 ~ 一起加油叭 💦 欢迎关注、订阅专栏 【力扣详解】谢谢你的支持&#xf…

轻松学EntityFramework Core--模型创建

一、使用代码优先(Code-First)创建模型 Code-First 方法是 EF Core 提供的一种用于定义模型的方式,它允许开发人员通过编写 C# 类来定义数据库模式,再通过迁移命令生成数据库表。下面我们来一起看一下代码优先如何使用。 1.1、创…

问题记录-SpringBoot 2.7.2 整合 Swagger 报错

详细报错如下 报错背景,我将springboot从2.3.3升级到了2.7.2,报了下面的错误: org.springframework.context.ApplicationContextException: Failed to start bean documentationPluginsBootstrapper; nested exception is java.lang.NullPo…

MySQL练手 --- 1789. 员工的直属部门

题目链接:1789. 员工的直属部门 这道题虽然是个简单题,但是"坑"倒是不少,所以记录一下 思路: 题目要干: 一个员工可以属于多个部门。当一个员工加入超过一个部门的时候,他需要决定哪个部门是…

导航网站WP主题/WP黑格导航主题BlackCandy-简约酷黑色高逼格+焕然一新的UI设计

源码简介: 导航网站WP主题-WP黑格导航主题BlackCandy,它有着简约酷黑色高逼格,而且有焕然一新的UI设计。它是一个简约漂亮的 WordPress 自媒体主题。黑格网址导航主题,自适应电脑端和手机端。 BlackCandy-V2.0这次全新升级了&am…

mac M1安装Roop教程及所遇到的问题

1.安装miniconda,下载地址: 按 Python 版本划分的最新 Miniconda 安装程序链接:https://docs.anaconda.com/miniconda/miniconda-other-installer-links/ 下载后直接默认安装即可。 我用的是:Python3.10对应的Miniconda 2.下载…

哪个邮箱最安全最好用啊

企业邮箱安全至关重要,需保护隐私、防财务损失、维护通信安全、避免纠纷,并维持业务连续性。哪个企业邮箱最安全好用呢?Zoho企业邮箱,采用加密技术、反垃圾邮件和病毒保护,支持多因素认证,确保数据安全合规…

nodejs - express 学习笔记

express 是一个基于 Node.js 平台的极简、灵活的 WEB 应用开发框架,官方网址:https://www.expressjs. com.cn/ 简单来说,express 是一个封装好的工具包,封装了很多功能,便于我们开发 WEB 应用(HTTP 服务&am…

EasyMedia转码rtsp视频流flv格式,hls格式,H5页面播放flv流视频

EasyMedia转码rtsp视频流flv格式,hls格式 H5页面播放flv流视频 文章最后有源码地址 解决海康视频播放视频流,先转码后自定义页面播放flv视频流 先看效果,1,EasyMedia自带的页面,这个页面二次开发改动页面比较麻烦 …

秋叶大神中文版Stable Diffusion下载安装使用教程

Stable Diffusion是什么? Stable Diffusion是一款开源的AI绘画软件,于2022年发布,由CompVis、Stability AI和LAION的研究人员创建。该软件具有出色的图像生成功能,使用户能够从头开始绘制作品,也可以使用现有的图像进…

Sentinel限流规则详解

上一期教程讲解了 Sentinel 的快速入门:Sentinel快速入门,这一期主要讲述 Sentinel 的限流规则 簇点链路 簇点链路就是项目内的调用链路(Controller -> Service -> Mapper),链路中被监控的每个接口就是一个资源…

Jenkins+Maven+Gitlab+Tomcat自动化构建打包+部署

目录 环境准备 导入项目包 配置jenkins 构建项目 配置项目上线 修改项目代码测试 环境准备 本实操项目环境基于https://blog.csdn.net/Lzcsfg/article/details/140359830 首先在node01主机中操作,本次操作需要java8的版本,将之前安装的java17卸…

Shell编程之正则表达式与文本三剑客

目录 一、正则表达式 1.引言--什么是正则表达式 1.1正则表达式的功能 2.基础正则表达式(BRE) 2.1特殊字符 2.2定位符 2.3非打印字符 3.扩展正则表达式(ERE) 4.元字符操作的案列 二、命令小工具 1.cut:列截取工具 2.sort排序 …

请你谈谈:spring bean的生命周期 - 阶段5:BeanPostProcessor前置处理-自定义初始化逻辑-BeanPostProcess后置处理

BeanPostProcessor的postProcessBeforeInitialization方法是在bean的依赖注入(即属性填充)完成后,但在bean的初始化回调(如PostConstruct注解的方法或InitializingBean接口的afterPropertiesSet方法)之前被调用的。 具…

大数据管理中心设计规划方案(可编辑的43页PPT)

引言:随着企业业务的快速发展,数据量急剧增长,传统数据管理方式已无法满足高效处理和分析大数据的需求。建立一个集数据存储、处理、分析、可视化于一体的大数据管理中心,提升数据处理能力,加速业务决策过程&#xff0…

Hive3:Hive初体验

1、创建表 CREATE TABLE test(id INT, name STRING, gender STRING);2、新增数据 INSERT INTO test VALUES(1, 王力红, 男); INSERT INTO test VALUES(2, 钉钉盯, 女); INSERT INTO test VALUES(3, 咔咔咔, 女);3、查询数据 简单查询 select * from test;带聚合函数的查询 …

自动驾驶-机器人-slam-定位面经和面试知识系列01之常考公式推导(01)

李群李代数扰动bundle adjustment 这个博客系列会分为C STL-面经、常考公式推导和SLAM面经面试题等三个系列进行更新,基本涵盖了自己秋招历程被问过的面试内容(除了实习和学校项目相关的具体细节)。在知乎和牛客也会同步更新,全网…

IDEA-安装插件 驼峰下划线转换

第一步:安装 file-settings-plugins-在marketplace搜索“CamelCase”-点击安装 第二步:设置 file-settings-editor-camel_case 第三步:使用 选中想转换的遍历 使用快捷键 Alt Shift U

Linux中tomcat下载教程

一.安装tomcat 1.安装 EPEL 仓库: sudo yum install epel-release2.安装 Tomcat: sudo yum install tomcat3.启动 Tomcat 服务: sudo systemctl start tomcat4.启用 Tomcat 服务开机启动: sudo systemctl enable tomcat5.检查…