看了看高斯背景建模
个人理解其实就是选出同一位置像素点出现概率最大的颜色值
这样的化,其实所建模的视频帧越多,则建模效果越好!
一个简单的代码:
clc;
clear;
d = 0:1:255;
result1 = zeros(768*576,256);
%result2 = zeros(768*576,256);
%result3 = zeros(768*576,256);
resultimage1 = zeros(576,768);
%resultimage2 = zeros(576,768);
%resultimage3 = zeros(576,768);
for k = 1:1:1
for i=1:1:500
i
a = num2str(i);
if i<10
str = strcat('L:\PETS\S0_CC\Crowd_PETS09\S0\City_Center\Time_12-34\View_001\frame_000',a,'.jpg');
else if i<100
str = strcat('L:\PETS\S0_CC\Crowd_PETS09\S0\City_Center\Time_12-34\View_001\frame_00',a,'.jpg');
else if i<1000
str = strcat('L:\PETS\S0_CC\Crowd_PETS09\S0\City_Center\Time_12-34\View_001\frame_0',a,'.jpg');
end
end
end
im = imread(str);
tempimage1 = im(:,:,k);
%tempimage2 = im(:,2);
%tempimage3 = im(:,3);
for j = 1:1:768*576
n = find(tempimage1(j)==d);
result1(j,n) = result1(j,n)+1;
end
% for j = 1:1:768*576
% n = find(tempimage2(j)==d);
% result2(j,n) = result2(j,n)+1;
% end
% for j = 1:1:768*576
% n = find(tempimage3(j)==d);
% result3(j,n) = result3(j,n)+1;
% end
end
for j = 1:1:768*576
t = max(result1(j,:));
n = find(result1(j,:)==t);
resultimage1(j) = n(1);
end
resultimage1 = resultimage1-1;
% endimage(:,:,k) = resultimage1;
endimage = resultimage1;
%strk = int2str(k);
%strend = strcat(k,'mat');
%save 'strend' resultimage1;
end
图像帧采用的是pets2009中的s2的L1第一视角下的视频
大家可以看下结果:
效果凑活吧!