code: def _gaussian(
      size=3,
      sigma=0.25,
      amplitude=1,
      normalize=False,
      width=None,
      height=None,
      sigma_horz=None,
      sigma_vert=None,
      mean_horz=0.5,
      mean_vert=0.5,
  ):
      # handle some defaults
      if width is None:
          width = size
      if height is None:
          height = size
      if sigma_horz is None:
          sigma_horz = sigma
      if sigma_vert is None:
          sigma_vert = sigma
      center_x = mean_horz * width + 0.5
      center_y = mean_vert * height + 0.5
      gauss = np.empty((height, width), dtype=np.float32)
      # generate kernel
      for i in range(height):
          for j in range(width):
              gauss[i][j] = amplitude * math.exp(
                  -(
                      math.pow(
                          (j + 1 - center_x) / (sigma_horz * width), 2
                      )
                      / 2.0
                      + math.pow(
                          (i + 1 - center_y) / (sigma_vert * height), 2
                      )
                      / 2.0
                  )
              )
      if normalize:
          gauss = gauss / np.sum(gauss)
      return gauss
  
imports: import os
  import sys
  import errno
  import torch
  import math
  import numpy
  import cv2
  from skimage import io
  from skimage import color
  from numba import jit
  from urllib.parse import urlparse
  from torch.hub import download_url_to_file, HASH_REGEX
label_desc: Use image node_id 1 for calling a global function with example usage: _gaussian(size, sigma, amplitude, normalize, width, height, sigma_horz, sigma_vert, mean_horz, mean_vert) and returns: gauss