当前位置: 首页 > news >正文

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

文章目录

  • 1 读取本地视频
    • 1.1 绝对路径 6种方式
    • 1.2 相对路径 4种方式
    • 1.3 读取本地视频
  • 2 视频基本信息
  • 3 调用摄像头 并将视频保存在指定位置

P14 3-6

1 读取本地视频

现在要读取本地视频“video.mp4”,

视频文件“video.mp4”和playVideo.py脚本文件,都在同一个目录E:\\Test_py\\opencv_python\\基本操作\\下面。

在这里插入图片描述

1.1 绝对路径 6种方式

#cap=cv2.VideoCapture("E:\\Test_py\\opencv_python\\基本操作\\video.mp4")
#cap=cv2.VideoCapture('E:\\Test_py\\opencv_python\\基本操作\\video.mp4')#cap=cv2.VideoCapture("E://Test_py//opencv_python//基本操作//video.mp4")
#cap=cv2.VideoCapture('E://Test_py//opencv_python//基本操作//video.mp4')#cap=cv2.VideoCapture("E:/Test_py/opencv_python/基本操作/video.mp4")
cap=cv2.VideoCapture('E:/Test_py/opencv_python/基本操作/video.mp4')

1.2 相对路径 4种方式

#cap=cv2.VideoCapture('video.mp4')
#cap=cv2.VideoCapture('./video.mp4')
#cap=cv2.VideoCapture('.//video.mp4')
cap=cv2.VideoCapture('.\\video.mp4')

1.3 读取本地视频

import cv2
from cv2 import WINDOW_NORMAL
import numpy as np#cv2.namedWindow('video',WINDOW_NORMAL)#cap=cv2.VideoCapture('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 in (113, 81): breakcv2.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')):breakelse:break#释放VideoCapture
cap.release()#释放VideoWriter
vw.release()#vw.release()
cv2.destroyAllWindows()

在这里插入图片描述

http://www.lryc.cn/news/623382.html

相关文章:

  • LeetCode 刷题【43. 字符串相乘】
  • 安卓11 12系统修改定制化_____修改运营商版本安装特定应用时的默认规则
  • 美国服务器环境下Windows容器工作负载基于指标的自动扩缩
  • 基于 LoRA的广义知识蒸馏(GKD)训练
  • 【总结型】c语言中的位运算
  • Java -- 泛型-自定义泛型
  • 在职老D渗透日记day18:sqli-labs靶场通关(第26关)get报错注入 过滤or和and基础上又过滤了空格和注释符 ‘闭合 手动注入
  • Qt 动态属性(Dynamic Property)详解
  • 牛 CDR3 单抗:抗病毒领域的 “纳米级精准导弹”
  • 系统思考—啤酒游戏经营决策沙盘认证
  • 第二十五天:构造函数/析构函数/拷贝构造
  • SpringBoot 整合 Langchain4j:系统提示词与用户提示词实战详解
  • 小白学习《PCI Express体系结构导读》——第Ⅰ篇第1章PCI总线的基本知识
  • 《A Practical Guide to Building Agents》文档学习
  • Nginx蜘蛛请求智能分流:精准识别爬虫并转发SEO渲染服务
  • 23. CommonJS 和 ES6 Module 区别
  • 第6问 数据分析领域主要的岗位有哪些?
  • autofit.js: 自动调整HTML元素大小的JavaScript库
  • Java设计模式详细解读
  • 安卓四大组件基础题
  • AI搜索:大模型商业落地的“第一束光”,照见了什么?
  • 【数据结构】深入理解单链表与通讯录项目实现
  • aws(学习笔记第五十一课) ECS集中练习(3)
  • MySQL锁机制:悲观锁VS乐观锁详解
  • 初识c语言————宏定义和调用
  • C语言零基础第18讲:自定义类型—结构体
  • 新手向:GitCode疑难问题诊疗
  • C语言:文件操作详解
  • 从 MySQL 5.7 迁移到 8.0:别让 SQL 文件 “坑” 了你
  • 双指针和codetop复习