##

    #!/usr/bin/python
    # The contents of this file are in the public domain. See LICENSE_FOR_EXAMPLE_PROGRAMS.txt
    #
    #   This example program shows how to find frontal human faces in an image.  In
    #   particular, it shows how you can take a list of images from the command
    #   line and display each on the screen with red boxes overlaid on each human
    #   face.
    #
    #   The examples/faces folder contains some jpg images of people.  You can run
    #   this program on them and see the detections by executing the following command:
    #       ./face_detector.py ../examples/faces/*.jpg
    #
    #   This face detector is made using the now classic Histogram of Oriented
    #   Gradients (HOG) feature combined with a linear classifier, an image
    #   pyramid, and sliding window detection scheme.  This type of object detector
    #   is fairly general and capable of detecting many types of semi-rigid objects
    #   in addition to human faces.  Therefore, if you are interested in making
    #   your own object detectors then read the train_object_detector.py example
    #   program.
    #
    #
    # COMPILING THE DLIB PYTHON INTERFACE
    #   Dlib comes with a compiled python interface for python 2.7 on MS Windows.  If
    #   you are using another python version or operating system then you need to
    #   compile the dlib python interface before you can use this file.  To do this,
    #   run compile_dlib_python_module.bat.  This should work on any operating system
    #   so long as you have CMake and boost-python installed.  On Ubuntu, this can be
    #   done easily by running the command:  sudo apt-get install libboost-python-dev cmake

    import dlib, sys
    from skimage import io

    detector = dlib.get_frontal_face_detector()
    win = dlib.image_window()

    for f in sys.argv[1:]:
        print "processing file: ", f
        img = io.imread(f)
        # The 1 in the second argument indicates that we should upsample the image
        # 1 time.  This will make everything bigger and allow us to detect more
        # faces.
        dets = detector(img,1)
        print "number of faces detected: ", len(dets)
        for d in dets:
            print "  detection position left,top,right,bottom:", d.left(), d.top(), d.right(), d.bottom()

        win.clear_overlay()
        win.set_image(img)
        win.add_overlay(dets)
        raw_input("Hit enter to continue")