【P14 3-6 】OpenCV Python——视频加载、摄像头调用、视频基本信息获取(宽、高、帧率、总帧数)

发布于:2025-08-17 ⋅ 阅读:(16) ⋅ 点赞:(0)

P14 3-6

1 读取本地视频

1.1 绝对路径 4种方式

#cap=cv2.VideoCapture('E:\\Python\\opencv-master源码\\opencv-master\\opencv\\轮廓\\video.mp4')
#cap=cv2.VideoCapture("E:\\Python\\opencv-master源码\\opencv-master\\opencv\\轮廓\\video.mp4")
#cap=cv2.VideoCapture('E:/Python/opencv-master源码/opencv-master/opencv/轮廓/video.mp4')
cap=cv2.VideoCapture("E:/Python/opencv-master源码/opencv-master/opencv/轮廓/video.mp4")

1.2 相对路径 4种方式

1.3 读取本地视频

import cv2
from cv2 import WINDOW_NORMAL
import numpy as np

# cv2.namedWindow('video',WINDOW_NORMAL)
cap=cv2.VideoCapture("E:/Python/opencv-master源码/opencv-master/opencv/轮廓/video.mp4")




while True:
     ret,frame=cap.read()
     cv2.imshow('video',frame)

     key=cv2.waitKey(20)

     #当按下q键,退出视频,qASCII值=113,Q=81,还可以写成ord('q')
     #if(key & 0xff ==ord('q')):
     if(key == 113):
        break

cv2.destroyWindow()

在这里插入图片描述

2 视频基本信息


if(cap.read()):
    w=cap.get(CAP_PROP_FRAME_WIDTH)
    h=cap.get(CAP_PROP_FRAME_HEIGHT)
    fps=cap.get(CAP_PROP_FPS)
    count=cap.get(CAP_PROP_FRAME_COUNT)

    print('视频中图像宽度:%d' %(w))
    print('视频中图像高度:%d' %(w))
    print('视频的帧率:%d' %(fps))
    print('视频总帧数:%d' %(count))

在这里插入图片描述

3 调用摄像头

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

在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到