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

使用OpenCV在按下Enter键时截图并保存到指定文件夹

使用OpenCV在按下Enter键时截图并保存到指定文件夹

在这篇博客中,我们将介绍如何使用OpenCV库来实现一个简单的功能:在按下Enter键时从摄像头截图并保存到指定的文件夹中。这个功能可以用于各种应用,例如监控系统、视频捕捉等。

前置条件

在开始之前,请确保你已经安装了OpenCV库。如果没有安装,可以使用以下命令进行安装:

pip install opencv-python

代码实现

以下是完整的代码实现:

import cv2
import os# 创建保存截图的文件夹
if not os.path.exists('image'):os.makedirs('image')# 打开摄像头
cap = cv2.VideoCapture(0)count = 0while True:# 读取帧ret, frame = cap.read()# 显示帧cv2.imshow('Camera', frame)# 按下'Enter'键截图并保存if cv2.waitKey(1) & 0xFF == 13:  # 13 是Enter键的ASCII码count += 1filename = f'image/screenshot_{count}.png'cv2.imwrite(filename, frame)print(f'Screenshot saved as {filename}')# 按下'q'键退出if cv2.waitKey(1) & 0xFF == ord('q'):break# 释放摄像头并关闭窗口
cap.release()
cv2.destroyAllWindows()

代码解析

  1. 导入库:首先,我们需要导入OpenCV库和os库。

    import cv2
    import os
    
  2. 创建保存截图的文件夹:检查是否存在名为image的文件夹,如果不存在则创建。

    if not os.path.exists('image'):os.makedirs('image')
    
  3. 打开摄像头:使用cv2.VideoCapture(0)打开默认摄像头。

    cap = cv2.VideoCapture(0)
    
  4. 读取和显示帧:在一个循环中不断读取摄像头的帧并显示。

    while True:ret, frame = cap.read()cv2.imshow('Camera', frame)
    
  5. 按下Enter键截图并保存:检查是否按下了Enter键(ASCII码为13),如果按下则保存当前帧到image文件夹中。

    if cv2.waitKey(1) & 0xFF == 13:count += 1filename = f'image/screenshot_{count}.png'cv2.imwrite(filename, frame)print(f'Screenshot saved as {filename}')
    
  6. 按下’q’键退出:检查是否按下了’q’键,如果按下则退出循环。

    if cv2.waitKey(1) & 0xFF == ord('q'):break
    
  7. 释放资源:释放摄像头并关闭所有OpenCV窗口。

    cap.release()
    cv2.destroyAllWindows()
    

结论

通过以上步骤,我们实现了一个简单的功能,可以在按下Enter键时从摄像头截图并保存到指定文件夹中。这个功能可以根据需要进行扩展,例如添加更多的键盘控制、保存不同格式的图片等。希望这篇博客对你有所帮助!


希望这篇博客对你有帮助!如果你有任何问题或需要进一步的帮助,请随时告诉我。

相关文章:

使用OpenCV在按下Enter键时截图并保存到指定文件夹

使用OpenCV在按下Enter键时截图并保存到指定文件夹 在这篇博客中,我们将介绍如何使用OpenCV库来实现一个简单的功能:在按下Enter键时从摄像头截图并保存到指定的文件夹中。这个功能可以用于各种应用,例如监控系统、视频捕捉等。 前置条件 …...

汇川伺服 (4)FFT、机械特性、闭环、惯量、刚性、抑制振动

一、参数解释 二、FFT 三、机械特性分析 四、多级配方与对象字典 对机组网配方 对象字典 五、InoServoShop 主要是用于调试620P620N将压缩报解压后不需要安装就可以直接使用 六、InoDriveWorkShop 主要是调试660 670 810 520 等系列 惯量识别 Etune Stune 惯量比调试 大惯…...

Unity3D中使用并行的Job完成筛选类任务详解

在Unity3D开发中,处理大量数据或执行复杂计算时,性能往往成为制约因素。为了提升游戏或应用的性能,Unity提供了强大的Job System,它允许开发者利用多线程和并行计算来优化数据处理过程。本文将详细介绍如何在Unity中使用并行的Job…...

汽车信息安全--欧盟汽车法规

目录 General regulation 信息安全法规 R155《网络安全及网络安全管理系统》解析 R156《软件升级与软件升级管理系统》解析 General regulation 欧洲的汽车行业受到一系列法律法规的约束,包括 各个方面包括: 1.安全要求:《通用安全条例&a…...

@SpringBootApplication 注解

什么是 SpringBootApplication SpringBootApplication 是 Spring Boot 提供的一个核心注解,它是一个组合注解,用于简化 Spring Boot 应用程序的配置。这个注解通常标注在主类上,用于标识一个 Spring Boot 应用的入口。通过这个注解&#xff…...

java项目总结4

目录 1.正则表达式 2.爬虫 3.时间 4.包装类 5.工具类之Arrays 6.Lambda 1.正则表达式 用于验证字符串是否满足自己所需要的规则。方法:matches 注意:\在Java中有特殊涵义,是将其它的意思本来化,假设"是用来引…...

JavaScript中的数组方法总结+详解

##JavaScript中的数组方法总结详解 用来总结和学习,便于自己查找 文章目录 一、数组是什么? 二、改变原数组的api方法?          2.1 push() 在末端添加          2.2 pop&#xff0…...

环境变量Path

PATH 是一个环境变量,它在操作系统中扮演着非常重要的角色。它定义了系统在查找可执行文件时应该搜索的目录列表。当你在命令行中输入一个命令时,操作系统会按照 PATH 变量中定义的目录顺序来查找这个命令对应的可执行文件。 主要作用 查找可执行文件&a…...

基于jeecgboot-vue3的Flowable流程-集成仿钉钉流程(四)支持json和xml的显示

因为这个项目license问题无法开源&#xff0c;更多技术支持与服务请加入我的知识星球。 1、相应的界面前端代码 <template><div class"formDesign"><FlowDesign :process"process" :fields"fields" :readOnly"readOnly&quo…...

【k8s安装redis】k8s安装单机版redis实现高性能高可用

文章目录 简介一.条件及环境说明&#xff1a;二.需求说明&#xff1a;三.实现原理及说明四.详细步骤4.1.创建configmap 配置文件4.2.创建StatefulSet 配置4.3.创建service headless 配置 五.安装说明 简介 本文将根据在k8s环境中搭建【伪】单机模式的redis实例。由于共享存储的…...

Scala 数据类型

Scala 数据类型 Scala 是一种多范式的编程语言&#xff0c;它结合了面向对象和函数式编程的特点。在 Scala 中&#xff0c;数据类型是构建复杂程序的基础。本文将详细介绍 Scala 中的数据类型&#xff0c;包括其分类、特点以及使用方法。 数据类型分类 Scala 中的数据类型可…...

Java Executors类的9种创建线程池的方法及应用场景分析

在Java中&#xff0c;Executors 类提供了多种静态工厂方法来创建不同类型的线程池。在学习线程池的过程中&#xff0c;一定避不开Executors类&#xff0c;掌握这个类的使用、原理、使用场景&#xff0c;对于实际项目开发时&#xff0c;运用自如&#xff0c;以下是一些常用的方法…...

LY/T 3359-2023 耐化学腐蚀高压装饰层积板检测

耐化学腐蚀高压装饰层积板是指用酚醛树脂浸渍的层状植物纤维材料为基材&#xff0c;与涂布以丙烯酸树脂为主体的装饰纸的饰面层&#xff0c;在高温高压下层积压制而成的具有化学腐蚀功能的高压装饰层积板。 LY/T 3359-2023 耐化学腐蚀高压装饰层积板检测项目&#xff1a; 测试…...

【linux/shell】如何创建脚本函数库并在其他脚本中调用

目录 1. 创建脚本库文件 2. 修改脚本库权限&#xff0c;使脚本库可执行 3. 在其他脚本中调用脚本库 4. 使用环境变量或.bashrc 5. 使用Shellcheck 6. 编写注释及说明文档 在Shell中创建和使用脚本库通常涉及以下几个步骤&#xff1a; 1. 创建脚本库文件 脚本库通常是包…...

Instruct-GS2GS:通过用户指令编辑 GS 三维场景

Paper: Instruct-GS2GS: Editing 3D Gaussian Splats with Instructions Introduction: https://instruct-gs2gs.github.io/ Code: https://github.com/cvachha/instruct-gs2gs Instruct-GS2GS 复用了 Instruct-NeRF2NeRF 1 的架构&#xff0c;将基于 NeRF 的三维场景编辑方法迁…...

disql使用

SQL 交互式查询工具 | 达梦技术文档 进入bin目录&#xff1a;cd /opt/dmdbms/bin 启动disql&#xff1a;./disql&#xff0c;然后输入用户名、密码 sh文件直接使用disql&#xff1a; 临时添加路径到PATH环境变量&#xff1a;在当前会话中临时使用disql命令而无需每次都写完整…...

SpringBoot Mybatis-Plus 日志带参数

SpringBoot Mybatis-Plus 日志带参数 1 实现代码2 测试结果 在Spring Boot中&#xff0c;MyBatis插件机制通过拦截器&#xff08;Interceptor&#xff09;来实现。拦截器允许开发人员在执行SQL语句的各个阶段&#xff08;如SQL语句创建、参数处理、结果映射等&#xff09;插入自…...

【WebGIS平台】传统聚落建筑科普数字化建模平台

基于上述概括出建筑单体的特征部件&#xff0c;本文利用互联网、三维建模和地理信息等技术设计了基于浏览器/服务器&#xff08;B/S&#xff09;的传统聚落建筑科普数字化平台。该平台不仅实现了对传统聚落建筑风貌从基础到复杂的数字化再现&#xff0c;允许用户轻松在线构建从…...

Zookeeper分布式锁原理说明【简单易理解】

Zookeeper 非公平锁/公平锁/共享锁 。 1.zookeeper分布式锁加锁原理 如上实现方式在并发问题比较严重的情况下&#xff0c;性能会下降的比较厉害&#xff0c;主要原因是&#xff0c;所有的连接都在对同一个节点进行监听&#xff0c;当服务器检测到删除事件时&#xff0c;要通知…...

去除Win32 Tab Control控件每个选项卡上的深色对话框背景

一般情况下&#xff0c;我们是用不带边框的对话框来充当Tab Control的每个选项卡的内容的。 例如&#xff0c;主对话框IDD_TABBOX上有一个Tab Control&#xff0c;上面有两个选项卡&#xff0c;第一个选项卡用的是IDD_DIALOG1充当内容&#xff0c;第二个用的则是IDD_DIALOG2。I…...

3大创新突破:FlashPatch如何让Flash内容重获新生

3大创新突破&#xff1a;FlashPatch如何让Flash内容重获新生 【免费下载链接】FlashPatch FlashPatch! Play Adobe Flash Player games in the browser after January 12th, 2021. 项目地址: https://gitcode.com/gh_mirrors/fl/FlashPatch 如何解决2021年后Flash内容无…...

Qwen3.5-4B-Claude-Opus应用场景:企业内训材料自动提炼+考试题生成实践

Qwen3.5-4B-Claude-Opus应用场景&#xff1a;企业内训材料自动提炼考试题生成实践 1. 企业培训面临的挑战 现代企业培训部门常常面临两大痛点&#xff1a;一是海量培训材料的整理提炼工作耗时费力&#xff0c;二是培训效果评估缺乏科学高效的考核手段。传统人工处理方式存在以…...

ai辅助c语言开发:让快马智能生成复杂格式文件读写代码

最近在开发一个C语言程序时需要处理自定义数据包格式&#xff0c;正好体验了用AI辅助开发的便捷。这个数据包格式包含包头标识、包体长度和JSON格式的包体数据&#xff0c;需要实现读写功能。下面分享我的实现过程和AI辅助开发的实用技巧。 数据包结构分析 首先明确数据包由三部…...

2026 机器人行业发展前景与 AI 获客方案深度解析

引言&#xff1a;机器人行业的爆发式增长与获客挑战2026 年 3 月&#xff0c;全球机器人行业正处于爆发前夜。数据显示&#xff0c;2026 年全球机器人市场规模预计将达到 4000 亿元&#xff0c;较 2025 年增长 25%&#xff08;数据来自网络&#xff09;。随着具身智能技术的加速…...

基于YOLOv10深度学习的管道泄漏检测系统(YOLOv10+YOLO数据集+UI界面+Python项目+模型)

一、项目介绍 项目摘要 随着工业管道运输系统的日益复杂化&#xff0c;管道泄漏事故不仅会造成巨大的经济损失&#xff0c;还可能引发严重的环境污染和安全事故。为了实现对管道泄漏的快速、准确识别&#xff0c;本研究提出了一种基于YOLOv10深度学习模型的智能管道泄漏检测系…...

超实数(Hyper-reals)的数学革命:从Hewitt到Robinson的探索历程

1. 超实数&#xff1a;一场颠覆传统数学认知的革命 想象一下&#xff0c;当你第一次学习实数时&#xff0c;老师告诉你数轴上的点与实数一一对应&#xff0c;没有任何空隙。这个看似完美的体系在20世纪中叶被一群数学家彻底颠覆了。超实数&#xff08;Hyper-reals&#xff09;的…...

5步构建智能医疗预约系统:91160-cli全流程实战指南

5步构建智能医疗预约系统&#xff1a;91160-cli全流程实战指南 【免费下载链接】91160-cli 健康160全自动挂号脚本 项目地址: https://gitcode.com/gh_mirrors/91/91160-cli 医疗资源紧张导致的挂号难题&#xff0c;让无数患者在凌晨守候却依然一号难求。如何突破人工抢…...

【脚本篇】---vim下verilog-mode-v2的高效开发实践

1. 为什么选择vimverilog-mode-v2组合 第一次接触Verilog代码时&#xff0c;我用的是各种图形化IDE&#xff0c;直到有次在服务器上紧急修改代码才发现&#xff1a;原来vim配合verilog-mode插件可以这么高效。这个组合就像瑞士军刀里的主刀——看起来朴实无华&#xff0c;但能解…...

保姆级教程:在Win10上用Docker Desktop搞定Dify,再接入本地DeepSeek模型

保姆级教程&#xff1a;在Win10上用Docker Desktop搞定Dify&#xff0c;再接入本地DeepSeek模型 如果你是一位Windows 10用户&#xff0c;同时对AI应用开发充满兴趣&#xff0c;那么这篇教程就是为你量身定制的。我们将一步步带你完成Dify平台的部署&#xff0c;并将其与本地运…...

嵌入式软件开发规范与最佳实践指南

嵌入式软件开发最佳实践指南1. 项目概述1.1 嵌入式开发核心挑战现代嵌入式系统开发面临代码复杂度增加、团队协作需求提升以及产品迭代周期缩短等多重挑战。高效的开发流程和规范的编码实践成为保证项目成功的关键因素。1.2 开发环境配置建议推荐采用以下硬件配置方案&#xff…...