Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 18 additions & 9 deletions tiatoolbox/wsicore/wsireader.py
Original file line number Diff line number Diff line change
Expand Up @@ -989,11 +989,17 @@ def _find_tile_params(
raise ValueError(
msg,
)
scale_levels_available = [
np.log2(np.round(x, 3)) for x in self.info.level_downsamples
]
try:
level = np.log2(rescale)
if not level.is_integer():
level_scale = np.log2(rescale)
if not level_scale.is_integer():
raise ValueError # noqa: TRY301
level = np.int_(level)
level_scale = np.int_(level_scale)
if level_scale not in scale_levels_available:
raise IndexError # noqa: TRY301
level = scale_levels_available.index(level_scale)
slide_dimension = self.info.level_dimensions[level]
rescale = 1
# Raise index error if desired pyramid level not embedded
Expand Down Expand Up @@ -1549,7 +1555,10 @@ def save_tiles(

# convert to baseline reference frame
bounds = start_w, start_h, end_w, end_h
baseline_bounds = tuple(bound * (2**level) for bound in bounds)
baseline_bounds = tuple(
bound * int(np.round(self.info.level_downsamples[level], 3))
for bound in bounds
)
# Read image region
im = self.read_bounds(baseline_bounds, level)

Expand All @@ -1567,7 +1576,7 @@ def save_tiles(

# Rescale to the correct objective value
if rescale != 1:
im = utils.transforms.imresize(img=im, scale_factor=rescale)
im = utils.transforms.imresize(img=im, scale_factor=(1 / rescale))

img_save_name = (
"_".join(
Expand All @@ -1587,10 +1596,10 @@ def save_tiles(
[
iter_tot,
img_save_name,
start_w,
end_w,
start_h,
end_h,
int(start_w / rescale),
int(end_w / rescale),
int(start_h / rescale),
int(end_h / rescale),
im.shape[0],
im.shape[1],
],
Expand Down