Python+OpenCV调用摄像头接口打造家庭安防系统

来自CloudWiki
跳转至: 导航搜索

安装包

pip3 install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple

拍照版

from os import mkdir
from os.path import isdir
import datetime
from time import sleep
import cv2


while True:
    #参数0表示笔记本自带摄像头
    cap = cv2.VideoCapture(0)
    #获取当前日期时间
    now = str(datetime.datetime.now())[:19].replace(':','_')
    if not isdir(now[:10]):
        mkdir(now[:10])
    #捕捉当前图像,ret=True 表示成功,False表示失败
    ret,frame = cap.read()
    if ret:
        #保存图像,以当前日期时间为文件名
        fn = now[:10]+'\\'+now+'.jpg'
        cv2.imwrite(fn,frame)
    #每5秒钟捕捉一次图像
    sleep(5)
    cap.release()

录像版

from os import mkdir
from os.path import isdir
import datetime
from time import sleep
from threading import Thread
from shutil import copyfile
import cv2

#参数0表示笔记本自带摄像头
cap = cv2.VideoCapture(0)
#获取当前日期时间
now = str(datetime.datetime.now())[:19].replace(':','_')
dirName = now[:10]
tempAviFile = dirName + '\\' +now +'.avi'
if not isdir(dirName):
    mkdir(dirName)

#创建视频文件
aviFile = cv2.VideoWriter(tempAviFile,
                          cv2.VideoWriter_fourcc('M','J','P','G'),
                          25,(640,480))#帧速和视频宽度、高度

def write():
    while cap.isOpened():
        #捕捉当前图像,ret=True表示成功,False表示失败
        ret,frame = cap.read()
        if ret:
            #写入视频文件
            aviFile.write(frame)
    aviFile.release()
Thread(target=write).start()

input('按任意健结束')
cap.release()