Изображение EvilDicom повреждено

Я пытаюсь использовать библиотеку, чтобы анонимизировать изображение 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);
}

// ------------------------------------------------ ---------------------

Ниже приведено исходное изображение, с которым у меня возникла проблема: https://www.dropbox.com/s/s5ase23jl9908jm/3DSlice1.dcm?dl=0

Ниже приведен скриншот с исходным изображением и окончательным изображением (поврежденное изображение). https://www.dropbox.com/s/12liy3gbw7dkb4d/Image_corrupted.PNG?dl=0

Я не знаю, что происходит с данными пикселей. Но я видел, что FileMetaInformationGroupLength изменения тега.

1 ответ

Решение

Исходное изображение сжато с использованием синтаксиса Transfer 1.2.840.10008.1.2.4.70. Выходное изображение кодируется с 1.2.840.10008.1.2, что означает несжатый. Вы должны проверить, правильно ли применено это изменение в синтаксисе передачи при вызове dcm.Write,

Или может быть, что синтаксис передачи уже изменен во время операции чтения.

В любом случае, убедитесь, что изменение в синтаксисе передачи предназначено, оно сделано правильно и согласуется с тегами DICOM.

Я никогда не использовал инструментарий Evil DICOM, поэтому я не могу помочь вам с кодом.

Другие вопросы по тегам