I've looked all over the web and can't seem to find a way to do so. I've been stuck on this for a few days now with no clear path to proceed.UPDATE 2 years later a solution was found: To track a hand using a single camera without depth information is a serious task and topic of ongoing scientific work. caveat: the background shouldn't contain skin colored things like wood.His original paper uses two webcams but has much worse tracking. "6d hands: markerless hand-tracking for computer aided design." Proceedings of the 24th annual ACM symposium on User interface software and technology. Another option (again if using "more" than a single webcam is possible), is to use a IR emitter.Your hand reflects IR light quite well whereas the background does not.open-source project has a "shape predictor" that, once properly trained, does exactly what I need: it guesstimates (with a pretty satisfactory accuracy) the "pose".A "pose" is loosely defined as "whatever you train it to recognize as a pose" by training it with a set of images, annotated with the shapes to extract from them.My suggestion, given your constraints, would be to use something like this: is a tutorial for using it for face detection: Detection?highlight=(facial)|(recognition) The problem you have described is quite difficult, and I'm not sure that trying to do it using only a webcam is a reasonable plan, but this is probably your best bet. highlight=load#cascadeclassifier-load), you will need to train the classifier with something like this: Even though you don't require the depth information for your use, having this information makes it easier for the library to identify a hand.
in image processing the process is called "skeletonization" or "morphological skeleton". here is a link that implements skeletonization in opencv and c here is a link for skeletonization in opencv and python hope that helps :) --- EDIT ---- i would highly recommend that you go through these papers by Deva Ramanan (scroll down after visiting the linked page): The most common approach can be seen in the following youtube video. v=x ML2S6bv Mw I This method is not quite robust, as it tends to fail if the hand is rotated to much (eg; if the camera is looking at the side of the hand or at a partially bent hand).If you do not mind using two camera's you can look into the work Robert Wang.His current company (3Gear Systems) uses this technology, augmented with a kinect, to provide tracking.By adding a filter to the webcam that filters normal light (and removing the standard filter that does the opposite) you can create a quite effective hand tracking.
The advantage of this method is that the segmentation of the hand from the background is much simpler.
All that being said; I think the Kinect is your best option in this.