matlab如何实现对AVI格式视频的帧提取,提取之后怎么保存,然后如何实现相邻帧图像相减?
2014-06-09
展开全部
mov=aviread('TestSequence.avi');%%读取视频文件
aviinfo('TestSequence.avi');%获取视频信息
zshu=size(mov,2);%%获取帧数
C=imabsdiff(mov(2).cdata,mov(1).cdata);%%相邻帧作差
figure(1)
Y=mov(2).cdata;
subplot(1,2,1); imshow(Y);
subplot(1,2,2); imshow(C);
title(‘第1帧与第2帧做差分’);
C=imabsdiff(mov(48).cdata,mov(1).cdata);%%第48帧与第1帧作差
figure(2)
Y=mov(48).cdata
subplot(1,2,1); imshow(Y);
subplot(1,2,2); imshow(C);
title(‘第1帧与第48帧做差分’);
C=imabsdiff(mov(88).cdata,mov(1).cdata);%%第88帧与第1帧作差
figure(3)
Y=mov(88).cdata
subplot(1,2,1); imshow(Y);
subplot(1,2,2); imshow(C);
title(‘第1帧与第88帧做差分’);
C=imabsdiff(mov(130).cdata,mov(1).cdata);%%第130帧与第1帧作差
figure(4)
Y=mov(130).cdata
aviinfo('TestSequence.avi');%获取视频信息
zshu=size(mov,2);%%获取帧数
C=imabsdiff(mov(2).cdata,mov(1).cdata);%%相邻帧作差
figure(1)
Y=mov(2).cdata;
subplot(1,2,1); imshow(Y);
subplot(1,2,2); imshow(C);
title(‘第1帧与第2帧做差分’);
C=imabsdiff(mov(48).cdata,mov(1).cdata);%%第48帧与第1帧作差
figure(2)
Y=mov(48).cdata
subplot(1,2,1); imshow(Y);
subplot(1,2,2); imshow(C);
title(‘第1帧与第48帧做差分’);
C=imabsdiff(mov(88).cdata,mov(1).cdata);%%第88帧与第1帧作差
figure(3)
Y=mov(88).cdata
subplot(1,2,1); imshow(Y);
subplot(1,2,2); imshow(C);
title(‘第1帧与第88帧做差分’);
C=imabsdiff(mov(130).cdata,mov(1).cdata);%%第130帧与第1帧作差
figure(4)
Y=mov(130).cdata
追问
mov(1).cdata中的参数1可由循环变量根据循环帧数代替吧?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询