@@ -1870,6 +1870,51 @@ def test_construction_empty_source_image(self):
18701870 device_serial_number = self ._device_serial_number
18711871 )
18721872
1873+ def test_construction_empty_source_seg_sparse (self ):
1874+ # Can encoding an empty segmentation with omit_empty_frames=True issues
1875+ # a warning and encodes the full segmentation
1876+ empty_pixel_array = np .zeros_like (self ._ct_pixel_array )
1877+ seg = Segmentation (
1878+ source_images = [self ._ct_image ],
1879+ pixel_array = empty_pixel_array ,
1880+ segmentation_type = SegmentationTypeValues .FRACTIONAL .value ,
1881+ segment_descriptions = (
1882+ self ._segment_descriptions
1883+ ),
1884+ series_instance_uid = self ._series_instance_uid ,
1885+ series_number = self ._series_number ,
1886+ sop_instance_uid = self ._sop_instance_uid ,
1887+ instance_number = self ._instance_number ,
1888+ manufacturer = self ._manufacturer ,
1889+ manufacturer_model_name = self ._manufacturer_model_name ,
1890+ software_versions = self ._software_versions ,
1891+ device_serial_number = self ._device_serial_number ,
1892+ omit_empty_frames = True ,
1893+ )
1894+
1895+ assert seg .pixel_array .shape == empty_pixel_array .shape
1896+
1897+ def test_construction_empty_seg_image (self ):
1898+ # Can encode an empty segmentation with omit_empty_frames=False
1899+ empty_pixel_array = np .zeros_like (self ._ct_pixel_array )
1900+ Segmentation (
1901+ source_images = [self ._ct_image ],
1902+ pixel_array = empty_pixel_array ,
1903+ segmentation_type = SegmentationTypeValues .FRACTIONAL .value ,
1904+ segment_descriptions = (
1905+ self ._segment_descriptions
1906+ ),
1907+ series_instance_uid = self ._series_instance_uid ,
1908+ series_number = self ._series_number ,
1909+ sop_instance_uid = self ._sop_instance_uid ,
1910+ instance_number = self ._instance_number ,
1911+ manufacturer = self ._manufacturer ,
1912+ manufacturer_model_name = self ._manufacturer_model_name ,
1913+ software_versions = self ._software_versions ,
1914+ device_serial_number = self ._device_serial_number ,
1915+ omit_empty_frames = False ,
1916+ )
1917+
18731918 def test_construction_invalid_content_label (self ):
18741919 with pytest .raises (ValueError ):
18751920 Segmentation (
0 commit comments