目录
一、实验目的
二、实验内容
三、实验步骤
四、[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或最新版
2、其次,用下面方法,安装扩展库open-python
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】结果
?
|