Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Thanks for the answer! Very helpuful. Sorry I took a long time to post how I solved my problem. I ended up using some of your equations and an additional one.

  • From the camera intrinsic parameters I obtained: fx, fy, cx, and cy.
  • From previous measurements I have the [object points] and their correspondent [image points] (used in solvePnP). I obtained the [image points] with 'mouse callback' function.
  • 'Rodrigues' function gets me the Rotation Matrix with the 'rvec' from 'solvePnP'.
  • 'HoughCircles' gives me the [u,v] of the hole center I'm identifying.
  • Converted the 2D image coordinate of the hole in the normalized camera frame. [x', y', 1] (above equation)
  • I made the scale factor 's' the distance from the surface to the camera sensor.
  • Multiply 's' by the normalize camera sensor. (equation above).
  • Finally, I use this equation to transfom the 3D coordinate in camera frame to my world frame.

'R^T' is the transposed rotation matrix and 't' is tvec.

image description

Results where pretty accurate. I've changed some things since then and I don't remember the correct tolerance but it was better than I expected. I think a different lens might help to, mine has a fish eye distortion and even the 'undistort' function doesn't fix it completely. The edges are no good.

Thanks again.