code: def reproject_disparity_to_3D(
      disparity_tensor: Tensor, Q_matrix: Tensor
  ) -> Tensor:
      r"""Reproject the disparity tensor to a 3D point cloud.
  
      Args:
          disparity_tensor: Disparity tensor of shape :math:`(B, H, W, 1)`.
          Q_matrix: Tensor of Q matrices of shapes :math:`(B, 4, 4)`.
  
      Returns:
          The 3D point cloud of shape :math:`(B, H, W, 3)`
      """
      _check_Q_matrix(Q_matrix)
      _check_disparity_tensor(disparity_tensor)
  
      batch_size, rows, cols, _ = disparity_tensor.shape
      dtype = disparity_tensor.dtype
      device = disparity_tensor.device
  
      uv = create_meshgrid(
          rows,
          cols,
          normalized_coordinates=False,
          device=device,
          dtype=dtype,
      )
      uv = uv.expand(batch_size, -1, -1, -1)
      v, u = torch.unbind(uv, dim=-1)
      v, u = torch.unsqueeze(v, -1), torch.unsqueeze(u, -1)
      uvd = (
          stack((u, v, disparity_tensor), 1)
          .reshape(batch_size, 3, -1)
          .permute(0, 2, 1)
      )
      points = transform_points(Q_matrix, uvd).reshape(
          batch_size, rows, cols, 3
      )
  
      # Final check that everything went well.
      if not points.shape == (batch_size, rows, cols, 3):
          raise StereoException(
              "Something went wrong in `reproject_disparity_to_3D`. Expected the final output"
              f"to be of shape {(batch_size, rows, cols, 3)}."
              f"But the computed point cloud had shape {points.shape}. "
              "Please ensure input are correct. If this is an error, please submit an issue."
          )
      return points
  
imports: from typing import Any
  import torch
  from kornia.core import Tensor, stack, zeros
  from kornia.geometry.linalg import transform_points
  from kornia.utils.grid import create_meshgrid
label_desc: Use image node_id 3 for calling a global function with example usage: reproject_disparity_to_3D(disparity_tensor, Q_matrix) and returns: points