def test_nD_pyramid(qtbot): """Test adding nD image pyramid.""" viewer = Viewer() view = viewer.window.qt_viewer qtbot.addWidget(view) shapes = [(8, 40, 20), (4, 20, 10), (4, 10, 5)] np.random.seed(0) data = [np.random.random(s) for s in shapes] viewer.add_pyramid(data) assert np.all(viewer.layers[0].data == data) assert len(viewer.layers) == 1 assert view.layers.vbox_layout.count() == 2 * len(viewer.layers) + 2 assert viewer.dims.ndim == 3 assert view.dims.nsliders == viewer.dims.ndim assert np.sum(view.dims._displayed_sliders) == 1 # Flip dims order displayed viewer.dims.order = [0, 2, 1] assert viewer.dims.order == [0, 2, 1] # Flip dims order including non-displayed viewer.dims.order = [1, 0, 2] assert viewer.dims.order == [1, 0, 2] # Close the viewer viewer.window.close()
def test_pyramid_dytpes(qtbot, dtype): """Test different dtype pyramids.""" np.random.seed(0) viewer = Viewer() view = viewer.window.qt_viewer qtbot.addWidget(view) # add dtype pyramid data data = [ np.random.randint(20, size=(30, 40)).astype(dtype), np.random.randint(20, size=(15, 20)).astype(dtype), ] viewer.add_pyramid(data) assert np.all(viewer.layers[0].data == data) # Close the viewer viewer.window.close()
def test_add_pyramid(qtbot): """Test adding image pyramid.""" viewer = Viewer() view = viewer.window.qt_viewer qtbot.addWidget(view) shapes = [(40, 20), (20, 10), (10, 5)] np.random.seed(0) data = [np.random.random(s) for s in shapes] viewer.add_pyramid(data) assert np.all(viewer.layers[0].data == data) assert len(viewer.layers) == 1 assert view.layers.vbox_layout.count() == 2 * len(viewer.layers) + 2 assert viewer.dims.ndim == 2 assert view.dims.nsliders == viewer.dims.ndim assert np.sum(view.dims._displayed_sliders) == 0 # Close the viewer viewer.window.close()
""" Displays the allen brain reference atlas at 10 um resolution """ from napari import Viewer, gui_qt import dask.array as da from dask.cache import Cache import numpy as np cache = Cache(2e9) # Leverage two gigabytes of memory cache.register() base = da.random.randint(0, 255, (100, 2000, 5000), dtype='uint8') pyramid = [base] image = pyramid[0] for i in range(4): image = da.coarsen(np.mean, image, {0: 1, 1: 2, 2: 2}, trim_excess=True) pyramid.append(image) print('pyramid level shapes: ', [p.shape for p in pyramid]) with gui_qt(): # create an empty viewer viewer = Viewer() # layer = viewer.add_image(base, name='base') layer = viewer.add_pyramid(pyramid, name='pyramid')
""" Dynamically load irregularly shapes images of ants and bees """ import numpy as np import dask.array as da from dask.cache import Cache from napari import Viewer, gui_qt cache = Cache(2e9) # Leverage two gigabytes of memory cache.register() base_name = 'data-njs/ndcn/keiser/slides/' slide_name = 'NA4009-02_AB' pyramid = [ da.from_zarr(base_name + slide_name + '.zarr/' + str(i)) for i in range(8) ] print([p.shape[:2] for p in pyramid]) with gui_qt(): # create an empty viewer viewer = Viewer() # add the images layer = viewer.add_pyramid(pyramid, name=slide_name, contrast_limits=[0, 255])