目录
1.本地视频读取
import cv2
from cv2 import VideoCapture
if __name__ == '__main__':
# 读取视频
# 参数(视频文件地址)
cap: VideoCapture = cv2.VideoCapture('1.mp4')
while True:
# 读取帧
# 返回值:(是否读取成功,像素矩阵)
ret, frame = cap.read()
if ret:
# 获取全像素矩阵的灰度模式
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# 显示图像
cv2.imshow('frame', gray)
# 当前图像显示的持续时间(毫秒);并监听键盘输入。0代表一直显示和监听。(此方法必须调用,否则图像不会显示)
key = cv2.waitKey(1)
# 监听键盘输入q,退出
if key & 0xFF == ord('q'):
break
else:
break
# 释放资源
cap.release()
# 销毁窗口
cv2.destroyAllWindows()
2.保存视频
import cv2
from cv2 import VideoCapture
if __name__ == '__main__':
cap = cv2.VideoCapture('1.mp4')
width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)) # 获取视频的宽度
height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)) # 获取视频的高度
fps = cap.get(cv2.CAP_PROP_FPS) # 获取视频的帧率
fourcc = int(cap.get(cv2.CAP_PROP_FOURCC)) # 视频的编码
# 保存视频
# 参数:(保存路径,编码器,帧率,画面尺寸,是否彩色)
out = cv2.VideoWriter("output.mp4", fourcc, fps, (width, height), True)
while cap.isOpened():
# 读取视频帧
ret, frame = cap.read()
if ret:
# 显示视频帧图片
cv2.imshow('frame', frame)
# 保存视频帧到视频容器
out.write(frame)
# 每帧的显示时间,并监听键盘事件
key = cv2.waitKey(1)
# 监听退出Q
if key & 0xFF == ord('q'):
break
else:
break
# Release everything if job is finished
cap.release()
out.release()
cv2.destroyAllWindows()