I have created a video and exported it as individual photos. I currently have around 200 of them. I am looking for an editing tool that will automatically detect the face in each image and apply an effect to it (put something on top of it). Is this possible? If so how?
Do you mind doing some (simple) coding? The OpenCV computer vision library includes face detection routines, and there's a Python interface.
And here's a quick howto on doing it with python, including sample code showing someone doing exactly what you want — the image is the input, and then ImageMagick is used to draw a square around the face.
Picasa has facial recognition built in and and stores the facial rectangle in a hidden picasa.ini file in the same folder as the picture. This file contains a line that looks like:
faces=rect64(328f08a1ae66e711),e5013ddaca3d0567 That number inside the rect64() is a 64-bit hexadecimal number and can be transformed into 4 16 bit bounding corners I believe. You can take that information and transform it into a into a rectangle that defines the facial area. Details on how to do that appear to be able to be found here.
You could then script ImageMagick or GIMP into overlaying the previously defined area in the picture with your desired image.
These are obviously not detailed instructions, but I don't think it'd be too difficult to hack together.