class_docstr: Struct holding parameters and applying image color transformation.
  
  Args
      contrast_factor:   A factor for adjusting contrast. Should be between 0 and 3.
      brightness_delta:  Brightness offset between -1 and 1 added to the pixel values.
      hue_delta:         Hue offset between -1 and 1 added to the hue channel.
      saturation_factor: A factor multiplying the saturation values of each pixel.
class_docstr_tok: ["Struct","holding","parameters","and","applying","image","color","transformation",".","Args","contrast_factor",":","A","factor","for","adjusting","contrast",".","Should","be","between","0","and","3.","brightness_delta",":","Brightness","offset","between","-1","and","1","added","to","the","pixel","values",".","hue_delta",":","Hue","offset","between","-1","and","1","added","to","the","hue","channel",".","saturation_factor",":","A","factor","multiplying","the","saturation","values","of","each","pixel","."]
docstr: Apply a visual effect on the image.
  
  Args
      image: Image to adjust
docstr_tok: ["Apply","a","visual","effect","on","the","image",".","Args","image",":","Image","to","adjust"]
code: def __call__(self, image):
      """Apply a visual effect on the image.
  
      Args
          image: Image to adjust
      """
  
      if self.contrast_factor:
          image = adjust_contrast(image, self.contrast_factor)
      if self.brightness_delta:
          image = adjust_brightness(image, self.brightness_delta)
  
      if self.hue_delta or self.saturation_factor:
          image = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
  
          if self.hue_delta:
              image = adjust_hue(image, self.hue_delta)
          if self.saturation_factor:
              image = adjust_saturation(image, self.saturation_factor)
  
          image = cv2.cvtColor(image, cv2.COLOR_HSV2BGR)
  
      return image
  
imports: from __future__ import division
  import numpy
  import cv2
  from PIL import Image
  from .transform import change_transform_origin
label_desc: Use image node_id 2 for calling the VisualEffect obj's underlying member method code with example usage: obj.__call__(image) and returns: image