docstr: Args:
  bboxes: list of bounding boxes [(x1, y1, x2, y2), ...] or [(xc, yc, h, w), ...]
  labels: list of strings or integers
  box_format:
      - `xyxy` for corner points of bbox
      - `xyhw` for x-center, y-center, height and width format of bbox
docstr_tok: ["Args",":","bboxes",":","list","of","bounding","boxes","[","(","x1",",","y1",",","x2",",","y2",")",",","...","]","or","[","(","xc",",","yc",",","h",",","w",")",",","...","]","labels",":","list","of","strings","or","integers","box_format",":","-","`","xyxy","`","for","corner","points","of","bbox","-","`","xyhw","`","for","x-center",",","y-center",",","height","and","width","format","of","bbox"]
code: def __init__(
      self,
      bboxes: Optional[List[list]] = None,
      labels: Optional[List[Union[int, str]]] = None,
      box_format: str = "xyxy",
  ):
      """Args:
      bboxes: list of bounding boxes [(x1, y1, x2, y2), ...] or [(xc, yc, h, w), ...]
      labels: list of strings or integers
      box_format:
          - `xyxy` for corner points of bbox
          - `xyhw` for x-center, y-center, height and width format of bbox
      """
      box_format = box_format.upper()
      if box_format not in (
          self.CENTER,
          self.CORNER,
      ):
          raise ValueError("bbox format must be either xyxy or xyhw")
      bboxes = self._listify(bboxes, 4)
      labels = self._listify(labels)
  
      if len(bboxes) != len(labels):
          raise UserWarning(
              f"len of boxes and labels not matching: {len(bboxes), len(labels)}"
          )
      self._format = box_format.upper()
      self.bboxes = self._list_to_bbox(bboxes, labels)
      self._state = {}
  
file_path: chitra/chitra/coordinates.py
imports: from typing import TYPE_CHECKING, List, Optional, Tuple, Union
  import numpy
  from imgaug.augmentables import bbs
label_desc: Use image node_id 1 to create a new BoundingBoxes object  with example: obj = BoundingBoxes(bboxes, labels, box_format)