C# Dicom映像已损坏

C# Dicom映像已损坏,c#,image-processing,dicom,anonymize,evil-dicom,C#,Image Processing,Dicom,Anonymize,Evil Dicom,我正在尝试使用该库来匿名化dicom图像。 在某些情况下,它工作正常,但在其他情况下,最终图像已损坏。我的意思是,图像的像素错误,并且最终图像的FileMetaInformationGroupLength标记也已更改。 当我不匿名化图像时,也会发生这种情况,我只是在一个新文件中读写图像 这是我的代码: //--------------------------------------------------------------------- string dir = @"C:\Users\De

我正在尝试使用该库来匿名化dicom图像。 在某些情况下,它工作正常,但在其他情况下,最终图像已损坏。我的意思是,图像的像素错误,并且最终图像的
FileMetaInformationGroupLength
标记也已更改。 当我不匿名化图像时,也会发生这种情况,我只是在一个新文件中读写图像

这是我的代码: //---------------------------------------------------------------------

string dir = @"C:\Users\Desktop\CT.dcm";
var dcmBytes = System.IO.File.ReadAllBytes(@dir);
try
{

    var dcm = EvilDICOM.Core.DICOMObject.Read(dcmBytes);
    var refName = new EvilDICOM.Core.Element.PersonName
    {
        FirstName = "",
        Tag = EvilDICOM.Core.Helpers.TagHelper.PATIENT_NAME
    };
    dcm.ReplaceOrAdd(refName);
    dcm.Write(@"C:\Users\Desktop\CT2.dcm");

}
catch(Exception ex)
{
    throw new Exception("EXCEPTION: " + ex.Message);
}
//---------------------------------------------------------------------

string dir = @"C:\Users\Desktop\CT.dcm";
var dcmBytes = System.IO.File.ReadAllBytes(@dir);
try
{

    var dcm = EvilDICOM.Core.DICOMObject.Read(dcmBytes);
    var refName = new EvilDICOM.Core.Element.PersonName
    {
        FirstName = "",
        Tag = EvilDICOM.Core.Helpers.TagHelper.PATIENT_NAME
    };
    dcm.ReplaceOrAdd(refName);
    dcm.Write(@"C:\Users\Desktop\CT2.dcm");

}
catch(Exception ex)
{
    throw new Exception("EXCEPTION: " + ex.Message);
}
以下是我遇到问题的原始图像:

以下是原始图像和最终图像(损坏图像)的屏幕截图。


我不知道像素数据发生了什么。但是我看到
FileMetaInformationGroupLength
标记发生了变化。

原始图像使用传输语法1.2.840.10008.1.2.4.70进行了压缩。输出图像用1.2.840.10008.1.2编码,表示未压缩。调用
dcm.Write
时,您需要检查传输语法中的此更改是否正确应用

或者可能是读取操作时传输语法已更改

在任何情况下,都要确保传输语法的更改是有意的、正确的,并且与DICOM标记一致


我从未使用过邪恶的DICOM工具包,因此我可能无法帮助您编写代码。

原始图像使用传输语法1.2.840.10008.1.2.4.70进行压缩。输出图像用1.2.840.10008.1.2编码,表示未压缩。调用
dcm.Write
时,您需要检查传输语法中的此更改是否正确应用

或者可能是读取操作时传输语法已更改

在任何情况下,都要确保传输语法的更改是有意的、正确的,并且与DICOM标记一致

我从未使用过邪恶的DICOM工具包,所以我可能无法帮助您编写代码