How to extract lip region from facial features

Hi,
I am newbie for matlab , from matlab forums i have tried to get lip region ,but exact shape i cannot get .so please let me know where i have make mistake let me know,below code followed?
YIQ = rgb2ntsc(hue1);
Y1 = YIQ(:,:,1);
I1 = YIQ(:,:,2);
Q = YIQ(:,:,3);
J = imadjust(Y1);
t = graythresh(blue_Image);
imCoin = (red_Image > hueThresholdHigh);
K = medfilt2(red_Image);
[level1 EM]= graythresh(K);
BW_lip = im2bw(red_Image);
Binary_Hue = red_Image > T;
level = graythresh(J);
binary_Image = im2bw(J,level);
[imx,imy]=size(binary_Image);
bw_Fill= imfill(binary_Image,'holes');
labeledImage = bwlabel(bw_Fill, 8);
blobMeasurements = regionprops(labeledImage, 'area');
areas = [blobMeasurements.Area];
[maxArea largestBlobIndex] = max(areas);
bw_area = bwareaopen(bw_Fill ,2500);
BWnobord = imclearborder(bw_area, 4);
seD = strel('disk',1);
% BWfinal = imerode(BWnobord,seD);
BWfinal = imerode(BWnobord,seD);
BWoutline = bwperim(bw_area);
Segout = mouthcrop;
Segout(BWoutline) = 255;

3 Comments

I have another reference link please look at reply me me how to get lip region Visual Reading also i have tried below code but not get clear any solution ?
if true
% code
hautoth = vision.Autothresholder;
img = step(hcsc, mouthcrop);
img = im2single(rgb2gray(img));
bin = step(hautoth,img);
binaryImage = imfill(bin, 'holes');
binaryImage = bwareaopen(binaryImage,500);
labeledImage = bwlabel(binaryImage, 8);
blobMeasurements = regionprops(labeledImage, 'BoundingBox');
numberOfBlobs = size(blobMeasurements, 1);
% subplot(3, 3, 5); imagesc(mouthcrop);
% title('Outlines, from bwboundaries()'); axis square;
% hold on
% for k = 1 : numberOfBlobs
% thisBlobsBoundingBox = blobMeasurements(k).BoundingBox;
% rectangle('Position',thisBlobsBoundingBox,'EdgeColor','r','LineWidth',2);
% end
% hold off
end
I don't have the computer vision system toolbox so I can't try that code. The lips you're using are very dark and very low contrast. They're hardly any different in color than the surrounding skin so I'm not surprised that you're having trouble. You're not going to solve it with any simple code that's only a dozen lines long.
Thanks for reply me ,please let me know how to separate binary lip region from mouth skin . please let me know if any idea ?

Sign in to comment.

 Accepted Answer

Image Analyst
Image Analyst on 2 Jan 2014
Edited: Image Analyst on 2 Jan 2014
I have told you here in this link. Basically no one here is a lip reading expert, and there's no lip reading toolbox, so I pointed you to a place where you will find algorithms from lip reading experts. I know it's a little bit of work on your part to contact the authors or to try to write code to implement their algorithms, but since you don't seem to want to do it yourself, that's your only other option, unless you want to hire some consultant or university to do it for you. Good luck.

2 Comments

Dear Image Analyst, is there a code where i want to track the lip movement? i dont want to read lips, i just want to track them while they are moving in real time. Is that possible?
Sure. You can use deep learning - that's what Apple does with their new animoje app. I haven't done it personally so I don't have code to give you.

Sign in to comment.

More Answers (1)

sir this is saravanan from chennai.. i need matlab code for extracting skin region from image using any filter

Community Treasure Hunt

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

Start Hunting!