On the way to implement finger tip point detection I thought it would be a good idea to first know the hand's orientation. Here is what I tried:
Step 1: Find the convex hull of the hand shape (with the Graham Scan algorithm). This is the almost invisible white line around the hand in the video.
Step 2: Use linear regression to find the line function that minimizes the sum of distances to the points in the hull. The second, yellow line is just a helper to show all 4 directions.
And here is the result:
For step 2 I will try the Rotating Calipers algorithm when I have time to implement it (I didn't find any free c# math library that would do this for me). This algorithm calculates the minimum area rectangle that contains all points of the hand shape.