2016-03-02 4 views
0

Est-ce que quelqu'un sait combien de pixels correspondent pour chaque millimètre de profondeur dans les images prises à partir de kinect pour xbox360? J'utilise la résolution standard et les paramètres ...Conversion de profondeur Kinect de mm en pixels

Merci!

+0

Semble la même question pour moi: http://stackoverflow.com/questions/11784888/kinect-map-xy-pixel-coordinates-to-real-world-coordinates-using-depth – Farside

+0

Utilisez-vous kinect v1 ou kinect v2? –

+0

Je suppose que c'est v1 ... C'est pour la Xbox 360 ... – Vangelis

Répondre

0

1 pixel correspond à un nombre de millimètres qui dépend de la valeur de profondeur de ces pixels (c'est-à-dire son niveau de gris).

La façon la plus simple que vous pouvez obtenir la distance entre deux pixels dans une image en profondeur est de convertir les pixels (qui sont exprimés dans profondeur Espace) en coordonnées du monde réel (par exemple dans espace squelette) . Ensuite, vous pouvez calculer la distance entre ces points en utilisant une formule commune euclidean distance.

Donc, si deux pixels P et P , avec des valeurs de profondeur respectivement égal à D et D , on peut procéder comme suit:

DepthImagePoint dip1 = new DepthImagePoint(); 
dip1.X = P1.x; 
dip1.Y = P1.y; 
dip1.Depth = D1; 
DepthImagePoint dip2 = new DepthImagePoint(); 
dip2.X = P2.x; 
dip2.Y = P2.y; 
dip2.Depth = D2; 
SkeletonPoint sp1 = CoordinateMapper.MapDepthPointToSkeletonPoint(DepthImageFormat.Resolution640x480Fps30, dip1); 
SkeletonPoint sp2 = CoordinateMapper.MapDepthPointToSkeletonPoint(DepthImageFormat.Resolution640x480Fps30, dip2); 

double dist = euclideanDistance(sp1, sp2); 

Pour plus d'informations, voir Coordinate Spaces pour plus d'informations.