code: def add_fog(img, fog_coef, alpha_coef, haze_list):
      
      non_rgb_warning(img)
  
      input_dtype = img.dtype
      needs_float = False
  
      if input_dtype == np.float32:
          img = from_float(img, dtype=np.dtype('uint8'))
          needs_float = True
      elif input_dtype not in (np.uint8, np.float32):
          raise ValueError('Unexpected dtype {} for RandomFog augmentation'.format(input_dtype))
  
      height, width = img.shape[:2]
  
      hw = max(int(width // 3 * fog_coef), 10)
  
      for haze_points in haze_list:
          x, y = haze_points
          overlay = img.copy()
          output = img.copy()
          alpha = alpha_coef * fog_coef
          rad = hw // 2
          point = (x + hw // 2, y + hw // 2)
          cv2.circle(overlay, point, int(rad), (255, 255, 255), -1)
          cv2.addWeighted(overlay, alpha, output, 1 - alpha, 0, output)
  
          img = output.copy()
  
      image_rgb = cv2.blur(img, (hw // 10, hw // 10))
  
      if needs_float:
          image_rgb = to_float(image_rgb, max_value=255)
  
      return image_rgb
docs: Add fog to the image.
  
      From https://github.com/UjjwalSaxena/Automold--Road-Augmentation-Library
  
      Args:
          img (np.array):
          fog_coef (float):
          alpha_coef (float):
          haze_list (list):
      Returns: