天天看点

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;