Drawing a new coordinate system (B) based on other known coordinate system (A) in opencv 4.0.0
Hello ,
I have :
1- Rotation vector and translation vector of coordinate system (A) relative to camera (using Solvepnp()) .
2- constant Rotation "matrix" and translation vector between two coordinate systems ( A and B ).
3- 3d Point of the origin (B) relative to camera and the Pixel of (B).
I want only to translate a coordinate system (point A) and rotate it about Axis Z to make a coordinate (B) . so after multiplying matrices i obtained rotation vector and translation vector of coordinate system (B) relative to camera.
but how can i draw this coordinate ?
I used (cv::projectPoints()) for Drawing this coordinate (B) but the result was strange (see please in 2. image).
can you show, what you tried ? (code)
the coord system in the drawing seems to be wrong (x-axis pointing into the wrong direction)
From
solvePnP
you have the following transformation:P_cam = T_A2cam x P_A
.If you have the fixed transformation between A and B:
P_A = T_B2A x P_B
, to draw the frame B you will have to update the rotation matrix and the translation vector with the following:P_cam = T_A2cam x T_B2A x P_B
. WithP_cam
, you just have to project to the camera image plane using the intrinsic parameters.hello @MedoCV i was playing around and trying to implement something similar.. i get also some issues when i start rotating, i can just rotate upon the 'Z' axis.. on the other axis i get a bad projection, using null translation vector, identity matrix as cameraMatrix and no distortions coefficients..maybe some missing step?, could you post what you are trying?. I created a gist with my procedure.. https://gist.github.com/richipower/9c...