code: def uv_color_normalize(img_uv_src, angle_uv_src, img_uv, angle_uv):
      intersection = (
          (angle_uv_src.pixels[0] < 0.6)
          & (angle_uv_src.pixels[0] > 0.3)
          & (angle_uv.pixels[0] > 0.7)
      )
      if np.any(intersection):
          target_dist = img_uv_src.pixels[:, intersection]
          target_mean = np.mean(target_dist, 1).reshape([3, -1])
          targed_std = np.std(target_dist, 1).reshape([3, -1])
  
          source_dist = img_uv.pixels[:, intersection]
          source_mean = np.mean(source_dist, 1).reshape([3, -1])
          source_std = np.std(source_dist, 1).reshape([3, -1])
  
          temp = (
              (img_uv.pixels.reshape([3, -1]) - source_mean)
              / source_std
          ) * targed_std + target_mean
          return Image(temp.reshape(img_uv.pixels.shape))
      else:
          return img_uv
  
imports: import PIL.Image
  from skimage.morphology import binary_dilation, disk
  from skimage.filters import gaussian
  from scipy.interpolate import NearestNDInterpolator
  import cv2
  from utils.shading import lambertian_shading
  from menpo3d.rasterize import rasterize_mesh
  from menpo.shape import TriMesh, TexturedTriMesh, ColouredTriMesh
  from menpo.image import Image
  from utils.image_rasterization import *
  import menpo.io
  import os
  from keras.utils import get_file
  import bz2
label_desc: Use image node_id 5 for calling a global function with example usage: uv_color_normalize(img_uv_src, angle_uv_src, img_uv, angle_uv) and returns: Image, img_uv