Real Time face region of interested like Eyes nose and Mouth keypoints

조회 수: 1 (최근 30일)
SAMEER ahamed
SAMEER ahamed 2013년 11월 12일
편집: Walter Roberson 2014년 1월 27일
Hi,
using matlab R2013a live video processing detect face region of interest eyes , nose and mouth morphology segmented process , after that lip segmentation key points like upper , lower and centroid points . up to code i have tried to implement , now i need to convert gray2ind to skin color image , and extract lip key points . please let me know how i can achieve correct eyes detection's (Viola Jones Algorith Left and Right) and Lip Key Points?
faceImage = imcrop(I, [xb yb wb hb]);
bbox(i,:) =bbox(1,:);
[hue,s,v]=rgb2hsv(faceImage);
cb = 0.148* faceImage(:,:,1) - 0.291* faceImage(:,:,2) + 0.439 * faceImage(:,:,3) + 128;
cr = 0.439 * faceImage(:,:,1) - 0.368 * faceImage(:,:,2) -0.071 * faceImage(:,:,3) + 128;
[w h]=size(faceImage(:,:,1));
for i=1:w
for j=1:h
if 140<=cr(i,j) & cr(i,j)<=165 & 140<=cb(i,j) & cb(i,j)<=195 & 0.01<=hue(i,j) & hue(i,j)<=0.1
segment(i,j)=1;
else
segment(i,j)=0;
end
end
end
se = strel('disk',1);
se2 = strel('disk',1);
% se2 = strel('disk',3);
er = imerode(segment,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
skelImg = bwmorph(d2,'skel',Inf);
BW = edge(skelImg,'canny');
BW1 = bwareaopen(BW,40);
[X, MAP] = gray2ind(d2,64);
% RGB = ind2rgb(X,map);
% face(:,:,1) = double(faceImage(:,:,1)).*d2;
% face(:,:,2) = double(faceImage(:,:,2)).*d2;
% face(:,:,3) = double(faceImage(:,:,3)).*d2;
% face_a = uint8(face);
end
end
l_Eye = step(leftEye , faceImage);
x1 = l_Eye(1); y1 = l_Eye(2); w1 = l_Eye(3); h1 = l_Eye(4);
mboxPolygon =[x1, y1, x1+w1, y1,x1+w1,y1+h1, x1, y1+h1];
% l_Eye = [x1-1, y1-1, l_Eye(3), 2* (l_Eye(4))];
% for m = 1:size(l_Eye ,1)
leye = imcrop( faceImage ,[x1 y1 w1 h1]);
% end
R_Eye = step(rightEye,faceImage);
x2 = R_Eye(1); y2 = R_Eye(2); w2 = R_Eye(3); h2 = R_Eye(4);
% R_Eye = [x2-1, y2-1, R_Eye(3), 2* (R_Eye(4))];
% for m = 1:size(R_Eye ,1)
reye = imcrop( faceImage , [x2 y2 w2 h2]);
% end
BB=step(NoseDetect,faceImage);
x = BB(1,1); y = BB(1,2); w = BB(1,3); h = BB(1,4);
for i = 1:size(BB,1)
nose = imcrop(faceImage ,[x y w h]);
BB(i,:) =BB(1,:);
end
mregcrop = imcrop(faceImage, [1 floor(2*bbox(4)/3) bbox(3) floor(bbox(4))]);
mbox = step(mouthDetector, mregcrop);
x3 = mbox(1,1); y3 = mbox(1,2); w3 = mbox(1,3); h3 = mbox(1,4);
mouthcrop = imcrop(mregcrop ,[x3 y3 w3 h3]);

답변 (0개)

카테고리

Help CenterFile Exchange에서 Computer Vision Toolbox에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by