将视频分解成一帧一帧的图像
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
mov = mmread('answeravi');%读入视频
VFrames = size(mov,1); %读取视频的帧数 总之呢,就是你的VFrames的值有问题啊。。。
for k =1 : VFrames
strtemp=strcat('D:\Documents\MATLAB\frames\',int2str(k),'','jpg');
imwrite(mov(k)frames(k)cdata(:,:,:),strtemp);
end
videoObj = VideoReader('renavi');%读视频文件,存入变量videoObj中
nframes = get(videoObj, 'NumberOfFrames');%获取视频文件的帧数
for k = 1 : nframes %for循环,读取每一帧
currentFrame = read(videoObj, k);%读取第i帧
subplot(1,2,1);%创建图像显示窗口并获取第一个窗口
imshow(currentFrame); %显示一帧
c1 = rgb2gray(currentFrame);%灰度化
grayFrame=medfilt2(c1,[3 3]);%中值滤波
if(k==1)%如是第一帧,则:
grayFrame_1 = grayFrame;%把第一帧灰图存入变量grayFrame_1中,如不是第一帧,则执行下句
end
difgrayFrame= grayFrame - grayFrame_1;%邻帧差,计算后面的帧与第一帧的差
subplot(1,2,2);%画第二个子图
imshow(difgrayFrame);%显示差图
grayFrame_1 = grayFrame;%更新第一灰图的内容
pause(00001);%暂停00001秒
end
以上就是关于求 :MATLAB获取视频帧的函数,以及获取视频帧中像素的函数。全部的内容,包括:求 :MATLAB获取视频帧的函数,以及获取视频帧中像素的函数。、用matlab读入视频,然后将每一帧都以图片的形式输出,但最后只输出了一张图片,求大神解答!、求助!哪位大神可以给我解释一下matlab程序啊,关于运动目标检测的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)