Изображение 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, поэтому я не могу помочь вам с кодом.