Surface quality measurements using vedo in napari#

This notebook shows how to visualize quantitatvie measurements on surface data in napari.

See also

import napari_process_points_and_surfaces as nppas

import napari
import numpy as np
import pandas as pd
from skimage.measure import label
from skimage.data import cells3d
viewer = napari.Viewer(ndisplay=3)

def hide_all(viewer):
    for layer in viewer.layers:
        layer.visible = False
        
def show_all(viewer):
    for layer in viewer.layers:
        layer.visible = True
surface = nppas.gastruloid()

surface_layer = viewer.add_surface(surface, blending='translucent', shading='flat')
surface = surface_layer.data

napari.utils.nbscreenshot(viewer)
The nppas gastruloid example is derived from AV Luque and JV Veenvliet (2023) which is licensed CC-BY (https://creativecommons.org/licenses/by/4.0/legalcode) and can be downloaded from here: https://zenodo.org/record/7603081
hide_all(viewer)

area_surface = nppas.add_quality(surface, quality_id=nppas.Quality.AREA)
viewer.add_surface(area_surface, colormap='jet')

napari.utils.nbscreenshot(viewer)
hide_all(viewer)

aspect_ratio_surface = nppas.add_quality(surface, quality_id=nppas.Quality.ASPECT_RATIO)
viewer.add_surface(aspect_ratio_surface, colormap='jet')

napari.utils.nbscreenshot(viewer)
hide_all(viewer)

distortion_surface = nppas.add_quality(surface, quality_id=nppas.Quality.DISTORTION)
viewer.add_surface(distortion_surface, colormap='jet')

napari.utils.nbscreenshot(viewer)
hide_all(viewer)

min_angle_surface = nppas.add_quality(surface, quality_id=nppas.Quality.MIN_ANGLE)
viewer.add_surface(min_angle_surface, colormap='jet')

napari.utils.nbscreenshot(viewer)