opencv+python获取摄像头视频流并翻转保存文件

一:显示即可
参考链接:简书

代码:

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:
opencv+python获取摄像头视频流并翻转保存文件_第1张图片
after:参数设置为0,绕x轴旋转
opencv+python获取摄像头视频流并翻转保存文件_第2张图片
after:参数设置为180,绕y轴旋转
opencv+python获取摄像头视频流并翻转保存文件_第3张图片
after:参数设置为-180,绕x轴和y轴旋转
opencv+python获取摄像头视频流并翻转保存文件_第4张图片
二、保存视频
参考链接:保存视频

代码:

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()

输出结果:
在这里插入图片描述
生成两段视频,after是before的翻转视频。

你可能感兴趣的:(python,opencv,python,计算机视觉)