有几种方法,
opencv
import numpy as np
import cv2 as cv
cap = cv.VideoCapture(0)
#参数为0即为本机摄像头,1为其他摄像头,还可以调入视频路径
ret,frame = cap.read()#获取帧成功 ret=Ture
while ret:
ret,frame = cap.read()
cv.imshow('camera',frame)
#打开一个叫camera的窗口,展示frame
if cv.waitKey(25) & 0xff ==ord("q"):
#等待25ms 找不到下一帧或者用户按下q退出
break
cap.release()
cv.destroyAllWindows()
还可以调用并保存视频
import cv2 as cv
cap = cv.VideoCapture(0)
fourcc = cv.VideoWriter_fourcc(*'XVID')
#编码格式,这个编码格式是avi文件
out = cv.VideoWriter('output.avi',fourcc,20.0,(640,480))
#视频文件输出,参数:文件名称,编码格式,帧数,尺寸
while(cap.isOpened()):
ret,frame = cap.read()
if ret==True:
out.write(frame)
cv.imshow('camera',frame)
if cv.waitKey(1)& 0xff ==ord("q"):
break
else:
break
cap.release()
cv.destroyAllWindows()
调用ip摄像头并保存视频
#下载软件,ip摄像头
import cv2 as cv
flag=0#定义一个变量方便保存文件
fourcc = cv.VideoWriter_fourcc(*'XVID')
#编码格式,这个编码格式是avi文件
out = cv.VideoWriter('output.avi',fourcc,20.0,(640,480))
#视频文件输出,参数:文件名称,编码格式,帧数,尺寸
ip_video = "https://admin:admin@192.168.0.104:8081/"
#局域网ip
cap = cv.VideoCapture(ip_video)
is_open=cap.isOpened()
while is_open:
r,f =cap.read()
cv.imshow('carmera',f)
if cv.waitKey(10) & 0xff ==ord('s') and flag!=1:
flag=1
print("开始保存")
if flag:
out.write(f)
if cv.waitKey(10) & 0xff ==ord('b'):
flag =0
print("停止保存")
if cv.waitKey(15) & ord('q'):
break
cap.release()
cv.destroyAllWindows()
人脸识别
识别人脸,导入一个训练好的xml尝试一下
识别出来的样子: