pyvista.examples.downloads.download_whole_body_ct_male#
- download_whole_body_ct_male(load=True)[source]#
Download a CT image of a male subject with 117 segmented anatomic structures.
This dataset is subject
's1397'
from the TotalSegmentator dataset, version 2.0.1, available from zenodo. See the original paper for details:Jakob Wasserthal et al., “TotalSegmentator: Robust Segmentation of 104 Anatomic Structures in CT Images,” Radiology, Jul. 2023, doi: https://doi.org/10.1148/ryai.230024.
The dataset is loaded as a
MultiBlock
with three blocks:'ct'
:ImageData
with CT data.'segmentations'
:MultiBlock
with 117ImageData
blocks, each containing a binary segmentation label. The blocks are named by their anatomic structure (e.g.'heart'
) and are sorted alphabetically. See the examples below for a complete list label names.'label_map'
:ImageData
with a label map array. The label map is an alternative representation of the segmentation where the masks are combined into a single scalar array.Note
The label map is not part of the original data source.
Licensed under Creative Commons Attribution 4.0 International.
- Parameters:
- Returns:
pyvista.MultiBlock
orstr
DataSet or filename depending on
load
.
Examples
Load the dataset and get some of its properties.
>>> from pyvista import examples >>> import pyvista as pv >>> dataset = examples.download_whole_body_ct_male()
Get the CT image
>>> ct_image = dataset['ct'] >>> ct_image ImageData (...) N Cells: 55561506 N Points: 56012800 X Bounds: 0.000e+00, 4.785e+02 Y Bounds: 0.000e+00, 4.785e+02 Z Bounds: 0.000e+00, 8.190e+02 Dimensions: 320, 320, 547 Spacing: 1.500e+00, 1.500e+00, 1.500e+00 N Arrays: 1
Get the segmentation label names and show the first three
>>> segmentations = dataset['segmentations'] >>> label_names = segmentations.keys() >>> label_names[:3] ['adrenal_gland_left', 'adrenal_gland_right', 'aorta']
Get the label map and show its data range
>>> label_map = dataset['label_map'] >>> label_map.get_data_range() (np.uint8(0), np.uint8(117))
Create a surface mesh of the segmentation labels
>>> labels_mesh = label_map.contour_labeled(smoothing=True)
Plot the CT image and segmentation labels together.
>>> pl = pv.Plotter() >>> _ = pl.add_volume( ... ct_image, ... cmap="bone", ... opacity="sigmoid_9", ... show_scalar_bar=False, ... ) >>> _ = pl.add_mesh(labels_mesh, cmap='glasbey', show_scalar_bar=False) >>> pl.view_zx() >>> pl.camera.up = (0, 0, 1) >>> pl.camera.zoom(1.3) >>> pl.show()
See also
- Whole Body Ct Male Dataset
See this dataset in the Dataset Gallery for more info.
- Whole Body Ct Female Dataset
Similar dataset of a female subject.
- Medical Datasets
Browse other medical datasets.