code: def invert_normalize_segmentation_maps(
      segmentation_maps, segmentation_maps_old
  ):
      ntype = estimate_segmaps_norm_type(segmentation_maps_old)
      if ntype == "None":
          assert segmentation_maps is None, (
              "Expected (normalized) 'segmentation_maps' to be None due "
              "(unnormalized) 'segmentation_maps_old' being None. Got type %s "
              "instead." % (type(segmentation_maps),)
          )
          return segmentation_maps
      if ntype in ["array[int]", "array[uint]", "array[bool]"]:
          assert (
              len(segmentation_maps) == segmentation_maps_old.shape[0]
          ), (
              "Expected as many segmentation maps after normalization as before "
              "normalization. Got %d (after) and %d (before)."
              % (len(segmentation_maps), segmentation_maps_old.shape[0])
          )
          input_dtype = segmentation_maps_old.dtype
          return restore_dtype_and_merge(
              [segmap_i.get_arr() for segmap_i in segmentation_maps],
              input_dtype,
          )
      if ntype == "SegmentationMapsOnImage":
          assert len(segmentation_maps) == 1, (
              "Expected as many segmentation maps after normalization as before "
              "normalization. Got %d (after) and %d (before)."
              % (len(segmentation_maps), 1)
          )
          return segmentation_maps[0]
      if ntype == "iterable[empty]":
          assert segmentation_maps is None, (
              "Expected segmentation maps after normalization to be None, due "
              "to the segmentation maps before normalization being an empty "
              "iterable. Got type %s instead."
              % (type(segmentation_maps),)
          )
          return []
      if ntype in [
          "iterable-array[int]",
          "iterable-array[uint]",
          "iterable-array[bool]",
      ]:
          nonempty, _, _ = find_first_nonempty(segmentation_maps_old)
          input_dtype = nonempty.dtype
          return [
              restore_dtype_and_merge(segmap_i.get_arr(), input_dtype)
              for segmap_i in segmentation_maps
          ]
  
      assert (
          ntype == "iterable-SegmentationMapsOnImage"
      ), "Got unknown normalization type '%s'." % (ntype,)
      return segmentation_maps
  
imports: from __future__ import print_function, division, absolute_import
  import functools
  import numpy
  from ..None import imgaug
  from ..None import dtypes
  from .base import IAugmentable
label_desc: Use image node_id 17 for calling a global function with example usage: invert_normalize_segmentation_maps(segmentation_maps, segmentation_maps_old) and returns: segmentation_maps, segmentation_maps, restore_dtype_and_merge, segmentation_maps, list, unknown