code: def get_palette(samples, options, return_mask=False, kmeans_iter=40):
  
      '''Extract the palette for the set of sampled RGB values. The first
  palette entry is always the background color; the rest are determined
  from foreground pixels by running K-means clustering. Returns the
  palette, as well as a mask corresponding to the foreground pixels.
  
      '''
  
      if not options.quiet:
          print('  getting palette...')
  
      bg_color = get_bg_color(samples, 6)
  
      fg_mask = get_fg_mask(bg_color, samples, options)
  
      centers, _ = kmeans(samples[fg_mask].astype(np.float32),
                          options.num_colors-1,
                          iter=kmeans_iter)
  
      palette = np.vstack((bg_color, centers)).astype(np.uint8)
  
      if not return_mask:
          return palette
      else:
          return palette, fg_masf get_palette(samples, options, return_mask=False, kmeans_iter=40):
  
      '''Extract the palette for the set of sampled RGB values. The first
  palette entry is always the background color; the rest are determined
  from foreground pixels by running K-means clustering. Returns the
  palette, as well as a mask corresponding to the foreground pixels.
  
      '''
  
      if not options.quiet:
          print('  getting palette...')
  
      bg_color = get_bg_color(samples, 6)
  
      fg_mask = get_fg_mask(bg_color, samples, options)
  
      centers, _ = kmeans(samples[fg_mask].astype(np.float32),
                          options.num_colors-1,
                          iter=kmeans_iter)
  
      palette = np.vstack((bg_color, centers)).astype(np.uint8)
  
      if not return_mask:
          return palette
      else:
          return palette, fg_mask
docs: Extract the palette for the set of sampled RGB values. The first
  palette entry is always the background color; the rest are determined
  from foreground pixels by running K-means clustering. Returns the
  palette, as well as a mask corresponding to the foreground pixels.