1 | initial version |
No, Aruco is the best choice in OpenCV.
Yes, it is still important. You very much need the camera matrix and distortion.
You should. This is the proper way to do it. However, you simply reverse the pose to get the position and orientation of the marker relative to the camera, instead of the camera relative to the marker. The code is pretty easy.
Mat R;
Rodrigues(rvec, R);
R = R.t();
tvec = -R*tvec;
Rodrigues(R, rvec);
NOTE: the detectPose functions return the transformation from board coordinates to camera coordinates. This reverses that so camera coordinates become board coordinates. I'm pretty sure what you want is already what you get. If you are defining a world system, you will find the transformation from the camera to the world system, and chain them together like any other coordinate transforms.
Yes, one of the corners is the origin of the marker, I'm pretty sure it's the top-left of the marker or pattern.