1. 从相机中读取视频
import numpy as np
import cv2 as cv
# 创建VideoCapture对象来捕获视频,参数用来指定哪个摄像头的数字
cap = cv.VideoCapture(0)
# 判断摄像头是否打开
if not cap.isOpened():
print("无法打开摄像头")
exit()
while True:
# 逐帧获取,cap.read()返回布尔值(True/False),如果正确读取了帧,它将为True
ret,frame = cap.read()
# 如果正确读取帧,ret为True
if not ret:
print("没有接收到")
break
# cv.cvtColor是个颜色空间转换函数,可以实现rgb颜色向HSV,HSI等颜色空间的转换,也可以转换为灰度图像(CV_BGR2GRAY)
gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)
# 显示结果帧e
cv.imshow('frame', gray)
# 按 “q”键可以终止程序运行
if cv.waitKey(1) == ord('q'):
break
# 完成所有操作后,释放捕获器
cap.release()
cv.destroyAllWindows()
2. 从文件中读取视频
import numpy as np
import cv2 as cv
# 加载文件路径的视频
cap = cv.VideoCapture('/home/kang/Desktop/openvino_demo/face_detection_demo.mp4')
# # 判断视频文件是否存在
while cap.isOpened():
ret, frame = cap.read()
# 如果正确读取帧,ret为True
if not ret:
print("无法读取视频")
break
# 转换为灰度图像
gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)
cv.imshow('frame', gray)
if cv.waitKey(1) == ord('q'):
break
cap.release()
cv.destroyAllWindows()
3. 保存视频
import numpy as np
import cv2 as cv
cap = cv.VideoCapture(0)
# 定义编解码器并创建VideoWriter对象
fourcc = cv.VideoWriter_fourcc(*'XVID')
# 视频保存的路径
out = cv.VideoWriter('/home/kang/Desktop/openvino_demo/face_detection_demo.mp4', fourcc, 20.0, (640, 480))
while cap.isOpened():
ret, frame = cap.read()
if not ret:
print("无法读取视频")
break
# 垂直翻转原视频
frame = cv.flip(frame, 0)
# 写翻转的框架
out.write(frame)
cv.imshow('frame', frame)
# 按 “q”键可以终止程序运行
if cv.waitKey(1) == ord('q'):
break
# 完成工作后释放所有内容
cap.release()
out.release()
cv.destroyAllWindows()
转载请注明:康瑶明的博客