ljsq.net
当前位置:首页 >> MATLAB视频提取帧的问题 >>

MATLAB视频提取帧的问题

%该代码用于将视频文件的每一帧变成一幅图片 [filename,pathname,fileindex]=uigetfile('*.avi','选择视频文件','选择视频文件.avi','Multiselect','on'); % [FileName,PathName,FilterIndex] = uigetfile(FilterSpec,DialogTitle,DefaultName) ...

因为总帧数不是20的整数倍,所以最后一次读会出错

将视频分解成一帧一帧的图像 functionExtractFrame(imagefile)mov=aviread(imagefile);n=size(mov,2);for i=1:n k=int2str(i); F=mov(1,i); [f,map]=frame2im(F); k1=strcat('extraction\',k,'.jpg'); imwrite(f,k1);end

内存不够,没必要把整个视频读到内存; 思路,先读取视频的基本信息,比如总帧数,以及每帧的长和宽(像素) 然后指定某几帧去读,和图片一样处理。

VideoReader用法: 由命令help VideoReader,得 OBJ = VideoReader(FILENAME) constructs a multimedia reader object, OBJ, that can read in video data from a multimedia file. FILENAME is a string specifying the name of a multimedia f...

fileName = 'e:\app.avi'; obj = VideoReader(fileName); numFrames = obj.NumberOfFrames;% 读取视频的帧数 for i = 1 : numFrames frame = read(obj,i);% 读取每一帧 imshow(frame);%显示每一帧 imwrite(frame,strcat(num2str(i),'.jpg'),'jpg...

mov=aviread('123.AVI'); temp=size(mov); fnum=temp(2); for i=1:fnum, strtemp=strcat(int2str(i),'.','JPG'); imwrite(mov(i).cdata(:,:,:),strtemp); end%% 从视频中提出每一帧图像

可这样: vidObj = VideoReader('xy.avi'); vidHeight = vidObj.Height; vidWidth = vidObj.Width; s = struct('cdata',zeros(vidHeight,vidWidth,3,'uint8'),... 'colormap',[]); k = 1; while hasFrame(vidObj) s(k).cdata = readFrame(vidObj...

这和是不是matlab没关系

我也是初学者,所知道的也较少,知道的知识如下: MATLAB能读取部分AVI视频,因为都为AVI格式但是编码方式不同,用aviread读取,movie显示视频 mov=aviread('d:\j.avi'); %读入存在d盘的电影j.avi movie(mov); %放映电影 将电影转成图片序列 mov...

网站首页 | 网站地图
All rights reserved Powered by www.ljsq.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com