Crop video using ForegroundDetector?
4 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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 commentaires
Réponses (1)
Dima Lisin
le 1 Mar 2015
You can do that using the foreground mask:
frameWithNoBackground = frame .* fgMask;
0 commentaires
Voir également
Catégories
En savoir plus sur Tracking and Motion Estimation dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!