www.gusucode.com > 关于海航matlab和lingo的训练题 > Face-Eye-Detection/Eye_tracking/face.m

    % function [face,skin_region]=face(I);
% 
% skin_region=skin(I);
% 
% se = strel('disk',3);
% dil = imdilate(skin_region,se);        % morphologic dilation
% d2 = imfill(dil, 'holes');   % morphologic fill
% face = bwdist(~d2);            % computing minimal euclidean distance to non-white pixel 
% figure;imshow(face,[]);

function [face_a,skin_region]=face(I);

skin_region=skin(I);

se = strel('disk',5);
se2 = strel('disk',3);
er = imerode(skin_region,se2);
cl = imclose(er,se);
dil = imdilate(cl,se);        % morphologic dilation
dil = imdilate(dil,se); 
cl2 = imclose(dil,se);
d2 = imfill(cl2, 'holes');   % morphologic fill
facearea = bwdist(~d2);            % computing minimal euclidean distance to non-white pixel 
% figure;imshow(facearea,[]);

% imshow(d2);
face(:,:,1)=double(I(:,:,1)).*d2;   
face(:,:,2)=double(I(:,:,2)).*d2; 
face(:,:,3)=double(I(:,:,3)).*d2; 
face_a=uint8(face);
% figure;imshow(face_a);