コード例 #1
0
    def test_properties(self, fpath, data):
        """Test dataset and pixel array properties are as expected."""
        if data[0] not in JPEG2K_SUPPORTED_SYNTAXES:
            return

        ds = dcmread(fpath)
        assert ds.file_meta.TransferSyntaxUID == data[0]
        assert ds.BitsAllocated == data[1]
        assert ds.SamplesPerPixel == data[2]
        assert ds.PixelRepresentation == data[3]
        assert getattr(ds, 'NumberOfFrames', 1) == data[4]

        bs = defragment_data(ds.PixelData)
        if _get_j2k_precision(bs) != ds.BitsStored:
            with pytest.warns(UserWarning, match=r"doesn't match the sample"):
                arr = ds.pixel_array
        else:
            arr = ds.pixel_array

        assert arr.flags.writeable
        assert data[5] == arr.shape
        assert arr.dtype == data[6]
コード例 #2
0
 def test_short_bytestream(self):
     """Test result when no SIZ box present"""
     assert _get_j2k_precision(b'') is None
     assert _get_j2k_precision(b'\xff\x4f\xff\x51' + b'\x00' * 20) is None
コード例 #3
0
 def test_no_siz(self):
     """Test result when no SIZ box present"""
     base = b'\xff\x4f\xff\x52' + b'\x00' * 38
     assert _get_j2k_precision(base + b'\x8F') is None
コード例 #4
0
 def test_not_j2k(self):
     """Test result when no JPEG2K SOF marker present"""
     base = b'\xff\x4e\xff\x51' + b'\x00' * 38
     assert _get_j2k_precision(base + b'\x8F') is None
コード例 #5
0
 def test_precision(self):
     """Test getting the precision for a JPEG2K bytestream."""
     base = b'\xff\x4f\xff\x51' + b'\x00' * 38
     # Signed
     assert 16 == _get_j2k_precision(base + b'\x8F')
     assert 15 == _get_j2k_precision(base + b'\x8E')
     assert 14 == _get_j2k_precision(base + b'\x8D')
     assert 13 == _get_j2k_precision(base + b'\x8C')
     assert 12 == _get_j2k_precision(base + b'\x8B')
     assert 11 == _get_j2k_precision(base + b'\x8A')
     assert 10 == _get_j2k_precision(base + b'\x89')
     assert 9 == _get_j2k_precision(base + b'\x88')
     assert 8 == _get_j2k_precision(base + b'\x87')
     # Unsigned
     assert 16 == _get_j2k_precision(base + b'\x0F')
     assert 15 == _get_j2k_precision(base + b'\x0E')
     assert 14 == _get_j2k_precision(base + b'\x0D')
     assert 13 == _get_j2k_precision(base + b'\x0C')
     assert 12 == _get_j2k_precision(base + b'\x0B')
     assert 11 == _get_j2k_precision(base + b'\x0A')
     assert 10 == _get_j2k_precision(base + b'\x09')
     assert 9 == _get_j2k_precision(base + b'\x08')
     assert 8 == _get_j2k_precision(base + b'\x07')