【计算机视觉(2)】

news2024/11/20 0:36:29

基于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 是用于指定视频解码器的 4 字节代码。这里 fourcc.org 是可用编码的列表。它取决于平台,下面编码就很好。
In Fedora: DIVX, XVID, MJPG, X264, WMV1, WMV2. (XVID 是最合适的.
MJPG 结果比较大. X264 结果比较小)
In Windows: DIVX (还需要测试和添加跟多内容)
In OSX: MJPG (.mp4), DIVX (.avi), X264 (.mkv).

对于 MJPG, FourCC 的代码作为 cv.VideoWriter_fourcc(‘M’,‘J’,‘P’,‘G’) 或 cv.VideoWriter_fourcc(‘MJPG’)* 传递。

保存视频

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

释放视频对象

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

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

import cv2

cap = 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'):
            break
    else:
        break

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

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

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

相关文章

地平线-旭日X3派(RDK X3)上手基本操作

0. 环境 - win10笔记本 - RDK X3 1.0(地平线旭日X3派,后来改名为代号RDK X3) 1. 下载资料 https://developer.horizon.ai/resource 主要下载镜像 http://sunrise.horizon.cc/downloads/os_images/2.1.0/release/ 下载得到了 ubuntu-prei…

c# 将数据库连接字符串写到配置文件中,及获取

考虑到代码的安全性,已经修改起来的方便性,我们常常不会将数据库连接字符串直接放在代码中,而是将这个字符串放到一个App.config配置文件中,赋值给一个变量,然后再在代码中引用这个变量。 具体做法如下: ①展开项目名称…

星火大模型:服务升级,免费开放!

2023年9月5日,讯飞星火正式开放!仅仅一个半月,讯飞星火在1024开发者节就实现用户规模突破1200万,成为人们获取知识、学习知识的“超级助手”,成为解放生产力、释放想象力的“超级杠杆”。从商业文案、软件代码、创意方…

BCD编码(8421)介绍

概念 BCD (Binary-Coded Decimal) 是一种二进制的数字编码形式,其特点每个十进制数位用4个二进制位来表示。 在网络IO中,你传输一个数字类型最少需要一字节,传输两个数字类型最少需要两字节,但是当你使用BCD编码后传输&#xff…

4款卸载软件测评,流氓软件克星!

正常卸载软件的方法,打开控制面板,点击程序-卸载程序,然后再选中软件卸载,但是这样往往注册表的内容还依然存在,今天分享4款卸载软件,都是专业卸载神器,简单说下我测评感受。 HiBit Uninstaller…

半导体测试基础 - AC 参数测试

AC 测试确保 DUT 的时特性序满足其规格需求。 基本 AC 参数 建立时间(Setup Time) 建立时间指的是在参考信号(图中为 WE)发生变化(取中间值 1.5V)前,为了确保能被正确读取,数据(图中为 DATA IN)必须提前保持稳定不变的最短时间。在最小建立时间之前,数据可以随意变…

GPRS水表远程抄表系统

1.界定与原理 GPRS水表远程抄表系统是一种基于GPRS(GeneralPacketRadioService)通信技术的智能化水表管理方法系统。主要是通过在水表中集成化GPRS控制模块,完成远程数据传输,无需当场抄表,大大提升了抄表高效率。系统根据wifi网络搜集水表读…

华为设备WLAN基础配置

WLAN基础配置之AP上线 配置WLAN无线网络的第一阶段,AP上线技术: 实验目标:使得AP能够获得来自AC的DHCP地址服务的地址,且是该网段地址池中的IP。 实验步骤: 1.把AC当作三层交换机配置虚拟网关 sys Enter system view…

分布式文件系统minIo

分布式文件系统 什么是分布式文件系统 一个计算机无法存储海量的文件,通过网络将若干计算机组织起来共同去存储海量的文件,去接收海量用户的请求,这些组织起来的计算机通过网络进行通信,如下图: 好处: 1、…

mysql存储比特位

一、介绍 二、SQL CREATE TABLE bits_table (id INT PRIMARY KEY AUTO_INCREMENT,bit_value BIGINT UNSIGNED );-- 插入一个 8 位的 BIT 值 INSERT INTO bits_table (bit_value) VALUES (B10101010);-- 查询并格式化输出 SELECT id,bit_value,CONCAT(b, LPAD(BIN(bit_value),…

npm run dev启动element-ui,提示node_modules中webpack的版本跟package.json中webpack的版本不一致

问题一:修改node_modules/webpack/package.json版本为4.14.0,npm run dev时版本号又自动更改为 4.47.0 问题二:使用yarn 安装依赖,webpack的版本默认是4.47.0,为什么 求大佬们帮我解答一下以上两个问题 左侧是node_m…

ClickHouse 几年内数据查询及细节

在 ClickHouse 中,查询三年内的时间数据可以使用以下方法: 1. 使用日期函数 可以使用 ClickHouse 支持的日期函数来筛选出三年内的数据。例如,使用 today() 函数获取当天日期,使用 toDate() 函数将日期转换为指定格式&#xff0…

不闭合三维TSP:成长优化算法GO求解不闭合三维TSP(起点固定,终点不定,可以更改数据集),MATLAB代码

一、旅行商问题 旅行商问题(Traveling salesman problem, TSP)是一个经典的组合优化问题,它可以描述为一个商品推销员去若干城市推销商品,要求遍历所有城市后回到出发地,目的是选择一个最短的路线。当城市数目较少时&…

2024年AI发展的四大趋势

近日,OpenAI发布首个视频生成模型“Sora”——通过接收文本指令,即可生成60秒短视频。一年前,同样是OpenAI发布的语言模型ChatGPT,让文本创作变得易如反掌。 在2023年,随着一系列AIGC的相继问世,我们看到A…

深度学习之基于Pytorch框架的卷积神经网络图像去雨系统

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景 在图像处理领域,图像去雨技术一直是一个热门的研究方向。随着深度学习技术的快速发展&am…

2024电工杯数学建模 - 案例:最短时间生产计划安排

# 前言 2024电工杯(中国电机工程学会杯)数学建模思路解析 最新思路更新(看最新发布的文章即可): https://blog.csdn.net/dc_sinor/article/details/138726153 最短时间生产计划模型 该模型出现在好几个竞赛赛题上,预测2022今年国赛也会与该模型相关。 1 模型描…

ASP+ACCESS基于BS产品销售管理系统

2. 网页制作工具 a) 网页设计工具 网页主要使用Frontpage2003,Dreamweaver Mx辅助制作。 Frontpage 2003 frontpage2003是在frontpage2000基础上的网页工具。frontpage2003保留和发展了frontpage 2000的优秀功能,并根据用户的的要求再次增加了九大新…

【MATLAB】基于EMD-PCA-LSTM的回归预测模型

有意向获取代码,请转文末观看代码获取方式~ 1 基本定义 基于EMD-PCA-LSTM的回归预测模型是一种结合了经验模态分解(Empirical Mode Decomposition, EMD)、主成分分析(Principal Component Analysis, PCA)和长短期记忆…

STM32使用DMA+空闲中断方式实现串口数据接收

欢迎入群共同学习交流 时间记录:2024/5/23 一、概念介绍 (1)DMA:直接存储器存取(DMA)(Direct Memory Access)也是一个挂载在AHB总线上的外设,用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。无须…

超详细的前后端实战项目(Spring系列加上vue3)(一步步实现+源码)前端篇(一)

最近想着一步步搭建一个前后端项目,将每一步详细的做出来。(如果有不足或者建议,也希望大佬们指出哦) 前端初始化 1.根据vue脚手架创建vue项目 这里可以用很多方法创建vue项目,大家看着创建吧,只要能创建…