【python与数据分析】实验七 用扩展库opencv-python调用摄像头接口打造安防系统

目录

一、实验目的

二、实验内容

三、实验步骤

四、[opencv-python的安装]

五、参考代码

【1】

【2】

【3】

【4】结果


一、实验目的

1.学会安装扩展库opencv-python

2.学会使用opencv-python来打造安防等系统

3.理解模块cv2的用法及功能

二、实验内容

1.选取本周课堂讲或视频讲的部分代码(见课件或视频)在IDLE Jupyter Notebook中敲一遍。

2.根据参考代码,领会CV2的用法;

三、实验步骤

1.需敲入的代码见ppt课件或视频;

2.先敲入参考代码运行,在理解代码原理基础上,改编程序(都在自已笔记本上练习下面代码,因为机房台式机没摄像头!)。

四、[opencv-python的安装]

1.首先用下图方法,将pip更新至19.1.1或最新版

【python与数据分析】实验七 用扩展库opencv-python调用摄像头接口打造安防系统_第1张图片

【python与数据分析】实验七 用扩展库opencv-python调用摄像头接口打造安防系统_第2张图片

2、其次,用下面方法,安装扩展库open-python

【python与数据分析】实验七 用扩展库opencv-python调用摄像头接口打造安防系统_第3张图片

【python与数据分析】实验七 用扩展库opencv-python调用摄像头接口打造安防系统_第4张图片

3、如果提示numpy库过期,也需更新该库。

五、参考代码

【1】

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

#参数0、1表示笔记本自带摄像头,2表示外接摄像头
cap=cv2.VideoCapture(0)
while True:
    #用切片获取当前日期时间now,更换连接符。例如:‘2019-12-07 11.54.50’
    now=str(datetime.datetime.now())[:19].replace(":",".")
    #在当前目录下创建子目录(如果不存在,以当前年月日now[:10]为目录名)
    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)
    #每五秒钟捕捉一次图像
    sleep(5)

【2】

#python+OpenCV调用摄像头接口打造家庭安防系统(拍照完关闭)
from os import mkdir
from os.path import isdir 
import datetime
from time import sleep
import cv2

#参数0、1表示笔记本自带摄像头,2表示外接摄像头
cap=cv2.VideoCapture(0)
while True:
    #用切片获取当前日期时间now,更换连接符。例如:‘2019-12-07 11.54.50’
    now=str(datetime.datetime.now())[:19].replace(":","_")
    #在当前目录下创建子目录(如果不存在,以当前年月日now[:10]为目录名)
    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)
    #每五秒钟捕捉一次图像
    sleep(5)
    cap.release()

【3】

#python+OpenCV调用摄像头接口打造家庭安防系统(录像)
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、1表示笔记本自带摄像头,2表示外接摄像头
cap=cv2.VideoCapture(2)

#用切片获取当前日期时间now,更换连接符。例如:‘2019-12-07 11:54:50’
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,frame=cap.read()
        if ret:
            #写入视频文件
            aviFile.write(frame)
    aviFile.release()
Thread(target=write).start()

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

【4】结果

【python与数据分析】实验七 用扩展库opencv-python调用摄像头接口打造安防系统_第5张图片


 

你可能感兴趣的:(python与数据分析,python,opencv,人工智能)