概述
视频帧差法:打开摄像头(视频文件),获取图像,完成前后两帧图像相减,动态显示结果,将帧差的结果存储为视频文件。
clc
clear
videoObj = VideoReader('a1.avi');%读视频文件
nframes = get(videoObj, 'NumberOfFrames');%获取视频文件帧个数
for k = 1 : nframes-1
currentFrame1 = read(videoObj, k);%读取第i帧
currentFrame2 = read(videoObj, k+1);
subplot(2,1,1);%创建图像显示窗口并获取第一个窗口句柄
imshow(currentFrame1); % Convert to grayscale.
grayFrame1 = rgb2gray(currentFrame1);%灰度化
grayFrame2 = rgb2gray(currentFrame2);
difgrayFrame= grayFrame2 - grayFrame1;%邻帧差
subplot(2,1,2);
imshow(difgrayFrame);
imwrite(difgrayFrame,['D:picture_processingpart2save_processing',num2str(k) ,'.jpg']);
end
srcDic = uigetdir('D:picture_processingpart2save_processing');% 将每步处理后的图像到某个目录下
cd(srcDic); %读取所有的jpg图片
allnames = struct2cell(dir('*.jpg'));
[difgrayFrame,len]=size(allnames);
aviobj = VideoWriter('D:picture_processingpart2save_video2');%视频存储位置
aviobj.FrameRate = 10; %设置帧率
open(aviobj) %制作由65张图片构成的视频
for i = 1:65
name = allnames{1,i};
frame = imread(name);
writeVideo(aviobj,frame);
end
close(aviobj)
最后
以上就是勤劳白昼为你收集整理的视频帧差法实例(matlab实现)的全部内容,希望文章能够帮你解决视频帧差法实例(matlab实现)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复