Paramètres intrinsèques Kinect du champ de vision
Microsoft état que le champ de l'angle de vue pour le Kinect de 43 degrés verticale et 57 horizontal (dit ici) . Compte tenu de ces éléments, nous pouvons calculer les paramètres intrinsèques c'est à dire le point focal et le centre de projection? Je suppose que le centre de projection peut être donné en (0,0,0)?
Grâce
EDIT: quelques informations sur ce que je suis en train de faire
J'ai un jeu de données d'images enregistrées avec un Kinect, je suis en train de convertir des positions des pixels (x_screen,y_screen et z_world (en mm)) du monde réel, coordonnées.
Si je sais que la caméra est placée au point (x',y',z') dans le monde réel, système de coordonnées, est-il suffisant pour trouver le monde réel les coordonnées de la manière suivante:
x_world = (x_screen - c_x) * z_world /f_x
y_world = (y_screen - c_y) * z_world /f_y
où c_x = x'
et c_y = y'
et f_x, f_y
est la distance focale? Et aussi, comment puis-je trouver la distance focale compte tenu de la connaissance du champ de vue?
Grâce
source d'informationauteur Aly
Vous devez vous connecter pour publier un commentaire.
Si vous correspondent le monde de l'origine (0,0,0) avec le focus de la caméra (centre de la projection comme vous l'appelez) et vous assumez la caméra est orientée le long de l'axe z positif, alors la situation se présente ainsi dans le plan x=0:
Ici les axes z (axe horizontal) et y (vertical). L'indice
v
est pour "fenêtre" ou de l'écran, etw
est pour monde.Si je reçois votre sens correctement, vous savez
h
la hauteur de l'écran en pixels. Aussi,zw
yv
etxv
. Vous voulez savoiryw
etxw
. Noter que ce calcul a (0,0) dans le centre de la fenêtre. Ajuster de façon appropriée pour l'habituel écran du système de coordonnées (0,0) dans le coin supérieur gauche. Appliquer un peu de trigo:et les triangles semblables
Résoudre:
Ceci suppose la "distance focale de la caméra est égale dans la direction x. Il n'a pas à être. Pour une meilleure précision dans
xw
vous devez recalculer avecf = w /2 tan(57/2)
oùw
est la largeur de l'écran. C'est parce quef
n'est pas un vrai de la longueur focale. C'est juste une constante de conversion. Si les pixels de l'appareil photo sont d'équerre et de l'optique ont pas d'aberrations, ces deuxf
calculs donnent le même résultat.NB: supprimé (impropre) de l'article l'OP semblait dire qu'il n'est pas zw c'est connu, mais la longueur D de l'hypoténuse: origine (xw,yw,zw). Dans ce cas, il suffit de noter
zw = D * f /sqrt(xv² + yv² + f²)
(en supposant que la caméra de les pixels sont carrés; certains d'échelle est nécessaire, sinon). Ils vous pouvez procéder comme ci-dessus.je ne peux pas ajouter de commentaire depuis que j'ai un trop faible réputation ici.
Mais je rappelle que l'angle de la caméra du kinect n'est pas en général le même
comme dans une photo normale de la caméra, en raison du flux vidéo format et sa puce de capteur. Par conséquent, le SDK de mentionner 57 ° et 43 degrés, peut se référer à différents degré de résolution pour la hauteur et la largeur.
il envoie une image de 320 x 240 pixels et les pixels se rapportent à
Z est connu votre angle est connu, donc je supose loi des sinus, vous pouvez obtenir en bonne emplacements, puis https://en.wikipedia.org/wiki/Law_of_sines