资源简介

视频背景 读取 帧差法,能有效读取视频背景 matlab程序

资源截图

代码片段和文件信息

close all
clear all
clc
disp(‘input video‘);                  %disp显示,告诉使用者接下来要输入视频在这个代码里disp指令对于视频的读取,跟踪,播放没有任何影响。控制台就是你输入指令的地方,disp会在那里进行输出。

avi = aviread(‘E:\图片类\海雾图片\2013 1 13\2013 1 13海雾\qm0008277a(1).AVI‘);      %读入视频samplevideo.avi
video = {avi.cdata};                   %cdata: M x N x 3 的矩阵用来表示真彩色的图像
[mns]=size(avi(1).cdata);
q=zeros(mn);
fR=q;
fG=q;
fB=q;
for a = 1:2:length(video)                %length(video)表示这段视频的帧数  
   % subplot(221)
   % imshow(video{a});                 %按帧数顺序显示图像
   % title(‘原图像‘);
    strtemp=strcat(‘E:\图像去雾\帧差分法提取背景\转换的图片\2\‘int2str(a)‘.‘‘png‘);  %保存图片
    imwrite(avi(a).cdatastrtemp‘png‘)
    %fr = avi(a).cdata;       % read in frame
    %fr_bw = rgb2gray(fr);       % convert frame to grayscale
     fR=double(avi(a).cdata(::1))+fR;
     fG=double(avi(a).cdata(::2))+fG;
     fB=double(avi(a).cdata(::3))+fB;
    %axis image off
    %drawnow;                           %用于刷新屏幕的。当你的代码执行时间长,需要反复执行plot时,Matlab程序不会马上把图像画到figure上,这时,要想实时看到图像的每一步变化情况,需要使用这个语句。  
end;

fR=uint8(fR*1/264);
fG=uint8(fG*1/264);
fB=uint8(fB*1/264);
B=cat(3fRfGfB);
figure;
imshow(B);
imwrite(B‘C:\Users\Administrator\Desktop\视频处理\提取的背景图片.jpg‘);
figure;imshow(avi(10).cdata);

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1466  2013-01-13 20:02  读取视频背景程序\Test_1.m

     目录          0  2012-12-09 18:37  读取视频背景程序

----------- ---------  ---------- -----  ----

                 1466                    2


评论

共有 条评论