⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 faceinfo.m

📁 一个很好的人脸识别系统
💻 M
字号:
%                                 faceInfo.m%%                     By: Henry Chang and Ulises Robles% ---------------------------------------------------------------------% Gets some information of the region that might indicate a face% This function retrieves:% 1.-The cross-correlation value between the face region and the frontal% face model.% 2.-The model positioned on the face region alone% 3.- The rectangle coordinates of the region that might indicate a% face.% ----------------------------------------------------------------------function [ccorr, mfit, RectCoord] = faceInfo(mult, frontalmodel,ly,wx,cx, cy, angle)  % Resize the frontal model according to the height and width of the region  model_rot = imresize(frontalmodel,[ly wx],'bilinear');     % Rotate the model  model_rot = imrotate(model_rot,-angle,'bilinear');     % Get the coordinates of the rotated image  [l,r,u,d] = recsize(model_rot);    % Generate a new image that elects only the model region  model_rot=imcrop(model_rot,[l u (r-l) (d-u)]);      % Get rid of the boundary noise  model_rot = clean_model(model_rot);  bwmodel_rot = (model_rot >=1);  % Compute the center of the rotated face model   [modx,mody] =center(bwmodel_rot);   % Get the size of the rotated face model  [morig, norig] = size(bwmodel_rot);     % Create the grayscale image that will have the face model on it.     mfit = zeros(size(mult));  mfitbw = zeros(size(mult));  [limy, limx] = size(mfit);    % Compute the coordinates of where the face model is going to be in  % the main image    startx = cx-modx;  starty = cy-mody;  endx = startx + norig-1;  endy = starty + morig-1;	       % Check for boundaries of the image  startx = checklimit(startx,limx);  starty = checklimit(starty,limy);  endx = checklimit(endx,limx);  endy = checklimit(endy,limy);    % The following is to generate a new image having the same  % size as the original one, but with the face of the model on it  % rotated accordingly.   for i=starty:endy,   for j=startx:endx,     mfit(i,j) = model_rot(i-starty+1,j-startx+1);    end;  end;   % figure; % imshow(mfit,[0 255]);       % Get the cross-correlation value between the face model and the region% that might indicate a face in the imageccorr = corr2(mfit,mult)% Get the rectangle coordinates that will indicate the position of the% face in the image[l,r,u,d] = recsize(bwmodel_rot);				  % Compute the start point in x and y, as well as the width of the rectangle				    sx = startx+l;sy = starty+u;% Create the rectangle coordinates and return.RectCoord = [sx  sy (r-1) (d-u)]; % Auxiliar function:% ---------------------------------------------------------------% Verifies that the coordinate is between the image region.function newcoord = checklimit(coord,maxval)  newcoord = coord;  if (newcoord<1) newcoord=1; end;  if (newcoord>maxval) newcoord=maxval; end;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -