diff --git a/monai/data/image_reader.py b/monai/data/image_reader.py index 502c6fb93b..ca77178e0b 100644 --- a/monai/data/image_reader.py +++ b/monai/data/image_reader.py @@ -820,7 +820,10 @@ def get_data( """ # Verify inputs if level is None: - level = self._check_level(img, level) + level = self.level + max_level = self._get_max_level(img) + if level > max_level: + raise ValueError(f"The maximum level of this image is {max_level} while level={level} is requested)!") # Extract a region or the entire image region = self._extract_region(img, location=location, size=size, level=level, dtype=dtype) @@ -844,21 +847,19 @@ def get_data( return patches, metadata - def _check_level(self, img, level): - level = self.level + def _get_max_level(self, img_obj): + """ + Return the maximum number of levels in the whole slide image + Args: + img: the whole slide image object - level_count = 0 + """ if self.backend == "openslide": - level_count = img.level_count - elif self.backend == "cucim": - level_count = img.resolutions["level_count"] - elif self.backend == "tifffile": - level_count = len(img.pages) - - if level > level_count - 1: - raise ValueError(f"The maximum level of this image is {level_count - 1} while level={level} is requested)!") - - return level + return img_obj.level_count - 1 + if self.backend == "cucim": + return img_obj.resolutions["level_count"] - 1 + if self.backend == "tifffile": + return len(img_obj.pages) - 1 def _get_image_size(self, img, size, level, location): """