how can i correct this code to write a video

조회 수: 1 (최근 30일)
bay rem
bay rem 2016년 1월 24일
댓글: bay rem 2016년 1월 24일

I've this code and i dont know how to write a video with images result:

clear all;
close all;
clc;
foregroundDetector = vision.ForegroundDetector('NumGaussians', 3, ...
    'NumTrainingFrames', 300,'MinimumBackgroundRatio', 0.6);
videoReader = vision.VideoFileReader('video6.avi',...
    'VideoOutputDataType','uint8');
JJ=0;
j=0;
k=0;
m=0;
J=0;
for J=1:250
    J=J+1
    frameRGB = step(videoReader); % read the next video frame
    foreground1 = step(foregroundDetector, frameRGB);
L = bwlabel(foreground);
s = regionprops(L, 'Area');
%s(1)
area_values = [s.Area];
idx3 = find((1700 <= area_values) & (area_values <= 1900000));
ForF = ismember(L, idx3);
blobAnalysis = vision.BlobAnalysis('BoundingBoxOutputPort', true, ...
    'AreaOutputPort', false, 'CentroidOutputPort', false, ...
    'MinimumBlobArea', 1700,'MaximumCount',2);
bbox = step(blobAnalysis, ForF);
numperso = size(bbox,1);
    %if J>=90 && J<99
if numperso>0
for i=1: numperso
      blobVariance(i) = var(double(bbox(i,:)));
      [minimumE2,IE2] = max(blobVariance);
      result = insertShape(frame, 'Rectangle', bbox(IE2,:), 'Color', 'red');
      result = insertText(result, [10 10], numperso, 'BoxOpacity', 1, ...
          'FontSize', 14);
      blobVariance(i)=[];
      figure(J); imshow(result); title('Detected person');
      v = VideoWriter('video.avi');
      open(v);
      writeVideo(v,figure(J))
    end
  end
   close(v);
   end

can anyone please tell why the video result contains only one frame please

채택된 답변

Image Analyst
Image Analyst 2016년 1월 24일
What is "numperso"? Is it 1? That would explain it.
  댓글 수: 3
Image Analyst
Image Analyst 2016년 1월 24일
Since you open a new video for each frame and you write out the same number of frames as people, you will have a whole bunch of movies with only 1 or 2 frames. But like Walter pointed out, you're using the same name for each video so you're just overwriting the previous video at each frame and you end up with just one video, not lots of them. Not sure what you want to do so we're not sure how to recommend fixing it.
bay rem
bay rem 2016년 1월 24일
thank you soo much ,it's working now :)

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Walter Roberson
Walter Roberson 2016년 1월 24일
Do not create and open the videowriter object inside the loop: when you do that, you are overwriting the file over and over again.
  댓글 수: 1
bay rem
bay rem 2016년 1월 24일
THANK You soooo much , its working now :)

댓글을 달려면 로그인하십시오.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by