Конвертируйте аудиоданные из файла DICOM в массив numpy с помощью pydicom - PullRequest
1 голос
/ 29 октября 2019

Я хочу получить доступ к аудиоданным в файле DICOM. Согласно странице о атрибутах DICOM , аудиоданные в файле dicom имеют следующие атрибуты:

Данные выборки аудио: OW или OB (50xx, 200C)

действительнопри просмотре списка доступных атрибутов я получаю следующее (метка метаданных не совсем одинакова, но выглядит примерно так):

import pydicom as dicom
ds = dicom.dcmread("IM_0001.dcm")
a = ds[0x200d5100]
print(a)

[1] (200d, 5100) Private tag data                    OB: Array of 39450 elements

Теперь при попытке доступа к самим данным я получаю следующее:

import pydicom as dicom
ds = dicom.dcmread("IM_0001.dcm")
a = ds[0x200d5100].value
print(a)

[1] b'Philips Confidential v.10\x00\x80|\xdc\xea,\x80\xeb\x1e\xfc:\xba0\xb6\x0b\xba^/\x92\xfa\xcb>2\xe5\x06\\\x06\x00\xd7Py\'\x85\x1e`\xb2\x9f\x03\xc5<@ki\xd5\xa5U\xb3\xbc6@^\x82\xd4N\x12\xd9\xc4\x89\xba\x8c\xb4\xb5e\xc6\x87^\x99\x96\xac.I-Y\x90\t\x00{>\x1ai\xba\x16\x1eWB\xff\x98%\xc0\x81\xe4%\xacwQ\xe3~\xb4\x95\xb0\xc7\xcdb\xaf~\x89\xba\x8c\xb4\xb5e\xc6\x87\x11l#\xa6K\xc4\xa9\xa8"\x06j\xf86\xf5\xe5:C\x9b \xf7\xd7<0fXB\xd8\x9f\x9e$;\xfd"\x06j\xf86\xf5\xe5:\xaf\x1by;\x99\xf6\xe5\xb9\xbfM&X\xa0\xa6_H\xff\x0f\t\x96\x13\xf92$\x97\xd8\xe1h\x8a\x10\xea\xe8\x11D\x8d\xeak\x87ZN\xff4\xfe\xcd\x9a\x88s\x00\xe0Z\x84\x89F\x90\xb7M\xd4\xaf\x07c>w]U\xd1\xe6\x8b\x10\x17!\xaa\x94\xf4\xed\r\x8a\x90\x90\xf4\xe1\x80L\xee2\xad\xa2\xa5\xaba\x91\xb4\xa7\xeal\xab\xfd\xc6\xae"\x9f\xe2\x9a\xfb\x97\xeb-\xd0I\xb7\x06Ao~\xd5s9W\x05\x95\x80\xa6\x00A\x07,o\x9e\x19b\xa2\x92\xea\x93"j\x9bGJ\x9e\xf5\x136\x1a\xf90\x0f]ZM\xdd-\xa0\xcd\x0c\xda\xcb\xe3\n\x7f\x90\x17\n\xe4p(\x13\x82x[\xed\x01\xdf*#\xe6\x97c\x0f\x12\xe9\x11\x85RC:D\xf4\xd8E,\xbd\xb9\xaf^\xeeX\x1f\xc2\xe3N\xd2?\xa8\x8b\ty9\xb7\x979\x80?PM\x8c8\xc0\x89\x85s\xed\t6o\xc2o,Q<\xfc~;cH3|\x92\xe0 \x9e\x8eJ\x13\x98g\xf0$U\x8d-\xa7\x06a\xba\xf1\x05\x06\x15\x90\x8b\x04\xdb9j\x1f\x85^oR\xaf\x1b\x9e\xa0M\x80\xbc\xb7U\x9c\xe7\xd6 ...........

Как я могу преобразовать это в пустой массив?

Редактировать :

В Matlab можно сделать следующее:

>> metadata = dicominfo('IM_0001');
>> b = metadata.(dicomlookup('200d', '5100'));
>> b(1:5)

ans =

  5×1 uint8 column vector

    80
   104
   105
   108
   105

Соответствующая информация о данных, по-видимому, относится к следующим:

>> info = dicominfo("IM_0001")

…
                           Private_200d_2005: 'native'
                           Private_200d_2407: 'DICOM_GSDF_ENABLED'
                           Private_200d_2637: '20191029'
                           Private_200d_2638: '132033'
                           Private_200d_2645: 0
                           Private_200d_2659: 0
                           Private_200d_265a: 0
                           Private_200d_265b: 0
                           Private_200d_3000: [493082×1 uint8]
                           Private_200d_300f: [992×1 uint8]
                           Private_200d_3014: 1
                           Private_200d_3022: 0
                           Private_200d_3915: 0
                           Private_200d_3916: 0
                           Private_200d_3a05: 'ACCEPTED'
                           Private_200d_3a06: 0
                           Private_200d_5100: [39450×1 uint8]

Используются следующие наборы инструментов:

>> license('inuse')
image_toolbox
matlab
...