Skip to content

Commit d29aaca

Browse files
committed
ENH: Use saved store for get_image and get_label_image
1 parent baea714 commit d29aaca

File tree

1 file changed

+40
-4
lines changed

1 file changed

+40
-4
lines changed

itkwidgets/viewer.py

Lines changed: 40 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -228,8 +228,28 @@ def set_image(self, image: Image, name: str = 'Image'):
228228
image = _get_viewer_point_set(image)
229229
self.viewer_rpc.itk_viewer.setPointSets(image)
230230
@fetch_value
231-
async def get_image(self):
232-
return await self.viewer_rpc.itk_viewer.getImage()
231+
async def get_image(self, name: str = 'Image') -> NgffImage:
232+
"""Get the full, highest resolution image.
233+
234+
:param name: Name of the loaded image data to use. 'Image', the
235+
default, selects the first loaded image.
236+
:type name: str
237+
238+
:return: image
239+
:rtype: NgffImage
240+
"""
241+
if store := self.stores.get(name):
242+
multiscales = from_ngff_zarr(store)
243+
loaded_image = multiscales.images[0]
244+
roi_data = loaded_image.data
245+
return to_ngff_image(
246+
roi_data,
247+
dims=loaded_image.dims,
248+
scale=loaded_image.scale,
249+
name=name,
250+
axes_units=loaded_image.axes_units
251+
)
252+
raise ValueError(f'No image data found for {name}.')
233253

234254
@fetch_value
235255
def set_image_blend_mode(self, mode: str):
@@ -441,8 +461,24 @@ def set_label_image(self, label_image: Image):
441461
label_image = _get_viewer_point_set(label_image)
442462
self.viewer_rpc.itk_viewer.setPointSets(label_image)
443463
@fetch_value
444-
async def get_label_image(self):
445-
return await self.viewer_rpc.itk_viewer.getLabelImage()
464+
async def get_label_image(self) -> NgffImage:
465+
"""Get the full, highest resolution label image.
466+
467+
:return: label_image
468+
:rtype: NgffImage
469+
"""
470+
if store := self.stores.get('LabelImage'):
471+
multiscales = from_ngff_zarr(store)
472+
loaded_image = multiscales.images[0]
473+
roi_data = loaded_image.data
474+
return to_ngff_image(
475+
roi_data,
476+
dims=loaded_image.dims,
477+
scale=loaded_image.scale,
478+
name='LabelImage',
479+
axes_units=loaded_image.axes_units
480+
)
481+
raise ValueError(f'No label image data found.')
446482

447483
@fetch_value
448484
def set_label_image_blend(self, blend: float):

0 commit comments

Comments
 (0)