how can i correct this code to write a video
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
bay rem
am 24 Jan. 2016
Kommentiert: bay rem
am 24 Jan. 2016
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
0 Kommentare
Akzeptierte Antwort
Image Analyst
am 24 Jan. 2016
What is "numperso"? Is it 1? That would explain it.
3 Kommentare
Image Analyst
am 24 Jan. 2016
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.
Weitere Antworten (1)
Walter Roberson
am 24 Jan. 2016
Do not create and open the videowriter object inside the loop: when you do that, you are overwriting the file over and over again.
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!