I'd like to make an app that takes a video input (e.g. using your webcam), and dynamically render something fun on top of it based on its content. For example, I'll detect user's face in the video and change the color of his/her lips. Probably I can ask user to specify the contour of his/her lip using some closed curve with a few controller knobs, and track its change in live video stream, then render some colors on it. How hard is this? Ideally it would evolve into something bigger that allows you to do more content-dependent special effects, like those seen in the movie, but for now I just want to make a toy app that modifies real time video stream with a human face in it. I believe this kind of tools are already well developed in profession video softwares, but I want something fun and runnable on a normal computer, maybe even a phone (iphone, android, etc) with a user facing camera.
Although I am a programmer but I don't have any experience handling video, I was reading something about OpenCV library, looks it's a good start. But I am not sure about the feasibility of this. Is there anything else that might help with this task?
Thanks a lot.