code: def heatmap_display(
      heatmap,
      original_image,
      colormap=cv2.COLORMAP_VIRIDIS,
      image_weight=0.7,
  ):
      """
      Apply a heatmap (numpy.ndarray) on top of an original image.
  
      Args:
          heatmap (numpy.ndarray): Array corresponding to the heatmap
          original_image (numpy.ndarray): Image on which we apply the heatmap
          colormap (int): OpenCV Colormap to use for heatmap visualization
          image_weight (float): An optional `float` value in range [0,1] indicating the weight of
              the input image to be overlaying the calculated attribution maps. Defaults to `0.7`
  
      Returns:
          numpy.ndarray: Original image with heatmap applied
      """
      image = image_to_uint_255(original_image)
  
      heatmap = cv2.resize(
          heatmap, (original_image.shape[1], original_image.shape[0])
      )
  
      if (heatmap.max() - heatmap.min()) != 0:
          heatmap = (heatmap - heatmap.min()) / (
              heatmap.max() - heatmap.min()
          )
  
      heatmap = cv2.applyColorMap(
          cv2.cvtColor(
              (heatmap * 255).astype("uint8"), cv2.COLOR_GRAY2BGR
          ),
          colormap,
      )
  
      output = cv2.addWeighted(
          cv2.cvtColor(image, cv2.COLOR_RGB2BGR),
          image_weight,
          heatmap,
          1 - image_weight,
          0,
      )
  
      return cv2.cvtColor(output, cv2.COLOR_BGR2RGB)
  
file_path: tf-explain/tf_explain/utils/display.py
imports: import math
  import warnings
  import numpy
  import cv2
label_desc: Use image node_id 4 for calling a global function with example usage: heatmap_display(heatmap, original_image, colormap, image_weight) and returns: cv2