2

入力ビデオ ファイルの代わりに webcam で matlab vision.ForegroundDetector を使用する方法。

hsrc = vision.VideoFileReader('viptraffic.avi','ImageColorSpace','Intensity','VideoOutputDataType','uint8');
hfg = vision.ForegroundDetector(...
       'NumTrainingFrames', 5, ... % 5 because of short video
       'InitialVariance', 30*30); % initial standard deviation of 30
hblob = vision.BlobAnalysis(...
       'CentroidOutputPort', false, 'AreaOutputPort', false, ...
       'BoundingBoxOutputPort', true, ...
       'MinimumBlobAreaSource', 'Property', 'MinimumBlobArea', 250);
hsi = vision.ShapeInserter('BorderColor','White');

hsnk = vision.VideoPlayer();
while ~isDone(hsrc)
     frame  = step(hsrc);
     fgMask = step(hfg, frame);
     bbox   = step(hblob, fgMask);
     out    = step(hsi, frame, bbox); % draw bounding boxes around cars
     step(hsnk, out); % view results in the video player
end
release(hsnk);
release(hsrc);
4

1 に答える 1

3

Image Acquisition Toolbox にアクセスできる場合は、最初の行を次のように置き換えることができます。

hsrc = imaq.VideoDevice('winvideo', 1, 'MJPG_640x480', ...
    'ReturnedColorSpace','grayscale', 'ReturnedDataType','uint8');

ウェブカメラでサポートされているフォーマットに従ってパラメータを調整する必要があります。関数のドキュメントを参照してくださいimaq.VideoDevice

while trueまた、ビデオフィードが常に行われないため、ループテストを置き換えます:)

于 2013-12-16T16:11:49.267 に答える