用python-opencv打开摄像头,并且在一定时间在另一窗口显示截图

不说那么多了,直接上代码;


import numpy as np
import cv2
import time
from threading import Timer
from PIL import Image, ImageDraw, ImageFont

#打开本地摄像头,括号内表示设备编号,第一个设备为0,如果电脑有两个摄像头,第二个摄像头就是1
cap=cv2.VideoCapture(0)
#定义全局变量,用于进行if判断的条件
global timer_int
timer_int = 1
#定时器的时间,单位为秒
timer_interval = 1

#定时函数
def timerDelay():
    global timer_int
    timer_int = 1
    print('定时器运行')
    global t
    t = Timer(timer_interval, timerDelay)
    t.start()


t = Timer(timer_interval, timerDelay)
t.start()

while(True):
    #从摄像头中读取画面,while表示循环读取画面,也就是一张一张图片形成了一个视频
    #第一个参数ret的值为True或False,代表有没有读到图片。第二个参数frame,是当前截取一帧的图片
    ret,image=cap.read()

    #设置每一张图片的颜色
    img_color=cv2.cvtColor(image,0)

    #显示窗口
    cv2.imshow('window',img_color)

    if timer_int == 1:
        #某一时刻的图片
        img_color1 = img_color
        print('if里的条件值', timer_int)
        #跳出if,等待下一个时刻
        timer_int =  0

    #显示新窗口,用于显示某一时刻的截图
    cv2.imshow('screenshot', img_color1)
    print('if外的条件值', timer_int)

    #如果按下键盘上的Q就关闭窗口 ord()返回值是对应的十进制整数
    if cv2.waitKey(1)&0xFF==ord('q'):
        break

#释放资源
cap.release()

#关闭窗口
cv2.destroyAllWindows()

猜你喜欢

转载自blog.csdn.net/qq_36314737/article/details/87970812