code: def draw_gaussian(image, point, sigma):
      """Draw gaussian circle at a point in an image.
  
      Args:
          image (np.array): An image of shape (H, W)
          point (np.array): The center point of the guassian circle
          sigma (float): Standard deviation of the gaussian kernel
  
      Returns:
          np.array: The image with the drawn gaussian.
      """
      # Check if the gaussian is inside
      point[0] = round(point[0], 2)
      point[1] = round(point[1], 2)
  
      ul = [
          math.floor(point[0] - 7.5 * sigma),
          math.floor(point[1] - 7.5 * sigma),
      ]
      br = [
          math.floor(point[0] + 7.5 * sigma),
          math.floor(point[1] + 7.5 * sigma),
      ]
      if (
          ul[0] > image.shape[1]
          or ul[1] > image.shape[0]
          or br[0] < 1
          or br[1] < 1
      ):
          return image
      size = 15 * sigma + 1
      g = _gaussian(size, sigma=0.1)
      g_x = [
          int(max(1, -ul[0])),
          int(min(br[0], image.shape[1]))
          - int(max(1, ul[0]))
          + int(max(1, -ul[0])),
      ]
      g_y = [
          int(max(1, -ul[1])),
          int(min(br[1], image.shape[0]))
          - int(max(1, ul[1]))
          + int(max(1, -ul[1])),
      ]
      img_x = [int(max(1, ul[0])), int(min(br[0], image.shape[1]))]
      img_y = [int(max(1, ul[1])), int(min(br[1], image.shape[0]))]
      assert g_x[0] > 0 and g_y[1] > 0
      image[img_y[0] - 1 : img_y[1], img_x[0] - 1 : img_x[1]] = (
          image[img_y[0] - 1 : img_y[1], img_x[0] - 1 : img_x[1]]
          + g[g_y[0] - 1 : g_y[1], g_x[0] - 1 : g_x[1]]
      )
      image[image > 1] = 1
  
      return image
  
imports: import numpy
  import math
  import cv2
label_desc: Use image node_id 2 for calling a global function with example usage: draw_gaussian(image, point, sigma) and returns: image, image