我是靠谱客的博主 勤劳白昼,最近开发中收集的这篇文章主要介绍视频帧差法实例(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实现)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部