Wie können wir die Entfernung zwischen Objekt und Android-Handy-Kamera messen?

8

Ich möchte den Abstand zwischen der Kamera und dem erkannten Objekt berechnen. Dafür habe ich viele Methoden ausprobiert. Ich habe versucht den Winkel zwischen dem Objekt und der Kamera mittels Beschleunigungsmesser zu finden und dann

zu verwenden

d = h * tan a

h ist die Höhe von der Basis im Allgemeinen, was 1,4

ist

und ich habe versucht, den Winkel mit der Methode get orientation zu berechnen. Bitte lassen Sie mich wissen, wo ich falsch mache. Es war mehr als 2 Tage, die ich mit dieser Anforderung kämpfte. Wir haben uns verschiedene Kameraanwendungen angeschaut, die im Android Store verfügbar sind und versucht haben, die Funktionalität derselben zu verstehen, aber nichts war fruchtbar.

%Vor%     
Rats Tyagi 11.04.2013, 13:15
quelle

2 Antworten

5

Ihre getRotationMatrix gibt wahrscheinlich false zurück! Sie sollten die Werte in Ihre eigenen Vektoren kopieren, damit sie nicht durcheinander geraten! Verwenden Sie dazu die clone () -Methode!

%Vor%

Mit Ihrem Code und dieser Änderung konnte ich die Azimut / Pitch / Roll-Werte erhalten, ohne diese Änderung gibt das Erfolgs-Flag false zurück:

%Vor%

Sie sollten den PITCH-Wert verwenden, wenn Sie das Telefon im Hochformat halten. Wenn Sie das Telefon im Querformat halten, sollten Sie den ROLL-Wert verwenden.

Wenn Sie das Telefon in einer Höhe von 1,4 halten, haben Sie:

%Vor%

Bitte beachten Sie, dass Sie RADIANS und nicht DEGREES in der Math.tan-Funktion verwenden sollten.

Ich habe hier getestet und die Werte scheinen gültig zu sein!

    
thiagolr 20.05.2013, 17:04
quelle
1

Der endgültige Code ist

%Vor%     
Rats Tyagi 30.05.2013 06:43
quelle