2019-11-28 03:12:28 -0600 | received badge | ● Notable Question (source) |
2019-02-26 17:44:09 -0600 | received badge | ● Popular Question (source) |
2017-08-03 10:01:21 -0600 | received badge | ● Student (source) |
2017-08-03 09:55:38 -0600 | asked a question | Obtain Camera Pose and camera real world position using SolvePnP C++ I am trying to measure the pose of a camera and I have done the following.
Have taken the top left corner of the square as my origin and given the world points in the following order(x,y)or(col,row): (0,0),(-12.8,0),(-12.8,12.8),(0,12.8) - in cms
cam_worl_pos = - inverse(R) * tvec. (This formula I have verified in many blogs and also this makes sense)
My doubt is, if I am able to project back the 3-D world point to image plane using rvec and tvec with (3 pixel error on X-axis and almost no error on Y axis, hope it is not too bad), then why am I not getting the camera position in world frame right. Also, I have a doubt on SolvPnP rvec and tvec solution, they might be one of the multiple solutions, but not the one which I want. How do I get the right rvec and tvec from SolvPnp or any other suggestions to get rvec and tvec would also be helpful. EDITS : Image Size - 720(row) * 1280(col) Calibration pattern seen by camera The link has the picture of calibration pattern used. New Edits World coordinate system following Right Hand Rule and the corresponding points detected in the image The left square is my world coordinate system which is a square of sides 12.8cm, the top left corner is the world origin (0,0). The red points are the 3-D world points detected in the image. The image seen is after radial distortion correction of a fish eye lens camera. camera parameters OpenCV C++ code: (more) |