Всем привет

У меня возникла проблема при применении порога в адаптивном фоновом алгоритме. Мой код

threshold=25
for f=1:frames              
   I=read(obj,f);   
   figure(1);imshow(I);title('Input Video Sequence');     
   if f==1    
     Background=I;    
     Fg=abs(I-Background);
   else
     Fg=abs(I-Background); 
   end
end
for i=1:width
  for j=1:height
    if Fg(i,j)>threshold
      Fg(i,j)=255;
    else
      Fg(i,j)=0;
    end  
  end
end
figure(2);imshow(Fg);

Это видеофайл, в котором я применяю этот алгоритм, но когда я применяю пороговые условия, результаты не влияют, и я не могу получить маску переднего плана.

ПРИМЕЧАНИЕ. 

Matlabsolutions.com предоставляет последнюю Помощь по домашним заданиям MatLab, Помощь по заданию MatLab для студентов, инженеров и исследователей в различных отраслях, таких как ECE, EEE, CSE, Mechanical, Civil со 100% выходом. Код Matlab для BE, B.Tech ,ME,M.Tech, к.т.н. Ученые со 100% конфиденциальностью гарантированы. Получите проекты MATLAB с исходным кодом для обучения и исследований.

После того, как вы пройдете первый цикл по кадрам, FG будет иметь значение последней итерации, потому что вы продолжаете перезаписывать его на каждой итерации и ничего с ним не делаете. Таким образом, после того, как этот цикл заканчивается, FG — это просто последний кадр минус первый кадр. Явно не то, что вы хотите сделать. Затем вы устанавливаете пороговое значение FG, которое, как я уже сказал, является последним отличием, и отображаете его.

Поместите модификацию фона и пороговое значение внутри вашего цикла по кадрам и отобразите внутри этого цикла или назначьте кадр FG{f} для хранения всех ваших разностных кадров. Я добавил всего несколько строк в свою демонстрацию (которую я уже публиковал ранее), чтобы обработать ваш адаптивный фон. Скопируйте, вставьте и запустите этот код:

% Demo macro to extract frames and get frame means from an avi movie
% and save individual frames to separate image files.
% Also computes the mean gray value of the color channels.
clc;    % Clear the command window.
close all;  % Close all figures (except those of imtool.)
imtool close all;  % Close all imtool figures.
clear;  % Erase all existing variables.
workspace;  % Make sure the workspace panel is showing.
fontSize = 14;
% Change the current folder to the folder of this m-file.
% (The line of code below is from Brett Shoelson of The Mathworks.)
if(~isdeployed)
  cd(fileparts(which(mfilename)));
end
% Open the rhino.avi demo movie that ships with MATLAB.
folder = fullfile(matlabroot, '\toolbox\images\imdemos');
movieFullFileName = fullfile(folder, 'rhinos.avi');
% Check to see that it exists.

СМОТРИТЕ ПОЛНЫЙ ОТВЕТ НАЖМИТЕ НА ССЫЛКУ