怎么查看视频的帧率帧数、用Matlab把视频分成一帧帧的图片,再把图片按指定帧率合成视频

一、把视频分成一帧帧的图片的几种方法

obj = VideoReader('E:\工业相机\sp\PIC_0145.MP4');%输入视频位置
numFrames = obj.NumberOfFrames;% 帧的总数
 for k = 1 : 15% 读取前15帧
     frame = read(obj,k);%读取第几帧
     imwrite(frame,strcat('E:\工业相机\111\',num2str(k),'.jpg'),'jpg');% 保存帧
     end

xyloObj = VideoReader('E:\工业相机\sp\PIC_0141.MP4');
 nFrames = xyloObj.NumberOfFrames;
 vidHeight = xyloObj.Height;
 vidWidth = xyloObj.Width;
 for k = 1 : nFrames
     im = read(xyloObj, k);%读取第k帧,存入im中
         imwrite(im, ['original_frame',num2str(k),'.bmp'], 'bmp');%把im存储成图片,并且存储的文件名根据序号改变
         end

video_file='E:\工业相机\sp\PIC_0140.MP4';
video=VideoReader(video_file);
frame_number=video.NumberOfFrames;
for i=1:6
image_name=strcat('E:\工业相机\111\',num2str(i));
 image_name=strcat(image_name,'.jpg');
 I=read(video,i);  %读出图片
imwrite(I,image_name,'jpg');         
 I=[];
end

二、查看视频的帧率帧数
以运行第一种方法为例,运行之前先记得包含视频路径不然找不到文件,运行之后,工作区如下
在这里插入图片描述
numFrames即为视频的帧数,点击obj,即可以看到视频的详细信息,时长,帧率等

在这里插入图片描述

三、把图片按指定帧率合成视频

srcDic = uigetdir('E:\工业相机\111');
cd(srcDic);
allnames = struct2cell(dir('*.jpeg'));
[k,len]=size(allnames);
aviobj = VideoWriter('driver7.avi');
aviobj.FrameRate = 5;
open(aviobj)
for i = 1:100
name = allnames{1,i};
frame = imread(name);
    writeVideo(aviobj,frame);
end
close(aviobj)
  • 6
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值