移动目标检测(帧间差分法)

来源:互联网 发布:mac的强制退出 编辑:程序博客网 时间:2024/05/17 05:52

以前上计算机视觉课时,老师演示了一个移动目标检测的程序。觉得好玩,回去后自己写了一个。
基于帧间差分法+阈值(门限)的移动目标检测。检测前进行了中值滤波处理,手动设置了阈值。效果一般吧。

clear all;close all;clc;mov=VideoReader('classroom.avi');N=mov.NumberOfFrames;for i=2:N    frame=read(mov,i);    Pframe=read(mov,i-1);    if ndims(frame)==3        x=rgb2gray(frame);    else        x=frame;    end    if ndims(Pframe)==3        y=rgb2gray(Pframe);    else        y=Pframe;    end    subplot(1,2,1);    imshow(Pframe,[]);     title(sprintf('第%d帧',i-1))    %差分算法    x=medfilt2(x);    y=medfilt2(y);    n=im2double(x);    p=im2double(y);    c=n-p;    c=medfilt2(c);    t=10/256;    c(abs(c)>=t)=255;    c(abs(c)<t)=0;    c=logical(c);    x1=Pframe(:,:,1);    x1(c)=0;    x2=Pframe(:,:,2);    x2(c)=255;    x3=Pframe(:,:,3);    x3(c)=0;    xc=cat(3,x1,x2,x3);      subplot(1,2,2);    imshow(xc,[]);    title(sprintf('第%d帧',i-1))end

代码和测试数据下载

1 0
原创粉丝点击