def test_view_surface(qtbot): """Test adding 3D surface.""" np.random.seed(0) vertices = np.random.random((10, 3)) faces = np.random.randint(10, size=(6, 3)) values = np.random.random(10) data = (vertices, faces, values) viewer = napari.view_surface(data) view = viewer.window.qt_viewer qtbot.addWidget(view) assert np.all( [np.all(vd == d) for vd, d in zip(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 # Switch to 3D rendering viewer.dims.ndisplay = 3 assert viewer.dims.ndisplay == 3 assert np.sum(view.dims._displayed_sliders) == 0 # Close the viewer viewer.window.close()
from skimage import data import numpy as np import napari with napari.gui_qt(): vertices = np.array([[0, 0], [0, 20], [10, 0], [10, 10]]) faces = np.array([[0, 1, 2], [1, 2, 3]]) values = np.linspace(0, 1, len(vertices)) surface = (vertices, faces, values) viewer = napari.view_surface(surface) # add the surface
""" Test adding 4D followed by 5D image layers to the viewer Intially only 2 sliders should be present, then a third slider should be created. """ import numpy as np from skimage import data, measure import napari import scipy.ndimage as ndi image = data.binary_blobs(128, n_dim=3) verts, faces, normals, values = (measure.marching_cubes_lewiner( image.astype(float), level=0.7)) labels = ndi.label(image)[0] vertex_labels = ndi.map_coordinates(labels, verts.T, order=0).astype(int) with napari.gui_qt(): viewer = napari.view_surface((verts, faces, values)) surf_layer = viewer.add_surface((verts, faces, vertex_labels), colormap='gist_earth') viewer.dims.ndisplay = 3
""" Add surface 2D ============== Display a 2D surface """ import numpy as np import napari data = np.array([[0, 0], [0, 20], [10, 0], [10, 10]]) faces = np.array([[0, 1, 2], [1, 2, 3]]) values = np.linspace(0, 1, len(data)) # add the surface viewer = napari.view_surface((data, faces, values)) if __name__ == '__main__': napari.run()
"""Test converting an image to a multiscale. """ import numpy as np import napari with napari.gui_qt(): #viewer = napari.Viewer() np.random.seed(0) # vertices = np.random.random((10, 3)) # faces = np.random.randint(10, size=(6, 3)) # values = np.random.random(10) vertices = np.random.random((10, 3)) faces = np.random.randint(10, size=(6, 3)) values = np.random.random(10) #viewer.add_surface(data) # vertices = np.array([[0, 0], [0, 20], [10, 0], [10, 10]]) # faces = np.array([[0, 1, 2], [1, 2, 3]]) # values = np.linspace(0, 1, len(vertices)) data = (vertices, faces, values) viewer = napari.view_surface(data)