0

I am using a square (whose size is known) to estimate translation vector between it and the camera. Firstly, the intrinsic camera parameters are calculated, then translation vector (x,y,z) are estimated using 4 points detected from the square.

distance = (x^2+y^2+z^2)^1/2
angle = asind(x/distance)

I found the estimated distance is accurate even in very far position, while the estimated angle is unstable if the distance is a little far. What's the reason?

Thanks.

m7913d
  • 10,244
  • 7
  • 28
  • 56
Jun Fang
  • 351
  • 1
  • 4
  • 21
  • There are better ways of computing angles, `asin` can be unstable in small numbers – Ander Biguri Oct 10 '17 at 17:38
  • What's the better way to compute angle? – Jun Fang Oct 11 '17 at 00:33
  • Depends... Your angle looks a bit weird, why x/distance? you are computing the angles between what and what? For the angle between 2 vectors, the robust way is: `angle = atan2(length(cross_product(a,b)), dot_product(a,b))` – Ander Biguri Oct 11 '17 at 09:01

0 Answers0