基于MATLAB的人脸检测代码
时间: 2024-10-25 19:12:49 浏览: 15
在MATLAB中,常用的人脸检测方法之一是使用`vision.CascadeObjectDetector`函数,结合开源的Viola-Jones级联分类器(也称为Haar特征分类器)。以下是一个简单的示例代码,用于实时从摄像头捕获图像并进行人脸检测:
```matlab
% 加载预训练的人脸检测器
faceDetector = vision.CascadeObjectDetector('haarcascade_frontalface_alt.xml');
% 初始化视频读取器
video = videoinput('winvideo', 1); % 使用内置摄像头
% 开始循环读取并显示视频帧
while true
% 读取当前帧
frame = getframe(video);
% 转换为灰度图便于处理
grayFrame = rgb2gray(frame.Image);
% 进行人脸检测
bbox = step(faceDetector, grayFrame);
% 如果有检测到人脸
if ~isempty(bbox)
% 绘制矩形框表示人脸区域
rectangle(grayFrame, bbox, 'EdgeColor', 'r', 'LineWidth', 2);
end
% 显示结果
imshow(grayFrame);
drawnow;
% 按空格键暂停或继续检测
pause(0.1); % 或者设置更短的时间间隔
end
% 关闭视频资源
release(video);
```
注意这个例子需要安装了OpenCV for MATLAB的插件,并且路径中的`haarcascade_frontalface_alt.xml`文件是从OpenCV的库中获取的。你可以根据实际需求替换这个分类器。
阅读全文