1.1 导入本地视频
1.2 以400*300的窗口播放
import cv2
# 加载视频
my_video=cv2.VideoCapture(r"./resource/video1.MP4")
# 设置可以通过鼠标拖动窗口大小
cv2.namedWindow('My Video',cv2.WINDOW_NORMAL)
# 设置窗口的初始大小
cv2.resizeWindow('My Video',400,300)
# 设置窗口的初始位置
cv2.moveWindow('My Video',0,0)
# 循环读取视频帧
while True:
ret,my_frame=my_video.read()
if ret==True:
cv2.imshow('My Video',my_frame)
key=cv2.waitKey(100)
# 用户按esc退出
if key==27:
break
my_video.release()
cv2.destroyAllWindows()
2.1 导入并播放视频
2.2 修改视频尺寸并保存
import cv2
# 加载视频
my_video=cv2.VideoCapture(r"./resource/video1.MP4")
# 设置可以通过鼠标拖动窗口大小
cv2.namedWindow('My Video',cv2.WINDOW_NORMAL)
# 设置窗口的初始大小
cv2.resizeWindow('My Video',400,300)
# 设置窗口的初始位置
cv2.moveWindow('My Video',0,0)
# 保存视频参数实例化
fps = my_video.get(cv2.CAP_PROP_FPS)
size = (int(my_video.get(cv2.CAP_PROP_FRAME_WIDTH)),
int(my_video.get(cv2.CAP_PROP_FRAME_HEIGHT)))
save_fourcc=cv2.VideoWriter_fourcc(*'mp4v')
my_video_writer=cv2.VideoWriter('./result/outVideo1.mp4',save_fourcc,fps,size)
# 循环读取视频帧
while True:
ret,my_frame=my_video.read()
if ret==True:
cv2.imshow('My Video',my_frame)
my_video_writer.write(my_frame)
key=cv2.waitKey(1)
# 用户按esc退出
if key==27:
break
my_video.release()
my_video_writer.release()
cv2.destroyAllWindows()
3.1 调用摄像头并显示画面
import cv2
# 实例化摄像头
my_camera = cv2.VideoCapture(0)
while my_camera.isOpened():
# 获取摄像头的图像
ret, my_frame = my_camera.read()
# 显示摄像头图像
if ret==True:
cv2.imshow("camera", my_frame)
key = cv2.waitKey(1)
if key == 27:
break
my_camera.release()
cv2.destroyAllWindows()
4.1 导入多个摄像头
import cv2
# 如果有多个摄像头,不能用read,需要用grab和retrieve
cameraCapture0=cv2.VideoCapture(0)
cameraCapture1=cv2.VideoCapture(1)
while True:
success0=cameraCapture0.grab()
success1=cameraCapture1.grab()
if success0: #and success1:
frame0=cameraCapture0.retrieve()
frame1=cameraCapture1.retrieve()
cv2.imshow("camera0", frame0[1])
cv2.imshow("camera1", frame1[1])
key = cv2.waitKey(1)
if key == 27:
break
cameraCapture0.release()
cameraCapture1.release()
cv2.destroyAllWindows()
5.1 打开摄像头
5.2 快捷键保存截图
import cv2
# 实例化摄像头
cap = cv2.VideoCapture(0)
while cap.isOpened():
# 获取摄像头的图像
ret, frame = cap.read()
# 显示摄像头图像
if ret==True:
cv2.imshow("camera", frame)
key = cv2.waitKey(1)
if key==32: # space
cv2.imwrite('./result/capimage.jpg',frame)
if key == 27:
break
cap.release()
cv2.destroyAllWindows()
5.2 打开摄像头
5.3 保存摄像头内容为视频
import cv2
# 实例化摄像头
cap = cv2.VideoCapture(0)
write_flag=False
while cap.isOpened():
# 获取摄像头的图像
ret, frame = cap.read()
# 显示摄像头图像
if ret==True:
cv2.imshow("camera", frame)
key = cv2.waitKey(1)
if key==32: # space
# 实例化保存
save_fourcc=cv2.VideoWriter_fourcc(*'mp4v')
vw=cv2.VideoWriter('./result/outVideo2.mp4',save_fourcc,20,(640,480))
write_flag=True
if write_flag:
vw.write(frame)
if key==9: # tab
vw.release()
write_flag=False
if key == 27:
break
cap.release()
cv2.destroyAllWindows()