code: def denormalize_bbox(bbox: TBox, rows: int, cols: int) -> TBox:
      """Denormalize coordinates of a bounding box. Multiply x-coordinates by image width and y-coordinates
      by image height. This is an inverse operation for :func:`~albumentations.augmentations.bbox.normalize_bbox`.
  
      Args:
          bbox: Normalized bounding box `(x_min, y_min, x_max, y_max)`.
          rows: Image height.
          cols: Image width.
  
      Returns:
          Denormalized bounding box `(x_min, y_min, x_max, y_max)`.
  
      Raises:
          ValueError: If rows or cols is less or equal zero
  
      """
      tail: Tuple[Any, ...]
      (x_min, y_min, x_max, y_max), tail = bbox[:4], tuple(bbox[4:])
  
      if rows <= 0:
          raise ValueError("Argument rows must be positive integer")
      if cols <= 0:
          raise ValueError("Argument cols must be positive integer")
  
      x_min, x_max = x_min * cols, x_max * cols
      y_min, y_max = y_min * rows, y_max * rows
  
      return cast(BoxType, (x_min, y_min, x_max, y_max) + tail)
  
imports: from __future__ import division
  from typing import Any, Dict, List, Optional, Sequence, Tuple, TypeVar, cast
  import numpy
  from .transforms_interface import BoxInternalType, BoxType
  from .utils import DataProcessor, Params
label_desc: Use image node_id 2 for calling a global function with example usage: denormalize_bbox(bbox, rows, cols) and returns: cast