class_docstr: Class that represents a Pinhole Camera model.
  
  Args:
      intrinsics: tensor with shape :math:`(B, 4, 4)`
        containing the full 4x4 camera calibration matrix.
      extrinsics: tensor with shape :math:`(B, 4, 4)`
        containing the full 4x4 rotation-translation matrix.
      height: tensor with shape :math:`(B)` containing the image height.
      width: tensor with shape :math:`(B)` containing the image width.
  
  .. note::
      We assume that the class attributes are in batch form in order to take
      advantage of PyTorch parallelism to boost computing performance.
class_docstr_tok: ["Class","that","represents","a","Pinhole","Camera","model",".","Args",":","intrinsics",":","tensor","with","shape",":","math",":","`","(","B",",","4",",","4",")","`","containing","the","full","4x4","camera","calibration","matrix",".","extrinsics",":","tensor","with","shape",":","math",":","`","(","B",",","4",",","4",")","`","containing","the","full","4x4","rotation-translation","matrix",".","height",":","tensor","with","shape",":","math",":","`","(","B",")","`","containing","the","image","height",".","width",":","tensor","with","shape",":","math",":","`","(","B",")","`","containing","the","image","width",".","..","note",":",":","We","assume","that","the","class","attributes","are","in","batch","form","in","order","to","take","advantage","of","PyTorch","parallelism","to","boost","computing","performance","."]
code: def from_parameters(
      self,
      fx: Tensor,
      fy: Tensor,
      cx: Tensor,
      cy: Tensor,
      height: int,
      width: int,
      tx: Tensor,
      ty: Tensor,
      tz: Tensor,
      batch_size: int,
      device: Device,
      dtype: torch.dtype,
  ) -> "PinholeCamera":
      # create the camera matrix
      intrinsics = zeros(batch_size, 4, 4, device=device, dtype=dtype)
      intrinsics[..., 0, 0] += fx
      intrinsics[..., 1, 1] += fy
      intrinsics[..., 0, 2] += cx
      intrinsics[..., 1, 2] += cy
      intrinsics[..., 2, 2] += 1.0
      intrinsics[..., 3, 3] += 1.0
      # create the pose matrix
      extrinsics = eye(4, device=device, dtype=dtype).repeat(
          batch_size, 1, 1
      )
      extrinsics[..., 0, -1] += tx
      extrinsics[..., 1, -1] += ty
      extrinsics[..., 2, -1] += tz
      # create image hegith and width
      height_tmp = zeros(batch_size, device=device, dtype=dtype)
      height_tmp[..., 0] += height
      width_tmp = zeros(batch_size, device=device, dtype=dtype)
      width_tmp[..., 0] += width
      return self(intrinsics, extrinsics, height_tmp, width_tmp)
  
imports: from typing import Iterable, List, Union
  import torch
  from kornia.core import Device, Tensor, eye, stack, zeros
  from kornia.core.check import KORNIA_CHECK_SAME_DEVICE
  from kornia.geometry.conversions import convert_points_from_homogeneous, convert_points_to_homogeneous
  from kornia.geometry.linalg import inverse_transformation, transform_points
  from kornia.utils.helpers import _torch_inverse_cast
label_desc: Use image node_id 30 for calling the PinholeCamera obj's underlying member method code with example usage: obj.from_parameters(fx, fy, cx, cy, height, width, tx, ty, tz, batch_size, device, dtype) and returns: self