当前位置: 首页 > 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键时从摄像头截图并保存到指定文件夹中。这个功能可以根据需要进行扩展,例如添加更多的键盘控制、保存不同格式的图片等。希望这篇博客对你有所帮助!


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

http://www.lryc.cn/news/396053.html

相关文章:

  • 汇川伺服 (4)FFT、机械特性、闭环、惯量、刚性、抑制振动
  • Unity3D中使用并行的Job完成筛选类任务详解
  • 汽车信息安全--欧盟汽车法规
  • @SpringBootApplication 注解
  • java项目总结4
  • JavaScript中的数组方法总结+详解
  • 环境变量Path
  • 基于jeecgboot-vue3的Flowable流程-集成仿钉钉流程(四)支持json和xml的显示
  • 【k8s安装redis】k8s安装单机版redis实现高性能高可用
  • Scala 数据类型
  • Java Executors类的9种创建线程池的方法及应用场景分析
  • LY/T 3359-2023 耐化学腐蚀高压装饰层积板检测
  • 【linux/shell】如何创建脚本函数库并在其他脚本中调用
  • Instruct-GS2GS:通过用户指令编辑 GS 三维场景
  • disql使用
  • SpringBoot Mybatis-Plus 日志带参数
  • 【WebGIS平台】传统聚落建筑科普数字化建模平台
  • Zookeeper分布式锁原理说明【简单易理解】
  • 去除Win32 Tab Control控件每个选项卡上的深色对话框背景
  • iis部署前后端分离项目(React前端,Node.js后端)
  • 【前端项目笔记】9 数据报表
  • 等保测评推动哈尔滨数字化转型中的安全保障
  • #pragma 指令
  • 【Excel】 批量跳转图片
  • 网站更新改版了
  • 初识大模型
  • Open3D SVD算法实现对应点集配准
  • bWAPP靶场安装
  • SpringBoot + MyBatisPlus 实现多租户分库
  • 【数据挖掘】银行信用卡风险大数据分析与挖掘