Matlab学习笔记---视频处理

三帧间差分:读取视频,利用三帧间差分法计算临帧差,与阈值进行比较转换成二值图像。

clc
clear
videoObj = VideoReader('video1.avi');%读视频文件
nframes = get(videoObj, 'NumberOfFrames');%获取视频文件帧个数
for k = 1 : 30
    currentFrame = read(videoObj, k);%读取第i帧
    Frame1=read(videoObj, k+1);
    Frame2=read(videoObj, k+2);   
   % imshow(currentFrame);


    grayFrame = rgb2gray(currentFrame);%灰度化
    grayFrame_1 = rgb2gray(Frame1);%灰度化
     grayFrame_2=rgb2gray(Frame2);
    
     difgrayFrame= grayFrame - grayFrame_1;%邻帧差
    difgrayFrame2= grayFrame_1 - grayFrame_2;%邻帧差 
     fdiff1=im2bw(uint8( difgrayFrame),0.05);%与阈值比较转换成二值图像
      fdiff2=im2bw(uint8( difgrayFrame2),0.05);%与阈值比较转换成二值图像
    f= fdiff1&fdiff2;
     
      figure(1);
     imshow(f);
end

你可能感兴趣的:(matlab信号处理)