class_docstr: Random adjust brightness, contrast, saturation and hue according to the given random range and probability, respectively.
  
  Args:
  
      brightness_range(float): Boundary of brightness.
      brightness_prob(float): Probability for disturb the brightness of image.
      contrast_range(float): Boundary of contrast.
      contrast_prob(float): Probability for disturb the contrast of image.
      saturation_range(float): Boundary of saturation.
      saturation_prob(float): Probability for disturb the saturation of image.
      hue_range(float): Boundary of hue.
      hue_prob(float): Probability for disturb the hue of image.
class_docstr_tok: ["Random","adjust","brightness",",","contrast",",","saturation","and","hue","according","to","the","given","random","range","and","probability",",","respectively",".","Args",":","brightness_range","(","float",")",":","Boundary","of","brightness",".","brightness_prob","(","float",")",":","Probability","for","disturb","the","brightness","of","image",".","contrast_range","(","float",")",":","Boundary","of","contrast",".","contrast_prob","(","float",")",":","Probability","for","disturb","the","contrast","of","image",".","saturation_range","(","float",")",":","Boundary","of","saturation",".","saturation_prob","(","float",")",":","Probability","for","disturb","the","saturation","of","image",".","hue_range","(","float",")",":","Boundary","of","hue",".","hue_prob","(","float",")",":","Probability","for","disturb","the","hue","of","image","."]
code: def __call__(self, im: np.ndarray):
      brightness_lower = 1 - self.brightness_range
      brightness_upper = 1 + self.brightness_range
      contrast_lower = 1 - self.contrast_range
      contrast_upper = 1 + self.contrast_range
      saturation_lower = 1 - self.saturation_range
      saturation_upper = 1 + self.saturation_range
      hue_lower = -self.hue_range
      hue_upper = self.hue_range
      ops = [F.brightness, F.contrast, F.saturation, F.hue]
      random.shuffle(ops)
      params_dict = {
          "brightness": {
              "brightness_lower": brightness_lower,
              "brightness_upper": brightness_upper,
          },
          "contrast": {
              "contrast_lower": contrast_lower,
              "contrast_upper": contrast_upper,
          },
          "saturation": {
              "saturation_lower": saturation_lower,
              "saturation_upper": saturation_upper,
          },
          "hue": {"hue_lower": hue_lower, "hue_upper": hue_upper},
      }
      prob_dict = {
          "brightness": self.brightness_prob,
          "contrast": self.contrast_prob,
          "saturation": self.saturation_prob,
          "hue": self.hue_prob,
      }
      im = im.astype("uint8")
      im = PIL.Image.fromarray(im)
      for id in range(4):
          params = params_dict[ops[id].__name__]
          prob = prob_dict[ops[id].__name__]
          params["im"] = im
          if np.random.uniform(0, 1) < prob:
              im = ops[id](**params)
      im = np.asarray(im).astype("float32")
  
      return im
  
imports: import random
  from typing import Callable, Union, List, Tuple
  import cv2
  import PIL
  import numpy
  import paddlehub.vision.functional
label_desc: Use image node_id 2 for calling the RandomDistort obj's underlying member method code with example usage: obj.__call__(im) and returns: im