• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

matlab读写视频VideoReader/VideoWriter - 鹅要长大

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

matlab读写视频VideoReader/VideoWriter

前言

视频处理分析的过程中,需要用到将视频一帧帧地读取、写入,本文就涉及此问题。

系统环境

1.系统:win7_64

2.matlab版本:matlab2015a

测试代码

代码一(读视频):

%To read video frames.
clc
clear 
close all

fileName = \'E:\fatigue_detection\dataset\segVideosP1\1_5.avi\';  
obj = VideoReader(fileName); 
numFrames = obj.NumberOfFrames;                       
for i = 1 : numFrames      
    frame = read(obj,i);                                 
    imshow(frame);                                        
    imwrite(frame,strcat(num2str(i),\'.jpg\'),\'jpg\');  
end

 代码二(读视频):

 

fileName = \'E:\fatigue_detection\dataset\segVideosP1\1_5.avi\';  

xyloObj = VideoReader(fileName);

vidWidth = xyloObj.Width;
vidHeight = xyloObj.Height;
% mov = struct(\'cdata\',zeros(vidHeight,vidWidth,3,\'uint8\'),\'colormap\',[]);

while hasFrame(xyloObj)
    frame = readFrame(xyloObj);
    imshow(frame);
end

 

代码三(写视频):

写视频步骤:

创建视频文件VideoWriter - > 打开视频文件open - > 获取视频帧并写入视频文件writeVideo -> 关闭视频文件close.

fileName = \'E:\fatigue_detection\dataset\segVideosP1\1_5.avi\';  

%method2
xyloObj = VideoReader(fileName);
vidWidth = xyloObj.Width;
vidHeight = xyloObj.Height;
fps = xyloObj.FrameRate;

out = VideoWriter(\'out.avi\');
out.FrameRate = fps;
open(out);
while hasFrame(xyloObj)
    frame = readFrame(xyloObj);
    writeVideo(out, frame);
end
close(out);

代码可参考matlab的help文档.

注意:

1.不同版本之间可能会存在一些代码问题,可参考help文档进行修正.

2.写入视频文件之前要先打开文件,写入完毕之后要关闭文件.


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap