How to crop detected face part?

3 views (last 30 days)
Sana Ullah
Sana Ullah on 3 Dec 2019
Commented: Sana Ullah on 3 Dec 2019
a=imread('C:\Users\SanaUllah\Documents\MATLAB\face.jpg');
a=imresize(a,1);
subplot(3,3,1);
imshow(a);
detector=vision.CascadeObjectDetector('mouth');
detector.MergeThreshold=60;
boundingbox=step(detector,a);
out=insertObjectAnnotation(a,'rectangle',boundingbox,'mouth Detected','LineWidth',3,'TextColor','black');
subplot(3,3,2);
imshow(out)
  1 Comment
Sana Ullah
Sana Ullah on 3 Dec 2019
image.jpeg
sorry i havent shown the detected mouth picture but
through above programming i have detected the mouth but now i have no idea how to crop the detected mouth.
please someone help me in this .

Sign in to comment.

Accepted Answer

Image Analyst
Image Analyst on 3 Dec 2019
Try this:
rgbImage = imread('face.jpeg');
rgbImage = imresize(rgbImage,1);
subplot(2, 3, 1);
imshow(rgbImage);
axis('on', 'image');
drawnow;
detector=vision.CascadeObjectDetector('mouth');
detector.MergeThreshold=60;
allBoundingBoxes=step(detector,rgbImage)
out = insertObjectAnnotation(rgbImage,'rectangle',allBoundingBoxes,'mouth Detected','LineWidth',3,'TextColor','black');
subplot(2, 3, 2);
imshow(out)
axis('on', 'image');
% Crop out each bounding box to a new image.
for k = 1 : size(allBoundingBoxes, 1)
% Crop the image.
thisBoundingBox = allBoundingBoxes(k, :);
croppedImage = imcrop(rgbImage, thisBoundingBox);
% Display it
subplot(2, 3, k+2);
imshow(croppedImage)
axis('on', 'image');
end
0000 Screenshot.png
  1 Comment
Sana Ullah
Sana Ullah on 3 Dec 2019
Ohh God this Answer is perfect ?. I have seen many of your answers on other problems. I was just waiting for you to guide me on this problem . Thank you so much Sir.

Sign in to comment.

More Answers (2)

KALYAN ACHARJYA
KALYAN ACHARJYA on 3 Dec 2019
Please see my this answer, it may help

Philippe Lebel
Philippe Lebel on 3 Dec 2019
Edited: Philippe Lebel on 3 Dec 2019
RGB Images are 3D matrices with dimenions = (resolution_x, resolution_y, 3)
I suppose the bounding box contains the face.
Try this:
my_face = a(boundingbox(1):boundingbox(1)+boundingbox(3),boundingbox(2):boundingbox(2)+boundingbox(4), : )

Categories

Find more on Convert Image Type in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!