【Python】调用摄像头实现定时拍照监控

文章目录

  • 需求
  • 代码
  • 注意的点
  • 参考内容

面试需要买了一个摄像头。可以写一个简单的python脚本实现一个监控并记录的功能。

需求

  1. 启动程序后。在手动关闭程序前,实现每30s拍一次照。
  2. 将照片保存到本地。文件名为时间戳。
  3. 后续看是否可以升级为检测相机中是否出现人,若未出现则不记录。

代码

import cv2
import datetime
import schedule
import time

def capture():
    print('开始运行')
    cap = cv2.VideoCapture(1, cv2.CAP_DSHOW) # 调用电脑摄像头
    # 获取当前时间
    now_time = datetime.datetime.now()
    timeStr = datetime.datetime.strftime(now_time,'%Y-%m-%d %H%M%S')

    reg, frame = cap.read()     # 摄像头读取,reg为是否成功打开摄像头, 返回true/false。 frame为视频的每一帧图像
    frame = cv2.flip(frame, 1)  # 图片左右调换,因为摄像头图像是镜像的。
    # cv2.imshow('camera', frame) # 生成摄像头窗口
    filename = timeStr + '.png' # filename为图像名字
    
    cv2.imwrite('E:/Work/camera' + '\\' + filename, frame) # 截图 前面为放在桌面的路径 frame为此时的图像
    # print(filename + '保存成功') # 打印保存成功
    cap.release()



schedule.every(0.5).minutes.do(capture)   # 每隔半分钟执行一次
while True:
    schedule.run_pending()
    time.sleep(1)

注意的点

  • capture = cv2.VideoCapture(1) #0为电脑内置摄像头
    如果是买的外接摄像头,参数填0可能调用不了。需要改为1。

参考内容

python调用摄像头的示例代码
http://www.cppcns.com/jiaoben/python/350617.html

你可能感兴趣的:(python)