Segmentation DICOM objects

DICOM Segmentation objects have pixel data and are stored as NumPy.ndarray.

Example:

from imagedata import Study
s = Study('.')

img = tree = aorta = None
for seriesUID in s:
    si = s[seriesUID]
    if 'Segmentations' in si.seriesDescription:
        for i, descr in enumerate(si.axes[0]):
            if 'Aorta' in '{}'.format(descr):
                assert aorta is None, "Multiple aorta masks found"
                aorta = si[i]
                d = si.header.datasets[i]
                parent = d.ReferencedSeriesSequence[0].SeriesInstanceUID
            elif 'CoronaryTree' in '{}'.format(descr):
                assert tree is None, "Multiple coronary tree masks found"
                tree = si[i]
                d = si.header.datasets[i]
                parent = d.ReferencedSeriesSequence[0].SeriesInstanceUID
    else:
        img = si

assert aorta is not None, "No aorta mask found"
assert tree is not None, "No coronary tree mask found"
assert parent == img.seriesInstanceUID, "Mask does not belong to series"

fused_aorta = img.fuse_mask(1 - aorta)
fused_tree = img.fuse_mask(tree)
fused_tree.show([tree, fused_aorta, aorta], link=True)