我正在使用 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();
}