View source on GitHub |
Computes the 3d ray for a 2d point (the z component of the ray is 1).
tfg.rendering.camera.perspective.ray(
point_2d: type_alias.TensorLike,
focal: type_alias.TensorLike,
principal_point: type_alias.TensorLike,
name: str = 'perspective_ray'
) -> tf.Tensor
Computes the 3d ray \((r_x, r_y, 1)\) from the camera center to a 2d point \((x', y')\) on the image plane with
\[ \begin{matrix} r_x = \frac{(x' - c_x)}{f_x}, & r_y = \frac{(y' - c_y)}{f_y}, & z = 1, \end{matrix} \]
where \((f_x, f_y)\) is the focal length and \((c_x, c_y)\) the principal point. The camera optical center is assumed to be at \((0, 0, 0)\).
Note | |
---|---|
In the following, A1 to An are optional batch dimensions that must be broadcast compatible. |
Returns | |
---|---|
A tensor of shape [A1, ..., An, 3] , where the last dimension represents
a 3d ray.
|
Raises | |
---|---|
ValueError
|
If the shape of point_2d , focal , or principal_point is not
supported.
|