题外话:初学MATLAB,是因为跟着老师做项目,与MATLAB机器学习相关,包含了智能信息处理,是从前未接触的领域。因此,想写博客来记录自己的学习进度。老师安排的第一次任务为:用MATLAB读取视频,观察和学习视频的相关信息,并分帧保存为一个个彩色图像;计算每幅图的RGB三个矩阵的均值,并且用曲线图绘制出来;用MATLAB在视频的第一帧中选一个区域,将选中区域的局部RGB矩阵均值计算出来并绘制相应曲线图。

今天完成的是第一步(- .-):使用MATLAB读取视频并获取视频信息、分帧保存。

要读取视频,直接使用MATLAB内置函数VideoReader即可。格式为:OBJ = VideoReader(FILENAME)

在命令行窗口输入

obj = VideoReader('D://Project//VideoMaterials//00.avi')

FILENAME中的内容为视频存储的绝对路径(默认路径为工程目录)。该语句读取一个视频到obj结构。

VideoReader函数自动获取视频相关信息:

Name - -视频文件名 
Path – 视频文件路径 
Duration – 视频的总时长(秒) 
FrameRate - -视频帧速(帧/秒) 
NumberOfFrames – 视频的总帧数 
Height – 视频帧的高度 
Width – 视频帧的宽度 
BitsPerPixel – 视频帧每个像素的数据长度(比特) 
VideoFormat – 视频的类型, 如 ‘RGB24’. 
Tag – 视频对象的标识符,默认为空字符串” 
Type – 视频对象的类名,默认为’VideoReader’.

UserData – Generic field for data of any class that you want to add to the object. Default: []

要分帧保存为彩色图像,也是用内置函数imwrite。格式为imwrite(A,FILENAME,FMT),其中,A为待保存的某一帧,FILENAME为保存目录,FMT为保存格式。

e.g.imwrite(frame,strcat('D:\Project\Pictures\',num2str(k),'.jpg'),'jpg')

【注】定义strcat 即 Strings Catenate,横向连接字符串。语法 combinedStr= strcat(s1, s2, ..., sN)。

将数组 s1,s2,...,sN 水平地连接成单个字符串,并保存于变量combinedStr中。如果任一参数是元胞数组,那么结果 combinedStr 是一个元胞数组,否则,combinedStr是一个字符数组。其实它的作用很简单就是将多个字符连接成单个字符串,关键在于这个语句中括号里面的内容,

'D:\Project\Pictures\'  加了单引号的,就说明单引号里面的内容为:字符串 ,下面的'.jpg' 只是字符串而已,原样输出即可。

最终代码:

obj = VideoReader('D://Project//VideoMaterials//00.avi');%输入视频位置
numFrames = obj.NumberOfFrames;% 帧的总数for i = 1 : 15% 读取前15帧frame = read(obj,i);%读取第几帧% imshow(frame);%显示帧imwrite(frame,strcat('D:\Project\Pictures\',num2str(i),'.jpg'),'jpg');% 保存帧end

(来源:https://blog.csdn.net/qq_23097931/article/details/51108747)

使用MATLAB读取视频并获取视频信息、分帧保存相关推荐

  1. 文件笔记之javaCV 视频工具|获取视频时长|缩略图

    文件笔记之javaCV 视频工具|获取视频时长|缩略图) 目录 简介 依赖引入 实现 目录 简介 通过javaCV 视频工具-截取视频缩略图.获取视频属性 依赖引入 <!--javaCV 视频工 ...

  2. 怎么把动态图从python弄下来_Python将视频或者动态图gif逐帧保存为图片的方法

    本文是基于opencv将视频和动态图gif保存为图像帧.可以根据输入视频格式的不同,修改第21行. 对动图的处理不同于视频,PIL库包含对图像序列的基本支持.当打开gif图像时,自动加载第一帧.当图像 ...

  3. python怎么存为动图_Python将视频或者动态图gif逐帧保存为图片的方法

    本文是基于opencv将视频和动态图gif保存为图像帧.可以根据输入视频格式的不同,修改第21行. 对动图的处理不同于视频,PIL库包含对图像序列的基本支持.当打开gif图像时,自动加载第一帧.当图像 ...

  4. ffmpeg读取本地视频,获取视频帧

    本文转自:https://blog.csdn.net/yinsui1839/article/details/80519742 /******** *本代码参考自雷神博客 * **********/ # ...

  5. 有趣且重要的JS知识合集(15)前端上传视频后获取视频的相关信息

    通过视频文件上传后监听loadedmetadata事件来获取视频属性 getVideoInfo(file) {return new Promise(resolve => {const video ...

  6. php视频播放链提取,php获取腾讯云点播上传视频后获取视频url地址以及时长 | 小灰灰博客...

    /** * Created by PhpStorm. * User: 小灰灰 * Date: 2018/12/23 9:02 * Other: */ class Test { public funct ...

  7. java通过视频URL获取视频时长,无需下载视频,修复jave在linux上的bug

    背景 项目中有一个需求,要获取前端上传过来的视频的时长.分辨率等信息.网上查了下,java后端基本上都是用的jave获取视频信息,jave的官网在此. 不过网上的教程都是获取本地视频的信息,jave提 ...

  8. 通过读取/proc/cpuinfo获取CPU信息

    1.简介 上一篇介绍了如何通过cpuid指令获取CPU信息,本文主要介绍如何通过读取/proc/cpuinfo文件获取CPU信息.本文从"什么是/proc文件系统","如 ...

  9. iOS - AVPlayer播放视频,获取视频尺寸(宽高)

    公司启动页要求播放视频,其实很简单,AVPlayer可以胜任此任务. - (void)playVideoWithType:(NSString *)type {//获取视频sizeNSURL *medi ...

最新文章

  1. Java垃圾回收之新生代垃圾收集器
  2. 解析目标检测全流程!附代码数据
  3. 在Python中查找和替换文本,玩转Python正则
  4. The transaction log for database 'tempdb' is full due to 'ACTIVE_TRANSACTION'
  5. 这简历一看就是包装过的
  6. 限制用户不允许输入中文字符
  7. 本地分发_2020年分发Python应用程序的12个热门途径
  8. 23期PHP基础班第四天
  9. 【Java】反转数组元素
  10. 集合的常用方法(增加、删除、并集、交集、差集、对等差分、超集和子集)
  11. 200 万年薪的博士,华为到底看重什么?
  12. collectd 5.7.2 发布,系统监控和统计工具
  13. C/C++ 基础算法2
  14. 重置电脑的网络配置 -- 解决防火墙问题导致的应用启动失败
  15. 快速批量改变图片格式
  16. H5 canvas制作数字连线效果
  17. 【IDEA系列】利用 IntelliJ IDEA 进行代码对比的方法
  18. 三菱驱动器参数表_三菱伺服驱动器参数都设置什么啊详细点谢谢
  19. Thinkpad E431 解决无线网卡无法开启
  20. 图片公式转word公式

热门文章

  1. idea xml右键没有Diagrams
  2. 【尚硅谷】数据库DQL学习
  3. linux下解压dmp文件怎么打开,DMP 文件扩展名: 它是什么以及如何打开它?
  4. 【计算机视觉】会议投稿相关推荐
  5. 安卓推送一体解决方案
  6. 有10个站连接到以太网上。试计算一下三种情况下每一个站所能得到的带宽。
  7. OCR产业应用实战,多类别电表读数识别方案详解
  8. 将Excel经纬数据导入ArcGIS中
  9. 湖北省美丽乡村示范片建设试点项目资金管理办法
  10. 【Visual Studio Code】VS Code在Linux/Mac/Windows中向前、向后定位的快捷键及修改方法