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

文章目录

  • [1 读取本地视频](#1 读取本地视频)
    • [1.1 绝对路径 4种方式](#1.1 绝对路径 4种方式)
    • [1.2 相对路径 4种方式](#1.2 相对路径 4种方式)
    • [1.3 读取本地视频](#1.3 读取本地视频)
  • [2 视频基本信息](#2 视频基本信息)
  • [3 调用摄像头](#3 调用摄像头)

P14 3-6

1 读取本地视频

1.1 绝对路径 4种方式

python 复制代码
#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 读取本地视频

python 复制代码
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 视频基本信息

python 复制代码
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 调用摄像头

python 复制代码
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()
相关推荐
Robot侠5 小时前
极简LLM入门指南4
大数据·python·llm·prompt·提示工程
等....6 小时前
Miniconda使用
开发语言·python
Java&Develop6 小时前
Aes加密 GCM java
java·开发语言·python
爱笑的眼睛118 小时前
超越MSE与交叉熵:深度解析损失函数的动态本质与高阶设计
java·人工智能·python·ai
Rose sait9 小时前
【环境配置】Linux配置虚拟环境pytorch
linux·人工智能·python
过期动态9 小时前
JDBC高级篇:优化、封装与事务全流程指南
android·java·开发语言·数据库·python·mysql
一世琉璃白_Y10 小时前
pg配置国内数据源安装
linux·python·postgresql·centos
liwulin050610 小时前
【PYTHON】COCO数据集中的物品ID
开发语言·python
小鸡吃米…10 小时前
Python - XML 处理
xml·开发语言·python·开源
我赵帅的飞起10 小时前
python国密SM4加解密
python·sm4加解密·国密sm4加解密