code: def projection_from_KRt(K: Tensor, R: Tensor, t: Tensor) -> Tensor:
      r"""Get the projection matrix P from K, R and t.
  
      This function estimate the projection matrix by solving the following equation: :math:`P = K * [R|t]`.
  
      Args:
         K: the camera matrix with the intrinsics with shape :math:`(B, 3, 3)`.
         R: The rotation matrix with shape :math:`(B, 3, 3)`.
         t: The translation vector with shape :math:`(B, 3, 1)`.
  
      Returns:
         The projection matrix P with shape :math:`(B, 4, 4)`.
      """
      if K.shape[-2:] != (3, 3):
          raise AssertionError(K.shape)
      if R.shape[-2:] != (3, 3):
          raise AssertionError(R.shape)
      if t.shape[-2:] != (3, 1):
          raise AssertionError(t.shape)
      if not len(K.shape) == len(R.shape) == len(t.shape):
          raise AssertionError
  
      Rt = concatenate([R, t], dim=-1)  # 3x4
      Rt_h = pad(Rt, [0, 0, 0, 1], "constant", 0.0)  # 4x4
      Rt_h[..., -1, -1] += 1.0
  
      K_h = pad(K, [0, 1, 0, 1], "constant", 0.0)  # 4x4
      K_h[..., -1, -1] += 1.0
  
      return K @ Rt
  
file_path: kornia/kornia/geometry/epipolar/projection.py
imports: from typing import Tuple, Union
  import torch
  from torch.linalg import qr
  from kornia.core import Tensor, concatenate, ones_like, pad, stack, zeros_like
  from kornia.utils import eye_like, vec_like
  from kornia.utils.helpers import _torch_svd_cast
  from .numeric import cross_product_matrix
label_desc: Use image node_id 4 for calling a global function with example usage: projection_from_KRt(K, R, t) and returns: unknown