This is a significant release with several important new features added to the library.
The user guide will be updated soon with explanations of the new functionality.
Features
* Update internal DICOM standard information to 2024c
* Add support for the new LABELMAP segmentation type, introduced in DICOM 2024c. Labelmap segmentations store non-overlapping segments as an array in which pixel value indicates membership of a segment. This can be used simply by setting the `segmentation_type` parameter of the `highdicom.seg.Segmentation` constructor to `"LABELMAP"`. Parsing of Labelmap segmentations is also supported. By CPBridge in https://github.com/ImagingDataCommons/highdicom/pull/234
* Add implementations of pixel transformations in new `highdicom.pixels` module and elsewhere, including real world value map, modality LUT, VOI LUT, presentation LUT, and Palette Color LUT.
* Add new general `highdicom.Image` class for reading frames from general DICOM images, and creating Volumes from general images. Methods on this class allow for reading frames with the above pixel transformations configurably applied.
* Add new `highdicom.Volume` class, representing an array of pixels in 3D space by CPBridge in https://github.com/ImagingDataCommons/highdicom/pull/277
* Several new functions in `highdicom.spatial` related to 3D volumes and affine matrices.
* Automatically set the DimensionOrganizationType attribute of a segmentation to 3D if the conditions are met.
* Add magic methods to allow segmentation objects to be pickled and unpickled
* Use pyupgrade to update all type hints to 3.10+ style
* Add ability to add spatial coordinates to a measurement by Fedalto in https://github.com/ImagingDataCommons/highdicom/pull/307
* Add support for python 3.13 by CPBridge in https://github.com/ImagingDataCommons/highdicom/pull/312
**Full Changelog**: https://github.com/ImagingDataCommons/highdicom/compare/v0.23.1...v0.24.0