【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()
相关推荐
聪明蛋子哟7 小时前
Stagehand v3多语言SDK:Python/Go/Rust/Java下的浏览器自动化统一方案
python·golang·rust
AI的探索之旅8 小时前
97 个 OpenCV 实例(七):SIMD 向量化,给像素处理装上涡轮增压
人工智能·opencv·计算机视觉
今天AI了吗8 小时前
Python 基础语法(一):常量、变量、输入输出与运算符
开发语言·数据库·人工智能·python·sql·深度学习·机器学习
卷无止境8 小时前
Windows 上丝滑开发 Python,并稳定构建 Docker 镜像
后端·python·docker
TELL5218 小时前
selenium webdriver 第二次初始化的异常
开发语言·python
Csvn9 小时前
🐍 Day 4: Python 控制流 — 条件、循环与推导式的艺术
后端·python
大鹏说大话11 小时前
从爬虫到决策引擎:大数据下自媒体如何用Python挖掘用户痛点
开发语言·爬虫·python
Niuguangshuo11 小时前
silero-vad:超轻量级开源 VAD 实践指南
开发语言·python
2501_9446761612 小时前
揭秘!WORDTIP公司靠不靠谱?小白必看
大数据·人工智能·python
牧羊人.33312 小时前
计算机视觉基础 第 10 章|图像直方图与直方图均衡化
图像处理·opencv·计算机视觉