C# 更改dicom传输语法,使用mDCM显示未注册的编解码器

C# 更改dicom传输语法,使用mDCM显示未注册的编解码器,c#,dicom,image-compression,C#,Dicom,Image Compression,更改传输语法时出现问题。 我正在使用mDCM库,并且我已经将Dicom.Codec.dll添加到项目中。 压缩文件具有00020010,传输语法UID=1.2.840.10008.1.2.4.90(JPEG 2000图像压缩(仅无损))。 错误:捕获到DICOMCODEC异常。没有为传输语法注册的编解码器 我的代码: string file = "C:\\Dicom\\1001.dcm"; string output = "C:\\Dicom\\Decompressed\\1001.dcm";

更改传输语法时出现问题。
我正在使用
mDCM
库,并且我已经将Dicom.Codec.dll添加到项目中。
压缩文件具有
00020010,传输语法UID=1.2.840.10008.1.2.4.90
(JPEG 2000图像压缩(仅无损))。
错误:捕获到DICOMCODEC异常。没有为传输语法注册的编解码器

我的代码:

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);
我注意到的另一件事是标签
7fe00010,像素数据=0
。对于其他dicom文件,
像素数据
标记的值大于
0

我的其他dicom查看器(ezDICOM、DicomWorks、IrfanView等)也没有打开该文件。所以,我认为文件已损坏。但是,随后客户机给了我们一个
应用程序(.exe)
,该应用程序对文件进行解压缩。
解压后,我的所有观众都正确地显示了图像。

解压缩的文件具有
7fe00010,像素数据=131072

正如错误所述,我没有注册编解码器

这一行注册了编解码器

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