![]() | 1 | initial version |
The maths should be the following.
Given the color K_c
and depth K_d
intrinsic parameters:
Given the homogeneous transformation between the color and depth frames:
The previous matrix allows transforming a 3D point expressed in one frame to another frame:
To get the corresponding RGB color for a given 3D point:
(Skip this as you already have the [X,Y,Z] coordinates. Sometimes, you only have the depth map.)
Get the full 3D coordinate from the depth value Z_d
(using the depth intrinsic parameters) for a given [u,v]
coordinate in the depth map (here without taking into account the distortion):
Transform the 3D point expressed in the depth frame to the color frame:
Project the 3D point expressed in the color frame into the image plane to get the corresponding [u_c, v_c]
coordinate:
Practically, you should be able to achieve this using projectPoints()
. More details about the camera frame here.