一:显示即可
参考链接:简书
代码:
import cv2
import numpy as np
# 调用usb摄像头
camera_id = 0
cap = cv2.VideoCapture(camera_id)
# 显示
while True:
ret, frame = cap.read()
if ret == True:
new_video = cv2.flip(frame, 0)
#视频旋转cv2.flip(frame, 1)第一个参数表示要旋转的视频
# 第二个参数表示旋转的方向,0表示绕x轴旋转,大于0的数表示绕y轴旋转,小于0的负数表示绕x和y轴旋转。
cv2.imshow("window_before", frame)
cv2.imshow("window_after", new_video)
# 如果输入 esc 退出程序
boardkey = cv2.waitKey(1) & 0xFF
if boardkey == 27:
break
# 关闭
cap.release()
cv2.destroyAllWindows()
输出结果:
before:
after:参数设置为0,绕x轴旋转
after:参数设置为180,绕y轴旋转
after:参数设置为-180,绕x轴和y轴旋转
二、保存视频
参考链接:保存视频
代码:
import cv2
import os #用于处理文件
import time
import numpy as np
# 调用usb摄像头
camera_id = 0
cap = cv2.VideoCapture(camera_id)
width = cap.get(cv2.CAP_PROP_FRAME_WIDTH) # 获取摄像头width
height = cap.get(cv2.CAP_PROP_FRAME_HEIGHT) # 获取摄像头height
size = (int(width), int(height))
fourcc = cv2.VideoWriter_fourcc(*'DIVX') # 定义编解码器并创建VideoWriter对象
# 参数还可以 DIVX,XVID,MJPG,X264,WMV1,WMV2。
path = os.getcwd() # 获取当前路径
vpath = path + '\Video' # 视频目录
if not (os.path.exists(vpath)):
# print('n') #没有就建一个
os.makedirs(vpath)
# 创建VideoWriter,用于写视频
out_before = cv2.VideoWriter(vpath + '\\' + time.strftime(r"%Y-%m-%d_%H-%M-%S", time.localtime()) + '_before.mp4', fourcc, 24.0, size)
out_after = cv2.VideoWriter(vpath + '\\' + time.strftime(r"%Y-%m-%d_%H-%M-%S", time.localtime()) + '_after.mp4', fourcc, 24.0, size)
# 显示
while True:
ret, frame = cap.read()
if ret == True:
new_video = cv2.flip(frame, -180)
#视频旋转cv2.flip(frame, 1)第一个参数表示要旋转的视频
# 第二个参数表示旋转的方向,0表示绕x轴旋转,大于0的数表示绕y轴旋转,小于0的负数表示绕x和y轴旋转。
out_before.write(frame)
out_after.write(new_video)
cv2.imshow("window_before", frame)
cv2.imshow("window_after", new_video)
# 如果输入 esc 退出程序
boardkey = cv2.waitKey(1) & 0xFF
if boardkey == 27:
break
# 关闭
cap.release()
out_before.release()
out_after.release()
cv2.destroyAllWindows()