2012-10-24 7 views
0

Je souhaite projeter des images sur un mur à l'aide d'un appareil photo. Les images, essentiellement, doivent évoluer en fonction de la distance entre la caméra et le mur.appareil photo: projection d'image

D'abord, j'ai fait des calculs de distance en utilisant la trigonométrie du triangle rectangle (visionHeight * Math.tan (a)). Ce n'est pas 100% exact mais proche des valeurs réelles. Deuxièmement, en connaissant la distance, nous pouvons essayer de comprendre toute la hauteur du panorama en utilisant la formule de trigonométrie triangle isocèle: c = a * tan (A); A = mCamera.getParameters().getVerticalViewAngle(); Les résultats sont environ 30% plus grands que la hauteur réelle de l'objet et c'est un peu bizarre.

double panoramaHeight = (distance * Math.tan(mCamera.getParameters().getVerticalViewAngle()/2 * 0.0174532925)) * 2;

J'ai aussi essayé déterminer les angles en utilisant la formule du même triangle isocèle, mais maintenant connaître la distance et la hauteur. J'ai des angles de 28 et 48 degrés.

Cela signifie-t-il que la caméra Android ne rend pas tout ce qu'elle tire? Et, quelles autres solutions pouvez-vous suggérer?

enter image description here

Répondre

0

recherche sur le Web montre que les valeurs renvoyées par getVerticalViewAngle() ne peut pas être aveuglément confiance sur tous les appareils; J'ai également pris en compte le niveau de zoom et le rapport d'aspect, voir Determine angle of view of smartphone camera

+0

J'ai mesuré l'angle approximatif en tournant la bordure inférieure du panorama de la caméra vers le haut puis en récupérant simplement les valeurs de la matrice de rotation et de l'orientation delta (l. angle - angle u). getVerticalViewAngle fait tout correctement car sa valeur est liée à la résolution de la caméra - pas à celle de l'affichage. Donc, quand j'ai mesuré panoramaHeight et la valeur semblait trop grande, elle était correcte - je ne pouvais pas voir toute l'image de la caméra sur mon écran parce que mon écran n'a pas assez de pixels pour tout rendre - donc il coupe simplement l'image . C'est une hypothèse, cependant. – midnight

+0

Je pensais que vous étiez en train de comparer la hauteur d'un objet connu sur le mur. Mais si vous regardez l'ensemble de l'image, vous faites face aux astuces de l'appareil photo pour prendre en charge l'aperçu 16: 9 (ou, pour être plus précis, 800x480). De nombreuses caméras, comme décrit dans le message [référencé ci-dessus] (http://stackoverflow.com/questions/3261776/determine-angle-of-view-of-smartphone-camera), utilisent un capteur 4: 3 et recadrent le résultat verticalement . –

Questions connexes