Как использовать Matlab Vision.ForegroundDetector с веб-камерой
Как использовать 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);
1 ответ
Решение
Если у вас есть доступ к панели инструментов получения изображений, вы можете заменить первую строку на:
hsrc = imaq.VideoDevice('winvideo', 1, 'MJPG_640x480', ...
'ReturnedColorSpace','grayscale', 'ReturnedDataType','uint8');
Вам нужно будет настроить параметры в соответствии с поддерживаемыми форматами вашей веб-камерой. Просто обратитесь к документации imaq.VideoDevice
функция.
Также замените тест цикла просто while true
так как видео подача всегда не делается:)