背景差法的实质是:实时输入的场景图像与背景图像进行作差,可以较准确的分割出运动目标。但是背景差法也有其缺陷,具体表现为:随着时间的推移,场景的光线、树叶的遮挡、或者运动物体滞留都会很大程度破坏已经建立好的背景图像。为了解决这些问题,最好的方法便是使用背景建模和背景更新算法来弥补。 - clc,clear,close all % 清屏、清工作区、关闭窗口
- warning off % 消除警告
- feature jit off % 加速代码执行
- im1 = imread('1.jpg'); im1 = im2double(im1); % 加载图像并转化为double类型
- im2 = imread('30.jpg'); im2 = im2double(im2); % 加载图像并转化为double类型
- im3 = imread('60.jpg'); im3 = im2double(im3); % 加载图像并转化为double类型
- im4 = imread('80.jpg'); im4 = im2double(im4); % 加载图像并转化为double类型
- im6 = imread('145.jpg'); % im6 = im2double(im6); % 加载图像并转化为double类型
- T = 20; %固定阈值T=20
- im5 = (im1+im2+im3+im4)/4; im5 = im2uint8(im5);
- im1 = im2uint8(im1); im2 = im2uint8(im2);
- im3 = im2uint8(im3); im4 = im2uint8(im4);
- im15 = im1-im5; im15 = im15(:,:,1) > T; % 阈值
- figure,imshow(im15,[])
- im25 = im2-im5; im25 = im25(:,:,1) > T; % 阈值
- figure,imshow(im25,[])
- im35 = im3-im5; im35 = im35(:,:,1) > T; % 阈值
- figure,imshow(im35,[])
- im45 = im4-im5; im45 = im45(:,:,1) > T; % 阈值
- figure,imshow(im45,[])
- im65 = im6-im5; im65 = im65(:,:,1) > T; % 阈值
- figure,imshow(im65,[])
复制代码
参考链接:http://halcom.cn/forum.php?mod=viewthread&tid=304&extra=page%3D1
http://halcom.cn/forum.php?mod=viewthread&tid=303&extra=page%3D1
|