Crop video using ForegroundDetector?
    10 ビュー (過去 30 日間)
  
       古いコメントを表示
    
Hello,
I'm using ForegroundDetector to detect a moving object from a fixed camera video. I wondered if there is any way to use this to make a new video with everything but the object removed? I'm using this code from here and it can find the object perfectly, but I would like to produce a new video with everything outside the bounding box made black. Anyone have any ideas?
Thank you :)
videoSource = vision.VideoFileReader('moving.avi','ImageColorSpace','Intensity','VideoOutputDataType','uint8');
detector = vision.ForegroundDetector(...
       'NumTrainingFrames', 50, ... 
       'InitialVariance', 30*30); % initial standard deviation of 30
blob = vision.BlobAnalysis(...
       'CentroidOutputPort', false, 'AreaOutputPort', false, ...
       'BoundingBoxOutputPort', true, ...
       'MinimumBlobAreaSource', 'Property', 'MinimumBlobArea', 250);
shapeInserter = vision.ShapeInserter('BorderColor','White');
videoPlayer = vision.VideoPlayer();
while ~isDone(videoSource)
     frame  = step(videoSource);
     fgMask = step(detector, frame);
     bbox   = step(blob, fgMask);
     out    = step(shapeInserter, frame, bbox); % draw bounding boxes around object
     step(videoPlayer, out); % view results in the video player
end
release(videoPlayer);
release(videoSource);
0 件のコメント
回答 (1 件)
  Dima Lisin
    
 2015 年 3 月 1 日
        You can do that using the foreground mask:
frameWithNoBackground = frame .* fgMask;
0 件のコメント
参考
カテゴリ
				Help Center および File Exchange で Computer Vision with Simulink についてさらに検索
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

