Я использую библиотеку gdcm (nuget gdcm-sharp 2.4.4) для получения изображений и данных пациентов из файлов *.dcm. С файлами с фотометрической интерпретацией MONOCHROME2 все было хорошо, но потом я получил несколько файлов с MONOCHROME1, и около 30% из них были со странной ошибкой: изображения были "нарезаны" по диагонали, и я не могу понять почему.
Ссылки на образцы: неправильное изображение, правильное изображение
Каждая строка пикселей имеет смещение номера строки... легко исправить, но я не знаю, какой файл нуждается в исправлении.
Вопрос: как определить, какой файл нужно исправить, теги dcm одинаковы, единственное, что отличается в файлах .dcm, это размеры изображения и данные о пикселях...
Еще одна вещь... любое другое программное обеспечение, которое я пробовал просматривать эти изображения, отображает их правильно.
Некоторый код, показывающий, что делается
// pixel data copied to WriteableBitmap then saved by JpegBitmapEncoder
var reader = new gdcm.ImageReader();
var gimg = reader.GetImage();
WriteableBitmap wb = new WriteableBitmap((int)cols, (int)rows, 120, 120, PixelFormats.Gray16, null);
wb.Lock();
Marshal.Copy(buff, 0, wb.BackBuffer, buff.Length);
wb.Unlock();
using (var ms2 = new MemoryStream())
{
JpegBitmapEncoder enc = new JpegBitmapEncoder();
enc.QualityLevel = 95;
enc.Frames.Add(BitmapFrame.Create(wb));
enc.Save(ms2);
jpegfile = ms2.GetBuffer();
}