2011-06-22 4 views
13

J'essaie de commencer avec Kinect, et il a une caméra de détection de profondeur, mais je n'ai vu aucune indication sur la mesure de la largeur/hauteur/longueur. Est-ce qu'il s'agit de déterminer la distance entre un objet et la caméra (capteur de profondeur) et à cette distance le champ de vision du Kinect, puis de calculer le nombre de pixels que prend votre objet? Je voudrais être en mesure de faire un maillage ou quelque chose à partir d'un nuage de points et j'ai des problèmes pour savoir par où commencer et comment obtenir des mesures de largeur/hauteur appropriées pour les objets.Mesure dans Kinect

+0

avez le même problème que vous ... avez-vous trouvé une solution? Existe-t-il une formule ou quelque chose à mesurer ... – Killercode

+0

Je ne sais pas pourquoi personne d'autre ne l'a mentionné, mais les données de profondeur Kinect peuvent être traitées dans un ensemble de SkeletonPoints. Ces points sont dans l'espace du monde réel, ce qui signifie que, disons, une valeur z de 0,5 correspond à un point situé à un demi-mètre du capteur. Puisque vous pouvez obtenir les SkeletonPoints assez facilement, il devient alors nécessaire de déterminer quels points appartiennent à l'objet que vous voulez, et d'utiliser ceux-ci pour le mesurer. –

Répondre

7

Ceci est une tâche plutôt complexe et ne peut pas être résolue avec quelques paragraphes ici sur Stackoverflow. La raison en est que c'est beaucoup de connaissances qui s'appuie sur d'autres connaissances. Je voudrais commencer par lire sur Linear Algebra en utilisant par exemple l'excellent Rorres, et al. La création du maillage à partir du nuage de points est une tâche complexe et il n'y a pas d'algorithme de facto utilisé aujourd'hui.

L'approche la plus populaire semble être de créer d'abord un Truncated Signed Distance Function (TSDF) discrétisé puis d'utiliser par exemple. Marching Cubes pour obtenir un maillage. Un autre algorithme est le Delaunay triangulation.

Il existe également une implémentation C# fournie par le projet s-hull.

0

Je suis conscient que cela a été demandé il y a un certain temps, mais pour ce qu'il vaut la peine il ya un article sur channel9.msdn qui montre une méthode plus simple pour calculer la taille de l'utilisateur. J'imagine que vous pourriez utiliser une technique similaire avec HipLeft, HipCenter, et HipRight pour estimer la largeur.

Si vous suivez le project information URL depuis le lien, il contient des informations plus détaillées.