天天看點

matlab攝像頭實時人臉檢測,一個關于攝像頭實時人臉檢測的程式

該樓層疑似違規已被系統折疊 隐藏此樓檢視此樓

我是matlab新手,最近寫個用攝像頭進行人臉識别的程式,遇到兩個問題:

1)我是用的CascadeObjectDetector對象識别的人臉,但是程式有錯,我搞不明白為什麼有錯,據我觀察bbox,也就是應該識别出來人臉的框,每次都擷取不到資料,錯誤提示如下:

Error using ShapeInserter/step

The Pts input data type must be integer.

Error in USB1 (line 19)

Frame=step(boxInserter,Frame,bbox);

2)每次這程式運作一個後,我想再運作一次,它就提示攝像頭已使用,錯誤提示如下:

Error in USB1 (line 4)

vid=videoinput('winvideo', 1,'MJPG_320x240');

我比較小白,希望大神可以指導下,3Q,下面是我的代碼:

clear all;

clc;

faceDetector = vision.CascadeObjectDetector();

vid=videoinput('winvideo', 1, 'MJPG_320x240');

src=getselectedsource(vid);

vid.FramesPerTrigger = inf;

src.FrameRate = '30.0000';

videoPlayer=vision.VideoPlayer;

preview(vid);

start(vid);

i=0;

while(i<300)

Frame=getsnapshot(vid);

%%%%%每一幀處理開始

bbox=step(faceDetector,Frame);

boxInserter=vision.ShapeInserter('BorderColor','Custom',...

'CustomBorderColor',[255 255 0]);

Frame=step(boxInserter,Frame,bbox);

%%%%%處理結束

step(videoPlayer,Frame);

i=i+1;

end

stoppreview(vid);

stop(vid);

delete(vid);

clear vid;