【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()
相关推荐
张张123y3 小时前
后端第十六课:Multi-Agent 多智能体(让多个 Agent 分工协作)
大数据·数据库·人工智能·python·deepseek·dsh·agent 框架
全栈练习生3 小时前
大规模智能体仿真
python·ai
code2cat3 小时前
【随笔】vLLM前缀缓存:相同的开头怎样少算一次
人工智能·python·缓存·vllm
陈飞EXCEL3 小时前
北京杰飞 IT 旗下妙码生花少儿Python编程上线两大学习系统
开发语言·python·学习
Anesthesia丶4 小时前
基于 Qwen3-TTS 的多语言智能配音 Web 应用(Qwen3 TTS Studio)
python·ai·qwen-tts·agci
the局外人4 小时前
Python 中使用 SSE 实现大模型流式输出
后端·python·llm
桑年5 小时前
四、Pandas数据处理
人工智能·python·线性代数·pandas·数据可视化·数据处理
第九序言T5 小时前
Python 数据处理进阶(二十四)把脚本变成工具:argparse、logging 与定时任务
python·自动化·pandas
AI的探索之旅6 小时前
OpenCV Day40 —— K-means 聚类与 EM 高斯混合
opencv·kmeans·聚类
shelly聊外贸6 小时前
WhatsApp 聊天记录如何导出为 CSV?使用 Python 进行数据分析
开发语言·python·数据分析