5

I'm trying to detect the location of a fingertip from an image. I've been able to crop out a region in the image where it must have a fingertip, and extract the edges using Canny Edge Detector. However I'm stuck. Since my project description says I can't use the skin color for detection, I cannot find the exact contour of the finger, and will have to try to separate the fingertip with edges alone. Right now I'm thinking since the finger has a curved arch shape/letter U shape, maybe that could be used for detection. But since it has to be rotation/scale invariant, most algorithms I found so far are not up to it. Does anyone have an idea of how to do this? Thanks for anyone that responds! enter image description here

This is the result I have now. I want to put a bounding box around the index fingertip, or the highest fingertip, whichever is the easiest.

Feverbeaver
  • 157
  • 2
  • 12
  • possible duplicate of [Recognizing and extracting a pattern using OpenCV](http://stackoverflow.com/questions/20670752/recognizing-and-extracting-a-pattern-using-opencv) – lennon310 Dec 19 '13 at 02:22
  • The space between two fingers may also be an U shape – lennon310 Dec 19 '13 at 02:25
  • I deleted the previous one. Yeah that's why I'm only considering upside down u-shapes. I will be happy if I can find any U shapes at all. – Feverbeaver Dec 19 '13 at 02:26
  • can you robustly extract the contour of the hand? after that you could try fitting parabolas in each neighborhood along the contour. – Micka Dec 19 '13 at 08:26

1 Answers1

2

You may view the tip of U as a corner, and try corner detection method such as the Foerstner Algorithm that will position of a corner with sub-pixel accuracy, and Haris corner detector which has implementation included in the feature2D class in opencv.

There is a very clear and straighforward lecture on Haris corner detector that I would like to share with you.

lennon310
  • 12,503
  • 11
  • 43
  • 61