pyvista.examples.downloads.download_whole_body_ct_female#
- download_whole_body_ct_female(load=True)[source]#
Download a CT image of a female subject with 117 segmented anatomic structures.
This dataset is subject
's1380'
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
>>> from pyvista import examples >>> import pyvista as pv >>> dataset = examples.download_whole_body_ct_female()
Get the names of the dataset’s blocks
>>> dataset.keys() ['ct', 'segmentations', 'label_map']
Get the CT image
>>> ct_image = dataset['ct'] >>> ct_image ImageData (...) N Cells: 55154462 N Points: 55603200 X Bounds: 0.000e+00, 4.785e+02 Y Bounds: 0.000e+00, 4.785e+02 Z Bounds: 0.000e+00, 8.130e+02 Dimensions: 320, 320, 543 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_7', ... 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 Female Dataset
See this dataset in the Dataset Gallery for more info.
- Whole Body Ct Male Dataset
Similar dataset of a male subject.
- Medical Datasets
Browse other medical datasets.