volume_slice#

k3d.factory.volume_slice(volume: List | ndarray | Tuple = None, color_map: List[List[float]] | Dict[str, Any] | ndarray | None = None, color_range: List[float] = None, opacity_function: List[float] = None, opacity: float = 1.0, mask: List | ndarray | Tuple = None, active_masks: List | ndarray | Tuple = None, color_map_masks: List[List[float]] | Dict[str, Any] | ndarray | None = None, mask_opacity: float = 0.5, slice_x: int = -1, slice_y: int = -1, slice_z: int = 0, interpolation: int = 1, name: str | None = None, group: str | None = None, custom_data: Dict[str, Any] | None = None, compression_level: int = 0, **kwargs: Any) VolumeSlice[source]#

Examples#

Render mhd volumetric data as three plane view#

heart.mhd heart.zraw

import k3d
import numpy as np
import SimpleITK as sitk

im_sitk = sitk.ReadImage('heart.mhd')
img = sitk.GetArrayFromImage(im_sitk)

size = np.array(im_sitk.GetSpacing()) * np.array(im_sitk.GetSize())
bounds = np.array([0, size[2], 0, size[1], 0, size[0]], np.float32)

volume_slice = k3d.volume_slice(img.astype(np.float16),
                              slice_z=img.shape[0]//2,
                              slice_y=img.shape[1]//2,
                              slice_x=img.shape[2]//2,
                              bounds=bounds)

plot = k3d.plot(camera_mode='volume_sides', grid_visible=False, background_color=0)
plot.menu_visibility = False
plot.slice_viewer_object_id = volume_slice.id

plot += volume_slice
plot.display()