• 大小: 3KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-02
  • 语言: Matlab
  • 标签: matlab  人脸识别  

资源简介

matlab基于笔记本电脑的摄像头的人脸检测

资源截图

代码片段和文件信息

%% 实例化视频设备、人脸检测器和KLT对象跟踪器
vidObj = webcam;
faceDetector = vision.CascadeobjectDetector(); % 默认的人脸
tracker = MultiobjectTrackerKLT;%KLT对象跟踪器

%% 为帧大小信息设置框架
frame = snapshot(vidObj);%获取单帧的图像
frameSize = size(frame);

%% 创建一个视频播放器实例
videoPlayer  = vision.VideoPlayer(‘Position‘[200 100 fliplr(frameSize(1:2)+30)]);

%% 迭代直到我们成功地发现了一张脸
bboxes = [];
while isempty(bboxes)
    framergb = snapshot(vidObj);%获取单帧的图像
    frame = rgb2gray(framergb);%转灰度图
    bboxes = faceDetector.step(frame);
end
tracker.addDetections(frame bboxes);

%% 追踪
frameNumber = 0;
keepRunning = true;
disp(‘Press Ctrl-C to exit...‘);
while keepRunning
    
    framergb = snapshot(vidObj);%获取单帧的图像
    frame = rgb2gray(framergb);%转灰度图像
    
    if mod(frameNumber 10) == 0
        % (Re)detect faces.检测人脸
        %
        % NOTE: face detection is more expensive than imresize; we can
        % speed up the implementation by reacquiring faces using a
        % downsampled frame:
        %人脸检测比无大小的人脸检测更费力 ;我们可以通过使用下采样帧 重新获取人脸来加快实现加速:
        % bboxes = faceDetector.step(frame);
        bboxes = 2 * faceDetector.step(imresize(frame 0.5));
        if ~isempty(bboxes)
            tracker.addDetections(frame bboxes);
        end
    else
        % Track faces
        tracker.track(frame);
    end
    
    %显示边界框和跟踪点。
    displayframe = insertobjectAnnotation(framergb ‘rectangle‘...
        tracker.Bboxes tracker.BoxIds);
    displayframe = insertMarker(displayframe tracker.Points);
    videoPlayer.step(displayframe);
    
    frameNumber = frameNumber + 1;
end%循环

%% 清理
release(videoPlayer);


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        7966  2018-12-14 16:57  matlab基于笔记本电脑的摄像头的人脸检测\TrackerKLT.m
     文件        1796  2018-12-14 16:55  matlab基于笔记本电脑的摄像头的人脸检测\detectAndTrackFacesTest.m
     目录           0  2018-12-21 11:10  matlab基于笔记本电脑的摄像头的人脸检测\

评论

共有 条评论