0. 目的

实现一个Python程序,用OpenCV调用摄像头显示图片,且每过nprint图片信息。

0.1 使用OpenCV调用摄像头

用OpenCV调用摄像头的程序非常简单,如下:

import cv2# 定义摄像头对象
cap = cv2.VideoCapture(0)while True:# 获取当前图片ret, frame = cap.read()# 显示图片cv2.imshow("Result", frame)# 按下q结束if cv2.waitKey(1) & 0xFF == ord('q'):break# 释放资源
cap.release()
cv2.destroyAllWindows()

0.2 [错误用法] 直接使用time.sleep函数

如何每隔n秒打印信息,其实最简单的方法就是time.sleep,我们可以看一下效果:

import cv2
import time
import numpy as np# 定义摄像头对象
cap = cv2.VideoCapture(0)while True:# 获取当前图片ret, frame = cap.read()# 显示图片cv2.imshow("Result", frame)# 错误用法:使用time.sleep进行时间间隔获取time.sleep(3)print(f"图片的shape为: {np.shape(frame)}")# 按下q结束if cv2.waitKey(1) & 0xFF == ord('q'):break# 释放资源
cap.release()
cv2.destroyAllWindows()

打印的信息的确是每隔3s进行的,但是你会发现摄像头的窗口卡死了。因为time.sleep函数会冻结该线程,所以摄像头窗口也被冻结了!
所以直接使用time.sleep不符合实际任务的需求。

1. 多线程的使用

为了解决上面的问题,我们需要使用多线程技术,即实现程序技术的同时又不影响其他程序的运行。

1.1 多线程的语法

import threading  # 导入多线程的包def 线程方法(线程参数):#具体的操作---------- main ----------
# 创建线程对象
th_1 = threading.Thread(target=线程方法名, daemon=True/False, args=(目标线程的参数1, ))
# 开启线程
th_1.start()# 主线程(main)的方法
...

1.2 [解决方案] 使用多线程的计时

import time
import threading
import numpy as np
import cv2# 定义计数子线程
def timer(interval):while True:  # 无限计时time.sleep(interval)print(f"{interval}s has pass, and the shape of camera image is: \n{np.shape(img_temp)}")"""---------------- 主线程(main) -------------------"""
if __name__ == '__main__':img_temp = None  # 占位用的,目的是提升frame的作用域interval = 2  # 时间间隔(s)# 开启一个子线程"""Note:1. daemon=1. True: 主线程结束,子线程也结束2. False:主线程结束,子线程不结束(主线程需等待子线程结束后再结束)2. args=(interval, )中的 逗号 不能省略(因为传入的必须是一个tuple)"""# 1. 定义线程th1 = threading.Thread(target=timer, daemon=True, args=(interval,))# 2. 开启线程th1.start()# 创建摄像头对象cap = cv2.VideoCapture(0)while True:# 读取图片ret, frame = cap.read()# 显示图片cv2.imshow("Result", frame)# 赋值变量img_temp = frame  # 将frame赋给img_temp# 定义关闭if cv2.waitKey(1) & 0xFF == ord('q'):break# 其他的程序# 释放资源cap.release()cv2.destroyAllWindows()

这样就计时就不会影响摄像头窗口图像的获取了!

Python每过3s打印摄像头图片相关推荐

  1. python调用打印机打印图片_pyqt5 调用打印机 打印远程图片

    求助.... pyqt5 实现 打印机 打印png图片 可以预览 def localPrinter(): printer = QPrinter(QPrinter.HighResolution) # / ...

  2. Python + opencv对拍照得到的图片进行背景去除的实现方法

    这篇文章主要介绍了Python + opencv对拍照得到的图片进行背景去除的实现方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下 有时候我们 ...

  3. OpenMV(三)--实时获取摄像头图片

    实时获取摄像头图片 引 前言 1. 构造函数 2. 源码分析 3. 脱机运行程序 引 OpenMV(一)–基础介绍与硬件架构 OpenMV(二)–IDE安装与固件下载 前言 利用OpenMV进行机器视 ...

  4. Python+爬虫技术获取斗鱼直播图片(整理)

    核心内容: 1.爬虫的基本原理 2.利用Python爬取数据的方法(使用urllib爬取数据) 3.从斗鱼直播平台爬取图片 最近因为工作的原因,要利用爬虫的相关技术,获取html网页相关的数据,特意总 ...

  5. Python利用Face++实现身份证件图片识别

    引言 放假在家闲来无事,看到一个接口,于是想试着用这几天学的Python玩玩,就用Python的urllib2对接了身份证图片识别接口,这里面还有很多关于图片识别类的接口(虽然有些要钱),不过里面文字 ...

  6. Python+OpenCV+pyQt5录制双目摄像头视频

    #Python+OpenCV+pyQt5录制双目摄像头视频 ##起因 说起来录制视频,我们可能有很多的软件,但是比较坑的是,好像很少的软件支持能够同时录制两个摄像头的视频,于是我们用python自己写 ...

  7. python 调用 Intel realsense D415i摄像头

    1.搭建python3开发环境(wind10 ) 安装Intel.RealSense.SDK.exe后,在安装目录-/Intel RealSense SDK 2.0/bin/x64目录下有两个.pyd ...

  8. Python用img2pdf库批量转换图片为PDF文件

    Python用img2pdf库批量转换图片为PDF文件 import os #导入os库 import time #导入时间库生成时间戳 import img2pdf #导入img2pdf库, 安装命 ...

  9. Python之实现自动开启摄像头拍照,后面发送邮寄给个人

    Python之实现自动开启摄像头拍照,后面发送邮寄给个人 文章目录 Python之实现自动开启摄像头拍照,后面发送邮寄给个人 第一步,我们要开启电脑的摄像头实现拍照: 第二步,我们要发送邮件,就必须创 ...

最新文章

  1. Linux tomcat日志分割按天分割
  2. DateTime格式大全
  3. 数字图像处理经典论文汇总
  4. 扭矩大好还是马力大好_发动机的马力重要还是扭矩重要?加速到底看哪个?
  5. 【Python-pywt】 小波变化库—Pywavelets 学习笔记
  6. 剪切粘贴时总是上次的内容_关于复制粘贴,还有一个鲜为人知的技巧!
  7. 软考网络工程师考试答疑
  8. 金蝶K3即时库存成本计算逻辑是什么?
  9. 【Unity】【C#】《U3d人工智能编程精粹》学习心得--------操纵行为--路径跟随
  10. 农夫山泉CIO分享SAP HANA数据库实施经验
  11. 关于textarea打印问题
  12. matlab画sinc函数及其有意思的性质
  13. AUTO_ACKNOWLEDGE和CLIENT_ACKNOWLEDGE
  14. 计算机上如何转换搜狗,无法切换到搜狗输入法怎么办
  15. Amazon 邮箱大全
  16. CVer最想知道的,简单分析下《2020年度中国计算机视觉人才调研报告》
  17. cad添加自己线性_如何在CAD图纸中进行线性标注
  18. 图解项目绩效评价的13个常用方法大全
  19. 使用OpenCV滑动条写成的简单调色器,实时输出RGB值
  20. ----web前端 实验二

热门文章

  1. 你,坐拥一切!而我拼了命努力,才换来一个平凡的人生。
  2. 云桌面场景的典型组网案例
  3. 业务架构设计:价值流与业务能力
  4. 第一个.NetCore 2.0程序
  5. 股票新手入门-股票基本名词概念
  6. 英语学习——Kaizen
  7. 画图工具,告别visio
  8. 彻底弄懂LSH之simHash算法
  9. 4月书讯!15本新书闭眼入!
  10. 计算机二级python 知识点篇(文件和数据格式化)