【计算机视觉(2)】

基于Python的OpenCV基础入门——视频的处理

  • 视频
    • OpenCV视频处理操作:
      • 创建视频对象
      • 判断视频是否成功初始化
      • 读取视频帧
      • 获取视频特征
      • 设置视频参数
      • 声明编码器
      • 保存视频
      • 释放视频对象
    • 视频处理基本操作的代码实现:

视频

视频是由一系列连续的图像帧组成的。每一帧都是视频中的一张静止图像,它们以非常快的速度连续播放,给人一种连续运动的感觉。视频的帧率指的是每秒钟播放的帧数,常见的帧率有24帧/秒、30帧/秒和60帧/秒等。帧率越高,视频播放越流畅。视频的处理就是通过循环将视频流中的所有的帧进行处理

OpenCV视频处理操作:

创建视频对象

cap = cv2.VideoCapture(value)
参数:
设备索引或者一个视频文件名。摄像头读取则是设备索引,0为默认摄像头;视频文件读取则为filename

判断视频是否成功初始化

ret = cap.isOpened()
返回值:
ret :bool类型,成功则为True,否则为False。

读取视频帧

ret, frame = video.read()
返回值:
ret:bool类型,判断是否读取到帧,成功为True,否则为False。
frame:读取到的帧

获取视频特征

cap.get(propId)
参数:
propId : 0 到 18 之间的整数。每一个数代表视频的一个属性,在这里仅举几个常用的参数:

int属性propld
0视频文件的当前位置(毫秒)CV_CAP_PROP_POS_FRAMES
1下一步要解码/捕获的帧的基于0的索引CV_CAP_PROP_POS_AVI_RATIO
3视频流中帧的宽度CV_CAP_PROP_FRAME_HEIGHT
4视频流中帧的高度CV_CAP_PROP_FPS
5帧率CV_CAP_PROP_FOURCC

设置视频参数

cap.set(propId, value)
参数:
propId : 0 到 18 之间的整数
value:设置的新值

声明编码器

fourcc = cv2.VideoWriter_fourcc(‘M’, ‘P’, ‘4’, ‘V’ ) , FourCC 是用于指定视频解码器的 4 字节代码。

参数说明
‘M’, ‘P’, ‘4’, ‘V’MPEG-4编码类型,文件扩展名为 .mp4
‘X’,‘2’,‘6’,‘4’MPEG-4编码类型,文件扩展名为.mp4
‘P’,‘I’,‘M’,‘I’MPEG-1编码类型,文件扩展名为.avi
‘X’, ‘V’, ‘I’, ‘D’MPEG-4编码类型,文件扩展名为.avi
‘I’, ‘4’, ‘2’, ‘0’YUV编码类型,文件扩展名为avi

保存视频

out = cv2.VideoWriter(filename,fourcc, fps, frameSize)
参数:
filename:视频保存的位置
fourcc:指定视频编解码器的4字节代码
fps:帧率
frameSize:帧大小

释放视频对象

capture.release(),释放视频对象是必要的清理操作

视频处理基本操作的代码实现:

import cv2cap = cv2.VideoCapture('img/1.mp4')while(cap.isOpened()):ret, frame = cap.read()if ret == True:cv2.imshow('frame', frame)if cv2.waitKey(1) & 0xFF == ord('q'):breakelse:break

实现效果如下图:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/13976.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring—IoC

目录 1. IoC的提出 2. Spring容器 2.1. Spring容器实现原理 2.2. Spring组件 2.2.1 XML标签方式 2.2.2. 类注解方式 2.2.3. 方法注解方式 2.3. Spring容器分类 2.3.1. BeanFactory容器 2.3.2. ApplicationContext容器 2.3.3. WebApplicationContext容器 3. Spring中…

Srping 历史

一、History of Spring and the Spring Framework Spring came into being in 2003 as a response to the complexity of the early J2EE specifications. While some consider Java EE and its modern-day successor Jakarta EE to be in competition with Spring, they are …

nginx 配置stream模块代理并开启日志配置

前言 nginx 1.20.1 nginx从1.9.0开始,新增加了一个stream模块 确保nginx 安装时开启stream模块 ./configure \ …… \ --with-stream \ --with-stream_ssl_module \ 修改nginx.conf #增加stream配置,开启stream模块 stream {log_format basic $remote_addr [$…

stm32 作为从机, fpga 作为主机,进行 spi 通信

stm32 作为从机, fpga 作为主机,进行 spi 通信 STM32和FPGA之间的SPI通信是直连形式。使用FPGA读取传感器的值,传输到STM32中进行计算。 STM32是将SPI接受过来的数据存储到DMA中。 #include "SPI_DMA.h" #include <stm32f10x.h> uint8_t spi_buf[4];//FP…

idea启动报错:java.lang.NoClassDefFoundError: org/mybatis/logging/LoggerFactory

文章目录 一、问题二、解决方法 一、问题 问题描述&#xff1a;idea整合Mybatis-plus的时候&#xff0c;启动报错&#xff1a;java.lang.NoClassDefFoundError: org/mybatis/logging/LoggerFactory 二、解决方法 可能原因&#xff1a;仔细检查了一下&#xff0c;发现 mybati…

《王者荣耀》4月狂揽2.34亿美元 单日流水1亿美元 全球销量第二

易采游戏网5月24日消息&#xff0c;在刚刚过去的四月&#xff0c;全球手游市场迎来了一场收益的盛宴&#xff0c;其中《王者荣耀》以其惊人的吸金能力&#xff0c;以2.34亿美元的月收入在全球手游排行榜上位列第二。4月5日&#xff0c;这款由腾讯游戏开发的多人在线战斗竞技游戏…

C++相关概念和易错语法(14)(初始化注意事项、vector、编译器向上查找规则)

1.当我们在代码中想要终止运行的话&#xff0c;我们可以采用Ctrl C或Ctrl Z&#xff0c;其中^C代表杀进程&#xff0c;^Z设置结束2.编码表&#xff1a;我们目前比较熟悉的是ASCII码编码方式&#xff0c;但是我们发现平时使用的汉字无法通过ASCII编码&#xff0c;除此之外&…

前端canvas项目实战——在线图文编辑器:序

目录 前言一、 博主是谁&#xff1f;二、 关于本专栏1. 本专栏涉及的技术栈2. 专栏适合谁来学习&#xff1f;3. 你可以从专栏学到什么&#xff1f;4. 系列文章索引 三、 付费信息后记 前言 很高兴&#xff0c;今天我又为自己设定了一个目标&#xff1a;带领大家从入门HTML5中的…

自动化测试用例结构

标准的用例结构&#xff1a; 用力标题前提条件用例步骤预期结果实际结果 测试用例对比&#xff1a;

酷开系统 | 酷开科技把握智慧先机 AI赋能家庭场景

智慧化是当今世界科技发展的前沿领域之一。现在的智慧化&#xff0c;也正在逐步成为我们日常生活的一部分。电视系统也进入了数字化时代&#xff0c;AI的应用正在不断扩展&#xff0c;其潜力似乎无穷无尽。 酷开科技深耕人工智能技术&#xff0c;在提升语音体验、强化智能家居…

(1)无线电失控保护(二)

文章目录 前言 4 参数配置 5 测试 6 使用接收器设置飞行模式(

第二证券:新股申购配号数什么意思?

股配号数量便是我们参与抽签的数量&#xff0c;投资者申购新股之后&#xff0c;交易所会根据持有的股票市值进行配号。 投资者的市值越大&#xff0c;申购新股的配号越多&#xff0c;其中签机会越大。主板、创业板、科创板一个申购单位是500股&#xff0c;意味着1万元的市值有…

Scrapy 从创建到运行

Scrapy是一个强大的Python框架&#xff0c;专门用于构建网络爬虫。 步骤1&#xff1a;安装Scrapy 首先&#xff0c;你需要安装Scrapy框架来进行后续操作。以下是具体操作步骤&#xff1a; 1、使用pip命令安装Scrapy&#xff1a; pip install scrapy 步骤2&#xff1a;创建S…

Java 定义类型处理MySQL point类型数据

1.三个类来处理 引入maven依赖 <!-- 引入 jts 库解析 POINT --><dependency><groupId>com.vividsolutions</groupId><artifactId>jts</artifactId><version>1.13</version></dependency>import javax.validation.constr…

MySQL的数据类型之文本类型

目录 文本类型类型&#xff1a; CHAR(size) VARCHAR(size) TEXT TINYTEXT, MEDIUMTEXT, LONGTEXT BLOB, MEDIUMBLOB, LONGBLOB ENUM 在mysql中&#xff0c;常用数据类型有三种&#xff1a; 1、文本类型&#xff1b; 2、数字类型&#xff1b; 3、日期/时间类型&#xff1b; …

【C++入门】—— C++入门 (下)_内联函数

前言&#xff1a;在了解完前面的C基础内容后&#xff0c;马上我们就要真正不如C的学习了&#xff0c;但在之前让我们最后了解最后一点点C入门知识&#xff01;来迟的520特别篇&#xff01; 本篇主要内容&#xff1a; 内联函数 auto关键字 范围for 指针空值nullptr C入门 1. 内联…

星戈瑞CY3-COOH染料的稳定性、荧光特性

CY3-COOH染料&#xff0c;作为一种多功能的荧光标记试剂&#xff0c;在生物医学研究和荧光成像技术中应用。其稳定性和荧光特性使得它在科研实验使用。 CY3-COOH染料的稳定性 CY3-COOH染料以其稳定性而应用。首先&#xff0c;它展现出了良好的化学稳定性&#xff0c;不易受到环…

智慧医疗时代:探索互联网医院开发的新篇章

在智慧医疗时代&#xff0c;互联网医院开发正引领着医疗服务的创新浪潮。通过将先进的技术与医疗服务相结合&#xff0c;互联网医院为患者和医生提供了全新的互动方式&#xff0c;极大地提升了医疗服务的便捷性和效率。本文将深入探讨互联网医院的开发&#xff0c;介绍其技术实…

一键部署!QQ AI 聊天机器人!支持ChatGPT、文心一言、讯飞星火、Bing、Bard、ChatGLM、POE,多账号,人设调教

随着人工智能技术的不断发展&#xff0c;智能聊天机器人已经成为我们日常生活中不可或缺的一部分。ChatGPT作为一款强大的人工智能聊天模型&#xff0c;能够为我们提供高效、便捷的聊天体验。那么&#xff0c;如何将ChatGPT接入QQ&#xff0c;实现智能聊天新体验呢&#xff1f;…

关于Git 的基本概念和使用方式

Git是一个分布式版本控制系统&#xff0c;用于跟踪和管理代码的改动。它具有以下基本概念和使用方式&#xff1a; 1. 仓库&#xff08;Repository&#xff09;&#xff1a;Git使用仓库来存储代码和相关的历史记录。仓库可以是本地的&#xff0c;也可以是远程的。本地仓库保存在…