docs: def imagedatadict_to_ndarray(imdict):
      """
      Converts the ImageData dictionary, imdict, to an nd image.
      """
      arr = imdict['Data']
      im = None
      if isinstance(arr, parse_dm3.array.array):
          im = numpy.asarray(arr, dtype=arr.typecode)
      elif isinstance(arr, parse_dm3.structarray):
          t = tuple(arr.typecodes)
          im = numpy.frombuffer(
              arr.raw_data,
              dtype=structarray_to_np_map[t])
      # print "Image has dmimagetype", imdict["DataType"], "numpy type is", im.dtype
      assert dm_image_dtypes[imdict["DataType"]][1] == im.dtype
      assert imdict['PixelDepth'] == im.dtype.itemsize
      im = im.reshape(imdict['Dimensions'][::-1])
      if imdict["DataType"] == 23:  # RGB
          im = im.view(numpy.uint8).reshape(im.shape + (-1, ))[..., :-1]  # strip A
          # NOTE: RGB -> BGR would be [:, :, ::-1]
      return im