Remove the background of an image

8 vues (au cours des 30 derniers jours)
Sa rah
Sa rah le 26 Oct 2015
Modifié(e) : Aj_ti le 9 Oct 2016
How can I remove the background of this image including the shadow? Actually I want to work with only the face and without the illumination conditions.
  2 commentaires
Image Analyst
Image Analyst le 27 Oct 2015
Modifié(e) : Image Analyst le 27 Oct 2015
For just this image specifically (fairly easy)? Or for any image of a head against any varying or cluttered background (ranges from easy to difficult/impossible)? And exactly what does removal mean to you? Set to black? Crop out? Something else?
Sa rah
Sa rah le 27 Oct 2015
All my images are like this one, I don't have any varying or cluttered background. I want to remove the background, so the illumination conditions will disappear. I think I can set it to black, or just extract only the face to work with for a face recognition project.

Connectez-vous pour commenter.

Réponses (2)

Image Analyst
Image Analyst le 27 Oct 2015
First of all, fix your horrible image capture conditions. I mean, why have a strong light coming in from the side that creates huge dynamic range and strong deep shadows. Get a uniform background. This is an easy thing to do photographically. Secondly, use a color camera - it will be easier to find the uniform background in that case. Post an image like that once you have it and then we can proceed.
  1 commentaire
Sa rah
Sa rah le 27 Oct 2015
I didn't create this image, I have downloaded the Yale Database which contains these images and in fact, I have to work with this database. If I will remove that background photographically, it will take me a long time to do it, since the database contains 90 images!! That's why I need to do it automatically. So isn't there any solution to remove the illumination conditions with a Matlab code?

Connectez-vous pour commenter.


Aj_ti
Aj_ti le 9 Oct 2016
Modifié(e) : Aj_ti le 9 Oct 2016
I can't say this is the best way, but I'm currently apply this to crop the face images, removing the background and hair part as shown in the picture below:
This my reference image.
What I did is I crop (manually, using photo editor) 1 face image as a reference. Then, I apply feature point detection on the face and make 6 points as reference points (I'm using the points on eyes). Doing the same for other face images that you want to process to get the 6 points. Lastly, perform/calculate the geometric transformation as the code below and perform image warp.
[tform,inlierPtsDistorted,inlierPtsOriginal] = estimateGeometricTransform(matchedPtsDistorted,matchedPtsOriginal,'similarity');
showMatchedFeatures(ori,img,inlierPtsOriginal,inlierPtsDistorted);
outputView = imref2d(size(ori));
Ir = imwarp(img,tform,'OutputView',outputView);
This image shows points matching between reference image and probe image.
The result is as follow:
Regarding the illumination issue, histogram equalization or Retinex able to solve it. There are a lot of algorithm for illumination normalization.

Community Treasure Hunt

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

Start Hunting!

Translated by