code: def defocus_blur(x, severity=1):
      """Defocus blurring to images.
  
      Apply defocus blurring to images using Gaussian kernel.
  
      Args:
        x: numpy array, uncorrupted image, assumed to have uint8 pixel in [0,255].
        severity: integer, severity of corruption.
  
      Returns:
        numpy array, image with uint8 pixels in [0,255]. Applied defocus blur.
      """
      c = [(3, 0.1), (4, 0.5), (6, 0.5), (8, 0.5), (10, 0.5)][
          severity - 1
      ]
      x = np.array(x) / 255.0
      kernel = disk(radius=c[0], alias_blur=c[1])
      channels = []
      for d in range(3):
          channels.append(
              tfds.core.lazy_imports.cv2.filter2D(
                  x[:, :, d], -1, kernel
              )
          )
      channels = np.array(channels).transpose(
          (1, 2, 0)
      )  # 3x224x224 -> 224x224x3
      x_clip = np.clip(channels, 0, 1) * 255
      return around_and_astype(x_clip)
  
imports: import io
  import subprocess
  import tempfile
  import numpy
  from tensorflow_datasets.core.utils.lazy_imports_utils import tensorflow
  import tensorflow_datasets.public_api
label_desc: Use image node_id 9 for calling a global function with example usage: defocus_blur(x, severity) and returns: around_and_astype