opencv(2): 视频采集和录制

视频采集

相关API

  • VideoCapture()
  • cap.read(): 返回两个值,第一个参数,如果读到frame,返回 True. 第二个参数为相应的图像帧。
  • cap.release()

VideoCapture

cv2.VideoCapture(0)
0 表示自动检测,如果在笔记本上运行,通常为笔记本的摄像头。其他的参数如下图。
opencv(2): 视频采集和录制_第1张图片

视频录制

  • VideoWriter
  • write
  • release

VideoWriter

cv2.VideoWriter()

VideoWriter(filename, fourcc, fps, frameSize[, isColor])
第一个参数是要保存的文件的路径
fourcc 指定编码器
opencv(2): 视频采集和录制_第2张图片

fps 要保存的视频的帧率
frameSize 要保存的文件的画面尺寸, 分辨率
isColor 指示是黑白画面还是彩色的画面

import cv2

#创建VideoWriter为写多媒体文件
fourcc = cv2.VideoWriter_fourcc(*'MJPG')
vw = cv2.VideoWriter('./out.mp4', fourcc, 25, (1280, 720))

#创建窗口
cv2.namedWindow('video', cv2.WINDOW_NORMAL)
cv2.resizeWindow('video', 640, 360)

#获取视频设备/从视频文件中读取视频帧
cap = cv2.VideoCapture(0)

#判断摄像头是否为打开关态
while cap.isOpened():
    #从摄像头读视频帧
    ret, frame = cap.read()

    if ret == True:
        #将视频帧在窗口中显示
        cv2.imshow('video', frame)
        #重新将窗口设备为指定大小
        cv2.resizeWindow('video', 640, 360)

        #写数据到多媒体文件
        vw.write(frame)

        #等待键盘事件,如果为q,退出
        key = cv2.waitKey(1)
        if(key & 0xFF == ord('q')):
            break
    else:
        break

#释放VideoCapture
cap.release()

#释放VideoWriter
vw.release()

#vw.release()
cv2.destroyAllWindows()

补充:待实践
WSL2通过OpenCV调用并展示本机摄像头的RTSP视频流

你可能感兴趣的:(opencv,opencv)