code: def stich_together(
      patches, padded_image_shape, target_shape, padding_size=4
  ):
      """Reconstruct the image from overlapping patches.
  
      After scaling, shapes and padding should be scaled too.
  
      Args:
          patches: patches obtained with split_image_into_overlapping_patches
          padded_image_shape: shape of the padded image contructed in split_image_into_overlapping_patches
          target_shape: shape of the final image
          padding_size: size of the overlapping area.
      """
  
      xmax, ymax, _ = padded_image_shape
      patches = unpad_patches(patches, padding_size)
      patch_size = patches.shape[1]
      n_patches_per_row = ymax // patch_size
  
      complete_image = np.zeros((xmax, ymax, 3))
  
      row = -1
      col = 0
      for i in range(len(patches)):
          if i % n_patches_per_row == 0:
              row += 1
              col = 0
          complete_image[
              row * patch_size : (row + 1) * patch_size,
              col * patch_size : (col + 1) * patch_size,
              :,
          ] = patches[i]
          col += 1
      return complete_image[0 : target_shape[0], 0 : target_shape[1], :]
  
imports: import numpy
label_desc: Use image node_id 6 for calling a global function with example usage: stich_together(patches, padded_image_shape, target_shape, padding_size) and returns: complete_image