class_docstr: Class that generates noisy augmentations of input images.
  
  Args:
      anomaly_source_path (str | None): Path to a folder of images that will be used as source of the anomalous
      noise. If not specified, random noise will be used instead.
      p_anomalous (float): Probability that the anomalous perturbation will be applied to a given image.
      beta (float): Parameter that determines the opacity of the noise mask.
class_docstr_tok: ["Class","that","generates","noisy","augmentations","of","input","images",".","Args",":","anomaly_source_path","(","str","|","None",")",":","Path","to","a","folder","of","images","that","will","be","used","as","source","of","the","anomalous","noise",".","If","not","specified",",","random","noise","will","be","used","instead",".","p_anomalous","(","float",")",":","Probability","that","the","anomalous","perturbation","will","be","applied","to","a","given","image",".","beta","(","float",")",":","Parameter","that","determines","the","opacity","of","the","noise","mask","."]
docstr: Selects 3 random transforms that will be applied to the anomaly source images.
  
  Returns:
      A selection of 3 transforms.
docstr_tok: ["Selects","3","random","transforms","that","will","be","applied","to","the","anomaly","source","images",".","Returns",":","A","selection","of","3","transforms","."]
code: def rand_augmenter(self) -> iaa.Sequential:
      """Selects 3 random transforms that will be applied to the anomaly source images.
  
      Returns:
          A selection of 3 transforms.
      """
      aug_ind = np.random.choice(
          np.arange(len(self.augmenters)), 3, replace=False
      )
      aug = iaa.Sequential(
          [
              self.augmenters[aug_ind[0]],
              self.augmenters[aug_ind[1]],
              self.augmenters[aug_ind[2]],
          ]
      )
      return aug
  
file_path: anomalib/src/anomalib/data/utils/augmenter.py
imports: from __future__ import annotations
  import glob
  import math
  import random
  import cv2
  import imgaug.augmenters
  import numpy
  import torch
  from torch import Tensor
  from torchvision.datasets.folder import IMG_EXTENSIONS
  from anomalib.data.utils.generators.perlin import random_2d_perlin
label_desc: Use image node_id 2 for calling the Augmenter obj's underlying member method code with example usage: obj.rand_augmenter() and returns: aug