diff --git a/monai/data/image_reader.py b/monai/data/image_reader.py index 76bf1817dc..16e8514f48 100644 --- a/monai/data/image_reader.py +++ b/monai/data/image_reader.py @@ -643,11 +643,13 @@ def __init__(self, reader_lib: str = "cuClaraImage"): super().__init__() self.reader_lib = reader_lib.lower() if self.reader_lib == "openslide": - self.wsi_reader = openslide.OpenSlide - print("> OpenSlide is being used.") + if has_osl: + self.wsi_reader = openslide.OpenSlide + print("> OpenSlide is being used.") elif self.reader_lib == "cuclaraimage": - self.wsi_reader = cuimage.CuImage - print("> CuImage is being used.") + if has_cux: + self.wsi_reader = cuimage.CuImage + print("> CuImage is being used.") else: raise ValueError('`reader_lib` should be either "cuClaraImage" or "OpenSlide"') diff --git a/monai/transforms/io/array.py b/monai/transforms/io/array.py index de9a8800a2..002bfd8242 100644 --- a/monai/transforms/io/array.py +++ b/monai/transforms/io/array.py @@ -19,7 +19,7 @@ import torch from monai.config import DtypeLike -from monai.data.image_reader import ImageReader, ITKReader, NibabelReader, NumpyReader, PILReader +from monai.data.image_reader import ImageReader, ITKReader, NibabelReader, NumpyReader, PILReader, WSIReader from monai.data.nifti_saver import NiftiSaver from monai.data.png_saver import PNGSaver from monai.transforms.transform import Transform @@ -78,7 +78,7 @@ def __init__( reader: register reader to load image file and meta data, if None, still can register readers at runtime or use the default readers. If a string of reader name provided, will construct a reader object with the `*args` and `**kwargs` parameters, supported reader name: "NibabelReader", - "PILReader", "ITKReader", "NumpyReader" + "PILReader", "ITKReader", "NumpyReader", "WSIReader". image_only: if True return only the image volume, otherwise return image data array and header dict. dtype: if not None convert the loaded image to this data type. args: additional parameters for reader if providing a reader name. @@ -90,7 +90,7 @@ def __init__( """ # set predefined readers as default - self.readers: List[ImageReader] = [ITKReader(), NumpyReader(), PILReader(), NibabelReader()] + self.readers: List[ImageReader] = [ITKReader(), NumpyReader(), PILReader(), NibabelReader(), WSIReader()] if reader is not None: if isinstance(reader, str): supported_readers = { @@ -98,6 +98,7 @@ def __init__( "pilreader": PILReader, "itkreader": ITKReader, "numpyreader": NumpyReader, + "wsireader": WSIReader, } reader = reader.lower() if reader not in supported_readers: diff --git a/monai/transforms/io/dictionary.py b/monai/transforms/io/dictionary.py index 50ab8f9868..7f663ea303 100644 --- a/monai/transforms/io/dictionary.py +++ b/monai/transforms/io/dictionary.py @@ -71,7 +71,7 @@ def __init__( reader: register reader to load image file and meta data, if None, still can register readers at runtime or use the default readers. If a string of reader name provided, will construct a reader object with the `*args` and `**kwargs` parameters, supported reader name: "NibabelReader", - "PILReader", "ITKReader", "NumpyReader" + "PILReader", "ITKReader", "NumpyReader", "WSIReader". dtype: if not None convert the loaded image data to this data type. meta_key_postfix: use `key_{postfix}` to store the metadata of the nifti image, default is `meta_dict`. The meta data is a dictionary object.