Изменение синтаксиса передачи dicom, показывающего отсутствие зарегистрированного кодека с использованием mDCM

1

У меня возникает проблема при изменении Синтаксиса передачи.
Я использую mDCM библиотеку, и я добавил Dicom.Codec.dll в проект.
0002,0010,Transfer Syntax UID=1.2.840.10008.1.2.4.90 файлы имеют 0002,0010,Transfer Syntax UID=1.2.840.10008.1.2.4.90 (JPEG 2000 Сжатие изображения (только для Lossless)).
Ошибка: обнаружено исключение DicomCodecException. Нет зарегистрированного кодека для синтаксиса передачи!

Мой код:

string file = "C:\\Dicom\\1001.dcm";
string output = "C:\\Dicom\\Decompressed\\1001.dcm";
DicomFileFormat ff = new DicomFileFormat();
ff.Load(file, Dicom.DicomReadOptions.Default);
ff.ChangeTransferSytnax(DicomTransferSyntax.ExplicitVRLittleEndian, null); // Error here. No registered codec for transfer syntax!.
Dicom.Imaging.DicomImage im = new Dicom.Imaging.DicomImage(ff.Dataset);
System.Drawing.Image i = im.Render();
i.Save(output);

Еще одна вещь, которую я заметил, это тег 7FE0,0010,Pixel Data=0. Для других файлов dicom метка данных Pixel data имеет значения, превышающие 0.

Файл не открывается в моих других dicom-зрителях (ezDICOM, DicomWorks, IrfanView и т.д.). Итак, я думал, что файл поврежден. Но тогда клиент дал нам application(.exe) которое распаковывает файл.
После декомпрессии все мои зрители показывали изображение правильно.
Декомпрессированные файлы имели 7FE0,0010,Pixel Data=131072.

Теги:
image-compression
dicom

1 ответ

1
Лучший ответ

Как упоминалось выше, я не регистрировал кодек.

Эта строка зарегистрировала кодек.

Dicom.Codec.Jpeg2000.DcmJpeg2000Codec.Register();

Ещё вопросы

Сообщество Overcoder
Наверх
Меню