我是靠谱客的博主 勤劳白昼,这篇文章主要介绍视频帧差法实例(matlab实现),现在分享给大家,希望可以做个参考。

视频帧差法:打开摄像头(视频文件),获取图像,完成前后两帧图像相减,动态显示结果,将帧差的结果存储为视频文件。

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实现)内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(77)

评论列表共有 0 条评论

立即
投稿
返回
顶部