Basic Python 2.7 script using openCV, that automatically detects and crops faces from batches of photos.
Perfect for batch work for ID cards or profile pictures, will output 500px wide square images, centered around the biggest face detected. It can also add a touch of auto gamma correction.
The script will process all .jpg files in the /photos directory. The cropped files are placed in photos/crop, and originals are moved to photos/bkp.
If it can't find a face in the picture, it'll simply leave it in /photos.
The script works on openCV 2.4.9 and python 2.7.10. It has not been tested otherwise. For now, it also artificially restricts filetype as jpg and output size as 500px. These values can easily be tweaked in autocrop.py.
Check out:
- http://docs.opencv.org/master/d7/d8b/tutorial_py_face_detection.html#gsc.tab=0
- http://docs.opencv.org/master/d5/daf/tutorial_py_histogram_equalization.html#gsc.tab=0
Adapted from: