code: def onehot_to_binary_edge(mask, radius):
      """
      Convert a onehot mask (K, H, W) to a edge mask.
  
      Args:
          mask (np.ndarray): Onehot mask with shape (K, H, W)
          radius (int|float): Radius of edge.
  
      Returns:
          np.ndarray: Edge mask with shape(H, W).
      """
      if radius < 1:
          raise ValueError(
              "`radius` should be greater than or equal to 1"
          )
      num_classes = mask.shape[0]
  
      edge = np.zeros(mask.shape[1:])
      # pad borders
      mask = np.pad(
          mask,
          ((0, 0), (1, 1), (1, 1)),
          mode="constant",
          constant_values=0,
      )
      for i in range(num_classes):
          dist = distance_transform_edt(
              mask[i, :]
          ) + distance_transform_edt(1.0 - mask[i, :])
          dist = dist[1:-1, 1:-1]
          dist[dist > radius] = 0
          edge += dist
  
      edge = np.expand_dims(edge, axis=0)
      edge = (edge > 0).astype(np.uint8)
      return edge
  
imports: import cv2
  import numpy
  from PIL import Image, ImageEnhance
  from scipy.ndimage import distance_transform_edt
label_desc: Use image node_id 16 for calling a global function with example usage: onehot_to_binary_edge(mask, radius) and returns: edge