看了看高斯背景建模
个人理解其实就是选出同一位置像素点出现概率最大的颜色值
这样的化,其实所建模的视频帧越多,则建模效果越好!
一个简单的代码:
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
大家可以看下结果:
效果凑活吧!