pydicomを使用して圧縮画像を解凍します。
解凍は、Dataset.decompress 関数を使用して行います。
目次
pydicom.dataset.decompress
1.概要
圧縮されているピクセルデータを解凍します。
ピクセルデータが非圧縮の場合、ピクセルデータは内部的にnumpy配列に変換されます。
また、ピクセルデータを解凍した場合、ピクセルデータ以外にも
・TransferSyntaxが非圧縮形式に更新される
・ピクセルデータのis_undefined_lengthがFalseに更新される
という更新も行われます。
2.引数
なし
3.戻り値
なし
4.例外
NotImplementedError
ピクセルデータが圧縮されていて、ファイルがExplicitVR LittleEndianではない場合に発生します。
5.使用例
JPEG Lossy を解凍します。
1 2 3 4 5 6 7 |
import pydicom from pydicom.data import get_testdata_files filename = get_testdata_files('JPEG-lossy.dcm')[0] ds = pydicom.dcmread(filename) ds.decompress() |
また、以下のようにソースの一部を変更して、解凍前後のTransferSyntax・is_undefined_lengthプロパティ を確認してみます。
1 2 3 4 5 6 7 |
print(ds.file_meta) print('is_undefined_length:{}'.format(ds[(0x7fe0,0x0010)].is_undefined_length)) ds.decompress() print(ds.file_meta) print('is_undefined_length:{}'.format(ds[(0x7fe0,0x0010)].is_undefined_length)) |
解凍前後で、TransferSyntax・is_undefined_lengthプロパティが変更されていることがわかります。