资源简介

使用matlab打开笔记本自带的摄像头进行实时人脸识别。修改了matlab示例程序,具有较好的实时性和鲁棒性,能够在光线充足的环境下稳定识别并跟踪。注:若未在matlab中使用过摄像头,需要在matlab中首先手动联网下载安装笔记本自带摄像头的支持包,否则可能无法识别自带的摄像头

资源截图

代码片段和文件信息

% 2017-05-22 by LSS
% Live Face Detection
% Need to manually install support package (OS Generic Video Interface)
vidDevice = imaq.VideoDevice(‘winvideo‘ 1 ‘MJPG_320x240‘ ...
                             ‘ROI‘ [1 1 320 240] ...
                             ‘ReturnedColorSpace‘ ‘rgb‘ ...
                             ‘DeviceProperties.Brightness‘ 8 ...
                             ‘DeviceProperties.Sharpness‘ 8);
hVideoIn = vision.VideoPlayer;
hVideoIn.Name  = ‘Input Video‘;
hVideoOut = vision.VideoPlayer;
hVideoOut.Name  = ‘Output Video‘;
faceDetector = vision.CascadeobjectDetector();
pointTracker = vision.PointTracker(‘MaxBidirectionalError‘ 2);
numPts = 0;

while 1
    videoframe = step(vidDevice);
    videoframeOutput = videoframe;
    videoframeGray = rgb2gray(videoframe);
    if numPts < 10
        % Detection mode.
        bbox = faceDetector.step(videoframeGray);
        if ~isempty(bbox)
            % Find corner points inside the detected region.
            points = detectMinEigenFeatures(videoframeGray ‘ROI‘ bbox(1 :));
            % Re-initialize the point tracker.
            xyPoints = points.Location;
            numPts = size(xyPoints1);
            release(pointTracker);
            initialize(pointTracker xyPoints videoframeGray);
            % Save a copy of the points.
            oldPoints = xyPoints;
            % Convert the rectangle represented as [x y w h] into an
            % M-by-2 matrix of [xy] coordinates of the four corners. This
            % is needed to be able to transform the bounding box to display
            % the orientation of the face.
            bboxPoints = bbox2points(bbox(1 :));
            % Convert the box corners into the [x1 y1 x2 y2 x3 y3 x4 y4]
            % format required by insertShape.
            bboxPolygon = reshape(bboxPoints‘

评论

共有 条评论