joaquimrocha / Skeltrack

A Free Software skeleton tracking library
GNU Lesser General Public License v3.0
294 stars 63 forks source link

Update and rename skeltrack-skeleton.c to changed_skeltrack-skeleton.c (Linear Extrapolation) #27

Open HarshitJn opened 8 years ago

HarshitJn commented 8 years ago

Made changes to handle the cases when hand gets close to torso and thus their nodes get connected and so previously hand was returned as null. Now in such cases when hand is NULL previous two frames are looked and using linear extrapolation the new position is calculated. Also handled the case when hands were crossed ie. when right hand is on left side of left shoulder and vice versa.(Earlier it connected right hand to left shoulder in such case).

Left shows before and right shows after implementing linear extrapolation method:

torso_occluded_by_hand hand_node_gets_connected crossed_hand

joaquimrocha commented 8 years ago

Hi @HarshitJn , pretty cool changes! And thanks for all the screenshots. On the code side, I would like to ask you if it's possible to clean the patches a little bit before I integrate them. Please do not send new files (like changed_*), instead, send direct patches on the exiting files. Remember to use the same indentation, coding style, remove any commented out blocks, etc.

When you have a cleaner version I can review it and comment on the code blocks more directly.

Kind regards,

HarshitJn commented 8 years ago

Cleared the patches and worked upon indentation and coding style.

joaquimrocha commented 8 years ago

Hi @HarshitJn ,

Thanks for the cleanup. Here a trick to make these two patches into one (as they should be): $ git rebase -i HEAD^^^ then, on the last commit (bottom one, which is the most recent), replace "pick" by "s" (squash), this will join the two commits and open the editor allowing you to edit the commit message, after you save the message, check with git log that you have now only one commit.

BTW, remember that "if(...)" should be "if (...)" instead. Also, Skeltrack is based on glib, so free should be g_free, malloc should be g_new. Check it out here: https://developer.gnome.org/glib/unstable/glib-Memory-Allocation.html

Cheers,