Click here to Skip to main content
15,879,326 members
Please Sign up or sign in to vote.
3.00/5 (1 vote)
See more:
is there an algorithm or code for comparison between two images that return if the shapes in the two images are similar.
for example the two images have a hand shap but the two shapes are not similar in their sizes but their characteristics are similar.
Sergey Alexandrovich Kryukov 24-May-11 16:13pm    
Vector or bitmap? With vector it's too easy (but not 100% trivial).
graduate student 24-May-11 16:28pm    
the shapes are hand gestures, can i represent them using vector

1 solution

I strongly doubt that there are public domain, general purpose, algorithms that will do what you want. It's simply too complex and too specialized.

That said, however, I would google automated fingerprint and/or face recognition, which presents similar challanges, and someone may have published a paper on their solution.

The challenge you face is to find a way to extract information about features - faces, fingerprints, hand shapes can all be characterized by features - eye separation, mouth width, height from eye mid-line to mouth, etc.

Assuming you're just wanting to process hands, you probably need to extract features such as: location of each fingertip, finger web, width of each finger (segment), perhaps location of mid-point of each knuckle, width of wrist, etc.

If the same hand can be imaged at different apparent sizes, then normalizing on an easy to locate feature - such as distance between index finger tip and first/index finger web - will then give you a pair of identically-scaled images.

As the comments above say, if your image is a vector image, you're half way there. If you have a bitmap, you'll have to apply an edge detection algorithm (which you can find off-the-shelf) first.

Fingertip detection requires detecting the inside and outside of the hand outline, then identifying the pairs of (roughly parallel) lines that are the sides of fingers. These give a finger direction; the tip is then the point on the curved end of the finger that has the greatest extent in the direction of the finger midline.

Have fun. Sounds like you have an interesting project.
Share this answer

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900