code: def aug_image(self, img, mask=None):
      if mask is not None:
          if self.augment_with_target is not None:
              img, mask = self.augment_with_target(img, mask)
          if self.image_augment is not None:
              img = self.image_augment(img)
          if self.mask_transform is not None:
              mask = self.mask_transform(mask)
          if self.image_transform is not None:
              img = self.image_transform(img)
          return img, mask
      else:
          if self.image_augment is not None:
              img = self.image_augment(img)
          if self.image_transform is not None:
              img = self.image_transform(img)
          return img
  
imports: import os, cv2, glob
  import numpy
  from PIL import Image
  import torch
  import torch.utils.data
  from torchvision import datasets, models, transforms
  from utils import read_masks, get_test_meta, get_nfold_split
  import augmentation
  from settings import *
label_desc: Use image node_id 3 for calling the ImageDataset obj's underlying member method code with example usage: obj.aug_image(img, mask) and returns: img,  mask, img