docstr: Utility function to ensure user specified correct camera matrices.
  
  Args:
      rectified_left_camera: The rectified left camera projection matrix
        of shape :math:`(B, 3, 4)`
      rectified_right_camera: The rectified right camera projection matrix
        of shape :math:`(B, 3, 4)`
docstr_tok: ["Utility","function","to","ensure","user","specified","correct","camera","matrices",".","Args",":","rectified_left_camera",":","The","rectified","left","camera","projection","matrix","of","shape",":","math",":","`","(","B",",","3",",","4",")","`","rectified_right_camera",":","The","rectified","right","camera","projection","matrix","of","shape",":","math",":","`","(","B",",","3",",","4",")","`"]
code: def _check_stereo_camera(
      rectified_left_camera: Tensor, rectified_right_camera: Tensor
  ) -> None:
      r"""Utility function to ensure user specified correct camera matrices.
  
      Args:
          rectified_left_camera: The rectified left camera projection matrix
            of shape :math:`(B, 3, 4)`
          rectified_right_camera: The rectified right camera projection matrix
            of shape :math:`(B, 3, 4)`
      """
      # Ensure correct shapes
      if len(rectified_left_camera.shape) != 3:
          raise StereoException(
              f"Expected 'rectified_left_camera' to have 3 dimensions. Got {rectified_left_camera.shape}."
          )
  
      if len(rectified_right_camera.shape) != 3:
          raise StereoException(
              f"Expected 'rectified_right_camera' to have 3 dimension. Got {rectified_right_camera.shape}."
          )
  
      if rectified_left_camera.shape[:1] == (3, 4):
          raise StereoException(
              f"Expected each 'rectified_left_camera' to be of shape (3, 4).Got {rectified_left_camera.shape[:1]}."
          )
  
      if rectified_right_camera.shape[:1] == (3, 4):
          raise StereoException(
              f"Expected each 'rectified_right_camera' to be of shape (3, 4).Got {rectified_right_camera.shape[:1]}."
          )
  
      # Ensure same devices for cameras.
      if rectified_left_camera.device != rectified_right_camera.device:
          raise StereoException(
              "Expected 'rectified_left_camera' and 'rectified_right_camera' "
              "to be on the same devices."
              f"Got {rectified_left_camera.device} and {rectified_right_camera.device}."
          )
  
      # Ensure same dtypes for cameras.
      if rectified_left_camera.dtype != rectified_right_camera.dtype:
          raise StereoException(
              "Expected 'rectified_left_camera' and 'rectified_right_camera' to"
              "have same dtype."
              f"Got {rectified_left_camera.dtype} and {rectified_right_camera.dtype}."
          )
  
      # Ensure all intrinsics parameters (fx, fy, cx, cy) are the same in both cameras.
      if not torch.all(
          torch.eq(
              rectified_left_camera[..., :, :3],
              rectified_right_camera[..., :, :3],
          )
      ):
          raise StereoException(
              "Expected 'left_rectified_camera' and 'rectified_right_camera' to have"
              "same parameters except for the last column."
              f"Got {rectified_left_camera[..., :, :3]} and {rectified_right_camera[..., :, :3]}."
          )
  
      # Ensure that tx * fx is negative and exists.
      tx_fx = rectified_right_camera[..., 0, 3]
      if torch.all(torch.gt(tx_fx, 0)):
          raise StereoException(
              f"Expected :math:`T_x * f_x` to be negative. Got {tx_fx}."
          )
  
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 2 for calling the StereoCamera obj's underlying member method code with example usage: obj._check_stereo_camera(rectified_left_camera, rectified_right_camera) without return types