养生 装修 购物 美食 感冒 便秘 营销 加盟 小吃 火锅 管理 创业 搭配 减肥 培训 旅游

Matlab:视频读取和帧保存

时间:2024-11-11 22:04:14

绪:Matlab视频读取和帧保存涉及VideoReader类,read读取帧,imwrite帧保存;因此,本文介绍VideoReader类,read读取帧,imwrite帧保存的用法;

Matlab:视频读取和帧保存

工具/原料

matlab2016a

方法/步骤

1、VideoReader用法:由命令helpVideoReader,得OBJ屏顿幂垂=VideoReader(FILENAME)惺绅寨瞀constructsamultimediareaderobject,OBJ,thatcanreadinvideodatafromamultimediafile.FILENAMEisastringspecifyingthenameofamultimediafile.Therearenorestrictionsonfileextensions.Bydefault,MATLABlooksforthefileFILENAMEontheMATLABpath.该语句将视频文件读到OBJ结构,FILENAME为文件路径,可为绝对路径,默认路径为工程目录。

Matlab:视频读取和帧保存

2、VideoReader参数:obj结构体:obj=VideoReader(争犸禀淫'D://Media//111.mp4');%输入视频位置Name–视频文件名霸烹钟爷Path–视频文件路径Duration–视频的总时长(多少秒)FrameRate–视频帧速(帧/秒)NumberOfFrames–视频的总帧数Height–视频帧的高度Width–视频帧的宽度BitsPerPixel–视频帧每个像素的数据长度(比特)VideoFormat–视频的类型,如‘RGB24’.Tag–视频对象的标识符,默认为空字符串”Type–视频对象的类名,默认为’VideoReader’.示例:obj_numberofframe=obj.NumberOfFrame;%读取总的帧数obj_height=obj.Height;%读取视频帧高度

Matlab:视频读取和帧保存

3、read-帧读取frame=read(obj),%获取该视频对象的所有帧frame=read(obj,index),%获取该视频对象的指定帧frame=read(obj,1);%firstframeonly获取第一帧frame=read(obj,[110]);%first10frames获取前10帧frame=read(obj,Inf);%lastframeonly获取最后一帧frame=read(obj,[50Inf]);%frame50thruend获取第50帧之后

Matlab:视频读取和帧保存

4、imwrite-帧保存由命令helpimwrite,得imwrite(A,FILENAME,FMT)writestheimageAtothefilespecifiedbyFILENAMEintheformatspecifiedbyFMT.示例:imwrite(frame,strcat('D:\image\cankao1\1.jpg'),'jpg');%保存帧%%%frame为待保存的某一帧%%%strcat('D:\image\cankao1\1.jpg')为保存目录%%%'jpg'为保存格式

Matlab:视频读取和帧保存

5、视频读取和帧保存程序:obj=VideoReader('out.avi');%输入视频位置numFrames=obj.NumberOfFrames;%帧的总数fork=1:15%读取前15帧frame=read(obj,k);%读取第几帧imshow(frame);%显示帧imwrite(frame,strcat('im',num2str(k),'.jpg'),'jpg');%保存帧end

Matlab:视频读取和帧保存

6、注意事项有时在使用VideoReader读取视频时,matlab会报错:matlab报错:错误使用VideoReader/init(line619)无法确定所需的编解码器。出错VideoReader(line172)obj.init(fileName);解决方法:下载完美转码者或格式工厂,将原视频进行转码,则报错消失。

Matlab:视频读取和帧保存

Matlab:视频读取和帧保存

© 一点知识