背景建模,利用平均帧作为背景
%%Obtain the background image
imageDataSet=[];
subfolders = {'vidf1_33_000.y', 'vidf1_33_001.y', 'vidf1_33_002.y', 'vidf1_33_003.y', 'vidf1_33_004.y','vidf1_33_005.y', 'vidf1_33_006.y', 'vidf1_33_007.y', 'vidf1_33_008.y', 'vidf1_33_009.y'};
for i=1:length(subfolders)
for j=1:200
disp(['Processing image #' num2str(j) ' (out of 200)...']);
im = imread(['data/',subfolders{i},'/vidf1_33_', num2str(i-1, '%03d'),'_f',num2str(j, '%03d'),'.png']);
im=im(:);
imageDataSet=[imageDataSet,im];
disp('----------');
end
end
AveImg=sum(imageDataSet');
BacGImg=AveImg/2000;
figure;
imshow(reshape(BacGImg,158,238)/256);
foreGround=double(imageDataSet)-repmat(BacGImg