code: def bbox_generator(
      x_start: torch.Tensor,
      y_start: torch.Tensor,
      width: torch.Tensor,
      height: torch.Tensor,
  ) -> torch.Tensor:
      """Generate 2D bounding boxes according to the provided start coords, width and height.
  
      Args:
          x_start: a tensor containing the x coordinates of the bounding boxes to be extracted. Shape must be a scalar
              tensor or :math:`(B,)`.
          y_start: a tensor containing the y coordinates of the bounding boxes to be extracted. Shape must be a scalar
              tensor or :math:`(B,)`.
          width: widths of the masked image. Shape must be a scalar tensor or :math:`(B,)`.
          height: heights of the masked image. Shape must be a scalar tensor or :math:`(B,)`.
  
      Returns:
          the bounding box tensor.
  
      Examples:
          >>> x_start = torch.tensor([0, 1])
          >>> y_start = torch.tensor([1, 0])
          >>> width = torch.tensor([5, 3])
          >>> height = torch.tensor([7, 4])
          >>> bbox_generator(x_start, y_start, width, height)
          tensor([[[0, 1],
                   [4, 1],
                   [4, 7],
                   [0, 7]],
          <BLANKLINE>
                  [[1, 0],
                   [3, 0],
                   [3, 3],
                   [1, 3]]])
      """
      if not (
          x_start.shape == y_start.shape and x_start.dim() in [0, 1]
      ):
          raise AssertionError(
              f"`x_start` and `y_start` must be a scalar or (B,). Got {x_start}, {y_start}."
          )
      if not (width.shape == height.shape and width.dim() in [0, 1]):
          raise AssertionError(
              f"`width` and `height` must be a scalar or (B,). Got {width}, {height}."
          )
      if (
          not x_start.dtype
          == y_start.dtype
          == width.dtype
          == height.dtype
      ):
          raise AssertionError(
              "All tensors must be in the same dtype. Got "
              f"`x_start`({x_start.dtype}), `y_start`({x_start.dtype}), `width`({width.dtype}), `height`({height.dtype})."
          )
      if (
          not x_start.device
          == y_start.device
          == width.device
          == height.device
      ):
          raise AssertionError(
              "All tensors must be in the same device. Got "
              f"`x_start`({x_start.device}), `y_start`({x_start.device}), "
              f"`width`({width.device}), `height`({height.device})."
          )
  
      bbox = torch.tensor(
          [[[0, 0], [0, 0], [0, 0], [0, 0]]],
          device=x_start.device,
          dtype=x_start.dtype,
      ).repeat(1 if x_start.dim() == 0 else len(x_start), 1, 1)
  
      bbox[:, :, 0] += x_start.view(-1, 1)
      bbox[:, :, 1] += y_start.view(-1, 1)
      bbox[:, 1, 0] += width - 1
      bbox[:, 2, 0] += width - 1
      bbox[:, 2, 1] += height - 1
      bbox[:, 3, 1] += height - 1
  
      return bbox
  
file_path: kornia/kornia/geometry/bbox.py
imports: from __future__ import annotations
  import warnings
  from typing import Optional
  import torch
  from kornia.core import arange, ones_like, stack, where, zeros
  from .linalg import transform_points
label_desc: Use image node_id 7 for calling a global function with example usage: bbox_generator(x_start, y_start, width, height) and returns: bbox