code: def open_gray_scale_image(fn):
      "Opens an radiographic/gray scale image, stacks the channel to represent a RGB image and returns is as a 32bit float array."
      if ".dcm" in str(fn).lower():
          img = open_dicom(str(fn))
      elif is_tif_extension(fn):
          with rasterio.open(str(fn), "r") as image:
              raw_data = image.read()
              img = chw_to_hwc(raw_data)[..., 0]
      else:
          img = PIL.Image.open(str(fn))
  
      img = np.dstack([img, img, img])
      img = img.astype(np.float32)
      return img
  
file_path: icevision/icevision/utils/imageio.py
imports: from icevision.imports import *
  from PIL import ExifTags
label_desc: Use image node_id 5 for calling a global function with example usage: open_gray_scale_image(fn) and returns: img